Skip to content

Commit

Permalink
Merge pull request #4120 from tbenr/7732-rpc
Browse files Browse the repository at this point in the history
[EIP-7732] ExecutionPayloadEnvelopesByRange RPC
  • Loading branch information
jtraglia authored Feb 18, 2025
2 parents 45dfbe2 + 7d6b435 commit b9f8a75
Showing 1 changed file with 45 additions and 9 deletions.
54 changes: 45 additions & 9 deletions specs/_features/eip7732/p2p-interface.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,10 @@
- [`execution_payload_header`](#execution_payload_header)
- [The Req/Resp domain](#the-reqresp-domain)
- [Messages](#messages)
- [BeaconBlocksByRange v3](#beaconblocksbyrange-v3)
- [BeaconBlocksByRoot v3](#beaconblocksbyroot-v3)
- [BlobSidecarsByRoot v2](#blobsidecarsbyroot-v2)
- [BeaconBlocksByRange v2](#beaconblocksbyrange-v2)
- [BeaconBlocksByRoot v2](#beaconblocksbyroot-v2)
- [BlobSidecarsByRoot v1](#blobsidecarsbyroot-v1)
- [ExecutionPayloadEnvelopesByRange v1](#executionpayloadenvelopesbyrange-v1)
- [ExecutionPayloadEnvelopesByRoot v1](#executionpayloadenvelopesbyroot-v1)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->
Expand Down Expand Up @@ -200,9 +201,9 @@ _ _[IGNORE]_ `header.parent_block_root` is the hash tree root of a known beacon

#### Messages

##### BeaconBlocksByRange v3
##### BeaconBlocksByRange v2

**Protocol ID:** `/eth2/beacon_chain/req/beacon_blocks_by_range/3/`
**Protocol ID:** `/eth2/beacon_chain/req/beacon_blocks_by_range/2/`

[0]: # (eth2spec: skip)

Expand All @@ -215,9 +216,9 @@ _ _[IGNORE]_ `header.parent_block_root` is the hash tree root of a known beacon
| `DENEB_FORK_VERSION` | `deneb.SignedBeaconBlock` |
| `EIP7732_FORK_VERSION` | `eip7732.SignedBeaconBlock` |

##### BeaconBlocksByRoot v3
##### BeaconBlocksByRoot v2

**Protocol ID:** `/eth2/beacon_chain/req/beacon_blocks_by_root/3/`
**Protocol ID:** `/eth2/beacon_chain/req/beacon_blocks_by_root/2/`

Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:

Expand All @@ -232,9 +233,9 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:
| `DENEB_FORK_VERSION` | `deneb.SignedBeaconBlock` |
| `EIP7732_FORK_VERSION` | `eip7732.SignedBeaconBlock` |

##### BlobSidecarsByRoot v2
##### BlobSidecarsByRoot v1

**Protocol ID:** `/eth2/beacon_chain/req/blob_sidecars_by_root/2/`
**Protocol ID:** `/eth2/beacon_chain/req/blob_sidecars_by_root/1/`

[1]: # (eth2spec: skip)

Expand All @@ -243,6 +244,41 @@ Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:
| `DENEB_FORK_VERSION` | `deneb.BlobSidecar` |
| `EIP7732_FORK_VERSION` | `eip7732.BlobSidecar` |

##### ExecutionPayloadEnvelopesByRange v1

**Protocol ID:** `/eth2/beacon_chain/req/execution_payload_envelopes_by_range/1/`

*[New in EIP-7732]*

Request Content:

```
(
start_slot: Slot
count: uint64
)
```

Response Content:

```
(
List[SignedExecutionPayloadEnvelope, MAX_REQUEST_BLOCKS_DENEB]
)
```

Specifications of req\response methods are equivalent to [BeaconBlocksByRange v2](#beaconblocksbyrange-v2), with the only difference being the response content type.

For each `response_chunk`, a `ForkDigest`-context based on `compute_fork_version(compute_epoch_at_slot(signed_execution_payload_envelop.message.slot))` is used to select the fork namespace of the Response type.

Per `context = compute_fork_digest(fork_version, genesis_validators_root)`:

[0]: # (eth2spec: skip)

| `fork_version` | Chunk SSZ type |
|------------------------|------------------------------------------|
| `EIP7732_FORK_VERSION` | `eip7732.SignedExecutionPayloadEnvelope` |

##### ExecutionPayloadEnvelopesByRoot v1

**Protocol ID:** `/eth2/beacon_chain/req/execution_payload_envelopes_by_root/1/`
Expand Down

0 comments on commit b9f8a75

Please sign in to comment.