core-rs-albatross
core-rs-albatross copied to clipboard
Propagate block headers and bodies through separate gossipsub topics
The current gossipsub topic structure for block propagation suffers from poor mesh quality on the block-header
topic, duplicated messages due to re-publishing as well as data duplication across topics.
This PR replaces the block
/block-header
gossipsub topics by a block-header
and a block-body
topic, eliminating cross topic data duplication. All nodes subscribe to the block-header
topic, improving mesh quality, while only full/history nodes subscribe to the block-body
topic.
Additionally, validators
and next_batch_initial_punished_set
are moved from the macro body to the macro header while preserving circuit compatibility. These properties are always required by light nodes, so they need to be part of the header.
Closes #2499, closes #2560