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)?