Hot answers tagged

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 ...
G. Maxwell's user avatar
  • 7,696
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, ...
sdaftuar's user avatar
  • 589
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 ...
Pieter Wuille's user avatar
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 ...
Michael Folkson's user avatar
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 ...
Pieter Wuille's user avatar
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 ...
sdaftuar's user avatar
  • 589
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 ...
Claris's user avatar
  • 15.4k
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 ...
Lightlike's user avatar
  • 581
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&...
Lightlike's user avatar
  • 581
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. ...
Murch's user avatar
  • 72.6k
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 ...
Murch's user avatar
  • 72.6k
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 ...
G. Maxwell's user avatar
  • 7,696
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 ...
Michael Folkson's user avatar
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 ...
Murch's user avatar
  • 72.6k
6 votes

Can "Block" Message send multiple blocks?

It sends exactly one block. If you want to send multiple blocks, you need multiple messages.
Pieter Wuille's user avatar
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) ...
Pieter Wuille's user avatar
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 ...
RedGrittyBrick's user avatar
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 ...
Murch's user avatar
  • 72.6k
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".
Pieter Wuille's user avatar
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 ...
Pieter Wuille's user avatar
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) ...
RedGrittyBrick's user avatar
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 (...
Pieter Wuille's user avatar
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
Tearo Dactyl's user avatar
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. ...
Andrew Chow's user avatar
  • 68.5k
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.
Querzel's user avatar
  • 86
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 ...
Claris's user avatar
  • 15.4k
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 ...
G. Maxwell's user avatar
  • 7,696
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 ...
Claris's user avatar
  • 15.4k
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 ...
Muoi Tran's user avatar
  • 427
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....
Andrew Chow's user avatar
  • 68.5k

Only top scored, non community-wiki answers of a minimum length are eligible