Cell-level deltas: blob propagation that fetches only missing pieces
Strawmap Glamsterdam (Early 2027) · cell-level deltas
This is a network optimization in which, instead of exchanging whole blob data columns in PeerDAS, a node picks and fetches only the cells it does not yet have. It can be rolled out gradually node by node without a hard fork.
Why it is needed
Most blobs that a block references are already in each node's mempool (the store of pending transactions). But in the current structure, even if just one blob is missing from the mempool, the consensus layer has to download the entire data column from the network to pass the data availability check. This wastes bandwidth re-downloading data it already has and makes the node wait for everything because of one missing piece. This item reduces that waste by announcing to each other which cells they hold, at the level of the cell, the smaller unit a column is split into, and fetching only the missing cells. Because it extends the existing gossipsub behavior instead of building a new protocol, the message propagation structure stays the same and it can be applied first by individual clients without a hard fork. In the Strawmap it sits in the Glamsterdam column, but that is only an expectation, not a commitment.
How it works
- Announce the cells you hold Nodes exchange bitmaps of which cells they hold with each other. This uses the gossipsub Partial Messages Extension.
- Request only the missing cells Cells already in the mempool are skipped, and only the missing cells are requested from peers. The default strategy changes from push to pull.
- Fill the column and pass the check Once the missing cells are filled, the column is complete and the data availability check can proceed. Pushing data ahead of time (eager push) is also possible but is not the default behavior.
Related EIPs
- EIP-8136 Cell-level delta for data column propagation