25
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, ...
15
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 ...
11
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 ...
6
votes
Accepted
Where can I find a list of reliable Bitcoin full nodes?
Best place is https://getaddr.bitnodes.io/nodes/leaderboard/
Nodes are rank according to various parameters
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
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 ...
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
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".
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
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
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
Accepted
What is `ping` RPC used for?
The help text is your friend:
Requests that a ping be sent to all other nodes, to measure ping time.
Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds.
Ping command is ...
4
votes
What would happen to Bitcoin if GPS/Galileo timing ceased to be available?
Bitcoin needs approximately sundial time accuracy to operate. Computers have their own free running clocks which provide more than enough accuracy in the absence of other references, and NTP sources ...
4
votes
Accepted
How Does A Node Get Infomation From The TxID - that is, isn't the TxID the SHA^2(256) of various transaction components?
Yes, all txids are calculated only from non-witness data. While many nodes have a complete copy of the blockchain (which does contain all transactions), most nodes do not have a full transaction index....
3
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
3
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 ...
3
votes
Accepted
Do full-nodes process all transactions before broadcasting the new block header?
Do full-nodes process all txs before broadcasting the new blockheader?
It depends. For nodes having protocol version 70015 and higher, the peer will announce the compact block even before full ...
3
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....
3
votes
Accepted
What is the proper way to handle reorgs when fetching headers
The getheaders message allows you to list multiple block hashes. So instead of just putting the current chain tip, you can insert multiple block hashes. Responding nodes will see if any of those ...
3
votes
Accepted
In Bitcoin Core, are compact blocks pre-filled with more than just the coinbase?
Adding more advanced prediction of what transactions are useful to prefill was probably intended as a TODO when Compact Blocks were implemented, but to the best of my knowledge, nobody has worked on ...
3
votes
Accepted
How do full nodes get the information about stale blocks?
A security assumption is that nodes are connected to at least one honest peer. If all of their peers are malicious, is is perfectly feasible for them to withhold information about certain blocks or ...
2
votes
What are seeds in the source code of bitcoin?
Those hosts are DNSseeds.
When your node starts if it find itself unable to successfully connect to the network within 11 seconds it will query those DNS names which are run by technical people in ...
2
votes
Accepted
What are seeds in the source code of bitcoin?
In order for a bitcoin node to start connections with other nodes, it first needs a seed node. A seed node can be any node (listening) connected to the bitcoin network. Once the node has connected to ...
2
votes
Where can I find a list of reliable Bitcoin full nodes?
A list of reliable nodes is inherently a trusted list. Therefore a reasonably trustable place to get some node IPs would be by hitting the DNS seeds hardcoded in the reference client.
The list is ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
p2p × 88network × 26
bitcoin-core × 25
bitcoin-core-development × 10
full-node × 10
peer-discovery × 9
protocol × 8
block × 5
nodes × 5
decentralization × 5
dns × 4
transactions × 3
blockchain × 3
json-rpc × 3
synchronization × 3
mempool × 3
peers × 3
tor × 3
decentralized-exchanges × 3
wallet × 2
bitcoind × 2
validation × 2
block-header × 2
timestamp × 2
c++ × 2