Compact Block Relay (BIP-152) launched an environment friendly approach to relay blocks when there’s good mempool sync between nodes, greatest illustrated by this determine from the BIP:
The determine implies block could be relayed earlier than the receiving node finishes processing it.
I need to know what’s the state of affairs in follow in Bitcoin Core?
I think about this could be secure:
- Obtain block in full (essential path)
- Confirm PoW and Merkle root first (essential path)
- Relay the block (not on essential path, different thread can do)
- Validate absolutely and join block (essential path)
- Begin mining new tip (essential path)
So, what’s the delay between obtain and ship?
Appears 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 far more than 50ms when propagating blocks?