Skip to content

Commit e0bfa16

Browse files
committed
add: add eth70 spec
1 parent bc76b98 commit e0bfa16

File tree

1 file changed

+47
-3
lines changed

1 file changed

+47
-3
lines changed

caps/eth.md

Lines changed: 47 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Ethereum Wire Protocol (ETH)
22

33
'eth' is a protocol on the [RLPx] transport that facilitates exchange of Ethereum
4-
blockchain information between peers. The current protocol version is **eth/69**. See end
4+
blockchain information between peers. The current protocol version is **eth/70**. See end
55
of document for a list of changes in past protocol versions.
66

77
### Basic Operation
@@ -361,11 +361,13 @@ of the sending node.
361361

362362
### Transactions (0x02)
363363

364-
`[tx₁, tx₂, ...]`
364+
`[[tx₁, tx₂, ...], custodyids: B]`
365365

366366
Specify transactions that the peer should make sure is included on its transaction queue.
367367
The items in the list are transactions in the format described in the main Ethereum
368-
specification. Transactions messages must contain at least one (new) transaction, empty
368+
specification. The custodyids element is a bitmap representing which cell IDs in transaction
369+
payloads are stored by the sending peer, with each stored cell’s index marked as 1.
370+
Transactions messages must contain at least one (new) transaction, empty
369371
Transactions messages are discouraged and may lead to disconnection.
370372

371373
Nodes must not resend the same transaction to a peer in the same session and must not
@@ -509,8 +511,47 @@ received updates.
509511
At the same time, client implementations must take care to not disconnect all syncing
510512
peers purely on the basis of their BlockRangeUpdate.
511513

514+
### CellAvailability (0x12)
515+
516+
`[request-id: P, [vhash₁: B_32, vhash₂: B_32, ...], custodyids: B]`
517+
518+
This message announces the cell availability of transaction payloads.
519+
The list of vhash values represents the commitment hashes of payloads for which cells are available.
520+
The custodyid element is a bitmap marking the IDs of cells in the transaction payload
521+
stored by the sending peer, with each stored cell’s index set to 1.
522+
523+
### GetCellAndProofs (0x13)
524+
525+
`[request-id: P, [vhash₁: B_32, vhash₂: B_32, ...], requestids: B]`
526+
527+
This message request peer to return cells and proofs of the given versioned hash
528+
of the payload commitment.
529+
The requestids element is a bitmap representing IDs of cells required.
530+
531+
### CellAndProofs (0x14)
532+
533+
`[request-id: P, [[vhash₁: B_32, [cellAndProof₁: B, cellAndProof₂: B, ...]], [vhash₂: B_32, [cellAndProof₁: B, cellAndProof₂: B, ...]], ...]]`
534+
535+
This is a response to GetCellAndProofs, which provides the requested cells and their proofs.
536+
Each list element contains the versioned hash of the payload commitment that includes
537+
the cell, the cell itself, and a proof to verify the cell’s inclusion.
538+
Each element must match the vhash specified in the request.
539+
The sender can skip any cells that are not available, so the requester can fetch them
540+
from other peers.
541+
542+
The cellAndProof element contains the cell data along with the proof needed to verify
543+
that it belongs to the original payload.
544+
While its structure can vary depending on the verification method,
545+
it should allow the recipient to infer which cell IDs were skipped.
546+
512547
## Change Log
513548

549+
### eth/70 ()
550+
551+
Version 70 added the [CellAvailability] message to exchange custody information
552+
which represents cell IDs sending peer has stored. New message types,
553+
[GetCellAndProofs] and [CellAndProofs] were introduced to support cell-level messaging.
554+
514555
### eth/69 ([EIP-7642], April 2025)
515556

516557
Version 69 changed the [Status] message to include information about the available block
@@ -624,6 +665,9 @@ Version numbers below 60 were used during the Ethereum PoC development phase.
624665
[GetReceipts]: #getreceipts-0x0f
625666
[Receipts]: #receipts-0x10
626667
[BlockRangeUpdate]: #blockrangeupdate-0x11
668+
[CellAvailability]: #cellavailability-0x12
669+
[GetCellAndProofs]: #getcellandproofs-0x13
670+
[CellAndProofs]: #cellandproofs-0x14
627671
[RLPx]: ../rlpx.md
628672
[EIP-155]: https://eips.ethereum.org/EIPS/eip-155
629673
[EIP-1559]: https://eips.ethereum.org/EIPS/eip-1559

0 commit comments

Comments
 (0)