In the Compact Blocks FAQ, particularly, the High Bandwidth Relaying diagram attached below, the CMPCTBLOCK message is sent by node A when receiving block is not yet completed.

The description says: When a new block arrives, Node A performs some basic validation (such as validating the block header) and then automatically begins sending the header, shortened txids, and predicted missing transaction (as described above) to Node B.

Is this really true? As I am checking the latest Bitcoin Core code, I see that INV/HEADERS/CMPTCBLOCK messages of a new block are only relayed once the block tip is updated (i.e., new hash is pushed to vBlockHashesToAnnounce).

Isn't that this means the CMPCTBLOCK message is sent only after the new block is fully validated (non-contextual and contextual checks)?

enter image description here


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.