Draft EIP-7801 defines an RLPx capability that advertises which repeating
history spans a peer stores. It copies only body and receipt retrieval from
eth/69.
Wire inventory
The handshake is:
[version, network-id, block-hash, genesis-hash, fork-id, block-bitmask]
block-bitmask is 10 bits. Each bit selects a 106,496-block span in every
1,064,960-block cycle.
GetBlockBodies (0x05) keeps the eth/69 payload:
[request-id, [block-hash, ...]]
BlockBodies (0x06) returns bodies in request order and keeps the eth/69
payload.
GetReceipts (0x0f) keeps the eth/69 payload:
[request-id, first-block-receipt-index, [block-hash, ...]]
Receipts (0x10) keeps the eth/69 request-id, continuation flag, and receipt
lists.
Behavior and failure handling
A peer retains new spans selected by its advertised mask. A requester checks the mask before it asks for data and validates every returned body or receipt against a canonical header. The mask is a service claim, not proof that every item is available.
Status and open points
The draft suggests an ENR form but does not assign a field or a final derivation. This page does not treat that suggestion as a wire contract.
Design rationale
The repeating mask spreads old history across peers without asking every node to retain the full archive.