EIP-8205 -- Networking¶
Note: This document is a work-in-progress for researchers and implementers.
Introduction¶
This document contains the consensus-layer networking specifications for EIP-8205.
The specification of these changes continues in the same format as the network specifications of previous upgrades, and assumes them as pre-requisite.
Modifications in EIP-8205¶
Helpers¶
Modified compute_fork_version¶
Modified verify_execution_requests_limits¶
Note: The function verify_execution_requests_limits is modified to also
enforce the per-payload preregistration request limit.
The gossip domain: gossipsub¶
Topics and messages¶
Global topics¶
Modified beacon_block¶
The existing validate_beacon_block_gossip call to
verify_execution_requests_limits(block.body.parent_execution_requests) now
also enforces the per-payload preregistration request limit.
Modified execution_payload¶
The existing validate_execution_payload_envelope_gossip call to
verify_execution_requests_limits(envelope.execution_requests) now also
enforces the per-payload preregistration request limit. All other envelope
checks, including the bid's execution_requests_root commitment, remain
unchanged.
The Req/Resp domain¶
Messages¶
BeaconBlocksByRange v2¶
Protocol ID: /eth2/beacon_chain/req/beacon_blocks_by_range/2/
The EIP-8205 fork-digest is introduced to the context enum to specify the
EIP-8205 beacon block type.
fork_version |
Chunk SSZ type |
|---|---|
GENESIS_FORK_VERSION |
phase0.SignedBeaconBlock |
ALTAIR_FORK_VERSION |
altair.SignedBeaconBlock |
BELLATRIX_FORK_VERSION |
bellatrix.SignedBeaconBlock |
CAPELLA_FORK_VERSION |
capella.SignedBeaconBlock |
DENEB_FORK_VERSION |
deneb.SignedBeaconBlock |
ELECTRA_FORK_VERSION |
electra.SignedBeaconBlock |
FULU_FORK_VERSION |
fulu.SignedBeaconBlock |
GLOAS_FORK_VERSION |
gloas.SignedBeaconBlock |
HEZE_FORK_VERSION |
heze.SignedBeaconBlock |
EIP8205_FORK_VERSION |
eip8205.SignedBeaconBlock |
BeaconBlocksByRoot v2¶
Protocol ID: /eth2/beacon_chain/req/beacon_blocks_by_root/2/
The EIP-8205 fork-digest is introduced to the context enum to specify the
EIP-8205 beacon block type.
fork_version |
Chunk SSZ type |
|---|---|
GENESIS_FORK_VERSION |
phase0.SignedBeaconBlock |
ALTAIR_FORK_VERSION |
altair.SignedBeaconBlock |
BELLATRIX_FORK_VERSION |
bellatrix.SignedBeaconBlock |
CAPELLA_FORK_VERSION |
capella.SignedBeaconBlock |
DENEB_FORK_VERSION |
deneb.SignedBeaconBlock |
ELECTRA_FORK_VERSION |
electra.SignedBeaconBlock |
FULU_FORK_VERSION |
fulu.SignedBeaconBlock |
GLOAS_FORK_VERSION |
gloas.SignedBeaconBlock |
HEZE_FORK_VERSION |
heze.SignedBeaconBlock |
EIP8205_FORK_VERSION |
eip8205.SignedBeaconBlock |
ExecutionPayloadEnvelopesByRange v1¶
Protocol ID:
/eth2/beacon_chain/req/execution_payload_envelopes_by_range/1/
EIP-8205 changes the SSZ type of SignedExecutionPayloadEnvelope through the
execution_requests field. Per fork_version = compute_fork_version(epoch):
fork_version |
Chunk SSZ type |
|---|---|
GLOAS_FORK_VERSION |
gloas.SignedExecutionPayloadEnvelope |
HEZE_FORK_VERSION |
heze.SignedExecutionPayloadEnvelope |
EIP8205_FORK_VERSION |
eip8205.SignedExecutionPayloadEnvelope |
ExecutionPayloadEnvelopesByRoot v1¶
Protocol ID: /eth2/beacon_chain/req/execution_payload_envelopes_by_root/1/
The response context table is identical to ExecutionPayloadEnvelopesByRange v1.