26
votes
Accepted
Can someone please explain FIBRE to me like I'm 5 and why is it useful?
First the "why it matters":
Fibre (Fast Internet Bitcoin Relay Engine) is a protocol which attempts to deliver Bitcoin blocks around the world with delays as close to the physical limits as ...
16
votes
Accepted
What is the tradeoff between privacy and implementation complexity of Dandelion (BIP156)
In my view, the main implementation detail to be worked out with Dandelion
is ensuring that there are no new DoS vectors introduced.
In the existing transaction relay model of Bitcoin Core, ...
16
votes
Accepted
Bitcoin protocol and Wireshark
Someone wrote a Bitcoin protocol decoder for Wireshark, several years ago. I assume it was included in the Wireshark distribution.
Wireshark simply knows about the Bitcoin protocol. There is no magic ...
13
votes
Accepted
How can I use Bitcoin Core with the anonymous network protocol I2P?
Jon Atack answered this on Twitter.
Configuration and setup
First install and start I2P (version 2.35 or above).
$ apt install i2pd
$ systemctl enable i2pd.service
$ systemctl start i2pd.service
In ...
8
votes
Accepted
What is the different between CompactSize and VarInt encoding?
There are two distinct variable-length integer encodings implemented in Bitcoin Core's serialization framework:
The encoding used in the P2P protocol for the lengths of vectors (number of ...
7
votes
Accepted
What is the difference between policy and consensus when it comes to a Bitcoin Core node validating scripts?
The term "consensus checks" refers to the rules that determine whether a block is valid; specifically, if a consensus check on a block (or a transaction contained within a block) fails, then ...
7
votes
Accepted
Is the `mempool` message reliable?
Full nodes have absolutely no use for the mempool message, it is vestigial from bip35 and has had a history of causing privacy leaks due to its poor implementation. It has previously been used to ...
7
votes
Accepted
What is the difference between blocksonly and block-relay-only in Bitcoin Core?
While both of these disable transaction relay, they are conceptually used for different purposes:
Block-relay-only connections (see this post for more details) are hard-to-detect connections with the ...
7
votes
Accepted
How does bitcoin prevent DDoS amplification via the `addr` p2p message type?
For a long time, there was a restriction to strongly prefer connecting to addresses with port 8333. This restriction was recently removed in PR 23542 and PR 23306, although a list of "bad ports&...
7
votes
Accepted
Is it possible to set RBF as always-on in bitcoind?
You're looking for walletrbf=1.
You can configure bitcoind to always create transactions that signal replaceability by using the -walletrbf startup option or setting walletrbf=1 in the config.
...
7
votes
Accepted
Is FIBRE still in use in 2023?
The public Bitcoin FIBRE network was shut down “a year or two” before May 2022. Some of the reasons were that block propagation became a lot faster after compact block relay (BIP152) was deployed to ...
6
votes
How to confirm how many peers a node has?
When a node requests one of it's neighbours for a list of it's peers, that node responds with a list of all of it's neighbours.
No it doesn't. It responds with list of nodes that its aware of being ...
6
votes
Accepted
To run a full node, should I get a static IP address from my ISP?
To run a Bitcoin full node you don't need to have a static IP address as when your IP address changes you should still be able to find peers and connect to them. However, if you want to maintain the ...
6
votes
Accepted
Bitcoin Core uploads much more than it downloads
While nodes are set to be listening by default, the vast majority does not permit inbound connections either because listening has been disabled or their network setup doesn't make the necessary port ...
6
votes
Can "Block" Message send multiple blocks?
It sends exactly one block. If you want to send multiple blocks, you need multiple messages.
6
votes
Accepted
What is the maximum, realistic P2P message payload size?
Since Bitcoin Core pull request 5843, incoming messages larger than MAX_PROTOCOL_MESSAGE_LENGTH are rejected. This constant was initially set to 2 MiB, but later (as part of the segwit changes) ...
5
votes
Accepted
How do hard forks avoid peering with each other?
Ports
One way that forks can deliberately separate themselves is by using a different TCP port number for network communications.
Currency
Port
Bitcoin
8333
Litecoin
9333
Handshake
When two ...
5
votes
Accepted
Since Bitcoin has no central system, where do network request go?
Bitcoin is a peer-to-peer gossip flood network. Whenever a Bitcoin participant creates a transaction, their wallet software submits it to its peer nodes. These peers then relay it to their peers in ...
5
votes
Accepted
Is it possible to check which nodes banned my node?
No, you cannot know this. But in general, since you're a normal, honest, node presumably, the most likely answer is "none".
5
votes
Accepted
Why does the bitcoin client send transaction's txid and wtxid in 'inv' process?
Wtxid relay was introduced in BIP339, where you'll find more details on the rationale and design.
Whenever a node supports BIP339, it will advertize that to its peers, through the wtxidrelay ...
5
votes
What protocol do bitcoin nodes use to talk to each other?
What protocol do bitcoin nodes use to talk to each other?
Most Bitcoin nodes will primarily use:
Layer
Protocol
Application Layer
Bitcoin Protocol
Transport Layer
Transport Control Protocol (TCP)
...
5
votes
Accepted
BIP324 encrypted packet structure
In the new P2P transport protocol proposed in BIP324, after the handshake (which among other things establishes encryption keys), packets have the following structure:
A 3-byte length descriptor (...
4
votes
What is a DNS seed node vs a Seed Node?
2017 values are:
seed.bitcoin.sipa.be
dnsseed.bluematt.me
dnsseed.bitcoin.dashjr.org
seed.bitcoinstats.com
seed.bitcoin.jonasschnelli.ch
seed.btc.petertodd.org
4
votes
Can someone please explain FIBRE to me like I'm 5 and why is it useful?
FIBRE is valuable as it allows for miners to extremely quickly propagate their blocks to other miners and to the rest of the network. The goal of FIBRE is to reduce latency in block transmission. ...
4
votes
Accepted
What does score tell me in getnetworkinfo?
It's about the network reliability to other nodes, score keeps increasing the longer your node is reachable.
4
votes
Possible better peer-to-peer protocols for Bitcoin?
The network used today isn't actually the same as the original design, which did not have an inventory system at all, every transaction and every block was sent to every peer indiscriminately. Compact ...
4
votes
Did Bitcoin Core relay blocks sequentially or in parallel to peers before Compact Blocks?
It isn't as simple as "sending sequentially" or "sending in parallel". Each connection is its own socket and the kernel performs packet scheduling. The Bitcoin protocol doesn't have any ...
4
votes
How to confirm how many peers a node has?
It returns some plausible peers, not all of its peers.
You have no way of knowing any specific details about them, if they’re sybil, not operational, or not useful. The software tries to work out ...
4
votes
Why don't nodes resume all existing outbound connections at restart?
First, let me clarify that the Erebus attack does not require rebooting the victim. It is only for speeding up the attack process. The attacker can patiently wait for the existing legitimate ...
4
votes
Accepted
How does a full node decide which outbound peers to have?
Addresses for outbound connections are largely chosen at random. The filtering of addresses comes at the time the addresses are first received by the node before they are added to the address database....
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
p2p × 128bitcoin-core × 35
network × 32
bitcoin-core-development × 18
protocol × 13
full-node × 13
peer-discovery × 12
block × 7
peers × 7
bitcoind × 6
nodes × 6
mempool × 6
dns × 6
synchronization × 5
replace-by-fee × 5
package-relay × 5
transactions × 4
json-rpc × 4
consensus × 4
decentralization × 4
tor × 4
message × 4
transaction-propagation × 4
port × 4
pinning-attack × 4