Compact Block Relay BIP



Summary:

In a discussion on the bitcoin-dev mailing list, Tom Zander raised concerns about the networking effects of selecting the best node to set the announce bit for block propagation. However, testing on actual nodes in the network showed that blocks are normally requested from one of the last three peers they were requested from 70% of the time, which increases robustness and reduces latency. The decision is non-normative to the protocol, so nodes can decide based on better criteria if discovered in the future. The "high bandwidth" mode uses somewhat more bandwidth than low bandwidth but still >>10 times less than an ordinary getdata relay. If a node is trying to minimize bandwidth usage, it can choose not to request the high bandwidth mode. The latency bound cannot be achieved without unsolicited data. The variable length encoding used in Bitcoin Core for years is being adopted in a BIP for compact blocks, with some control information in the high bits. Salting the hash eliminates collision attacks, and per-source randomization ensures that when a rare chance collision occurs, it only impacts a single node at a time.


Updated on: 2023-05-19T23:20:45.031256+00:00