When a compact block fails to rebuild a block from the mempool the node sends a getblocktxn message to learn about the missing transactions.

Does requesting for the missing transactions make the compact block protocol as slow as the normal block during new block propagation?


1 Answer 1


Yes, compact blocks are still usually faster even when there is a getblocktxn round trip.

The reason for this is because all that needs to be sent in that case is the requests for the missing transactions and the missing transactions themselves.

Although the time is increased by another round trip in this case it is only a single round trip and there is little delay from sending the data itself (serialization delay) since there is very little data to send.

When a full block is sent many round trips can be required due to TCP flow control and packet retransmissions and simply from the time it takes to send the additional data.

In the case where almost all transactions are unknown (which doesn't happen in practice) compact blocks would take about the same amount of time as non-CB transmission.

FWIW, on my node here 86.75% of the last 288 blocks (203) required no round-trip and 99.9749% of transactions were known in advance (378715 out of 378810).

  • Newer figures: out of the last 288 blocks, only one required a round trip. It's pretty usual these days to only have a couple round trips per day.
    – G. Maxwell
    Jul 23, 2018 at 12:44

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.