Compact Block Relay (BIP-152) launched an environment friendly technique to relay blocks when there’s good mempool sync between nodes, finest illustrated by this determine from the BIP:
The determine implies block might be relayed earlier than the receiving node finishes processing it.
I wish to know what’s the state of affairs in apply in Bitcoin Core?
I think about this is able to be protected:
- Obtain block in full (vital path)
- Confirm PoW and Merkle root first (vital path)
- Relay the block (not on vital path, different thread can do)
- Validate absolutely and join block (vital path)
- Begin mining new tip (vital path)
So, what’s the delay between obtain and ship?
Seems to be like including most up-to-date block cache in v24 solved it. Can Bitcoin Core now assure relaying (the entire cmpctblock-getblocktxn-blocktxn) won’t be blocked by validation?
The socket loop has 50ms delay, and PoW and Merkle root checking is negligible, so node inside delay shouldn’t add way more than 50ms when propagating blocks?