You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
helix-simulator's ValidationApi (crates/simulator/src/validation/mod.rs) validates builder submissions by reconstructing a full execution block from the payload and executing it against reth (validateBuilderSubmissionV4/V5). It has no Gloas (ePBS) awareness. Until this lands, helix-relay's SimulatorClient::sim_request_builder returns None for Gloas submissions and they're dropped with BlockSimError::UnsupportedFork (see #517) -- a deliberate stopgap, not support.
Why
Gloas moves the execution payload out of the beacon block and into a separately-bid/revealed envelope (see #489), but a builder still submits a full execution payload to helix for value competition -- helix's own builder-facing wire shape is unchanged for Gloas (#514). That submission still needs EL-side validation (does it execute cleanly, does it pay the proposer the promised value) before helix accepts the bid. Today that validation is delegated entirely to reth, and reth doesn't understand Gloas payloads yet.
Investigated: reth is pinned to a tagged release (v2.4.1) with zero Amsterdam/Gloas awareness anywhere in its execution/consensus/chainspec code. However:
alloy-rpc-types-beacon (pulled in transitively at the same version) already defines SignedBidSubmissionV6/BuilderBlockValidationRequestV6 for this, including a conversion into alloy_rpc_types_engine::ExecutionData -- the wire types have landed ahead of reth's own execution-layer support.
reth has an active devnet branch, glamsterdam-devnet-8 -- the same devnet round already used to pin lighthouse in Gloas (ePBS) builder-API support #489's step 0.
This mirrors that step almost exactly: pin to the devnet branch, see what actually compiles and what reth's own block-execution/consensus code still doesn't implement, before committing to a design for the rest.
Affected surface
File
Role today
Gloas impact
crates/simulator/src/validation/mod.rs
ValidationApi::validate_builder_submission_v4/v5, executes payload via reth
Needs a validate_builder_submission_v6 path once reth can construct/execute an Amsterdam block
Currently returns None for Gloas (#517); needs a v6 arm once step 0 below lands
Cargo.toml (reth-* deps)
pinned to tag v2.4.1
Needs (at least temporarily) glamsterdam-devnet-8, mirroring lighthouse's pin in #489
Steps (each becomes one PR)
Step 0: Pin reth-* crates to glamsterdam-devnet-8, resolve resulting compile breakage, and assess what Amsterdam/ePBS EL-side validation reth's devnet branch actually implements vs. only defines types for (tests: ) (PR: )
Step 1+: TBD once step 0 reveals reth's actual devnet-branch support -- likely a validate_builder_submission_v6 path in ValidationApi plus wiring sim_request_builder's Gloas arm to it, but the real shape depends on what step 0 finds.
Open questions
Does reth's glamsterdam-devnet-8 branch implement Amsterdam block execution/consensus rules, or only the wire/RPC types (mirroring how alloy-rpc-types-beacon shipped V6 types ahead of any execution logic)? Answered by step 0.
Re-verify this against whatever CL/EL devnet round is actually current once Gloas/Amsterdam nears a release tag rather than a devnet branch (same caveat as Gloas (ePBS) builder-API support #489).
Status
helix-simulator'sValidationApi(crates/simulator/src/validation/mod.rs) validates builder submissions by reconstructing a full execution block from the payload and executing it against reth (validateBuilderSubmissionV4/V5). It has no Gloas (ePBS) awareness. Until this lands,helix-relay'sSimulatorClient::sim_request_builderreturnsNonefor Gloas submissions and they're dropped withBlockSimError::UnsupportedFork(see #517) -- a deliberate stopgap, not support.Why
Gloas moves the execution payload out of the beacon block and into a separately-bid/revealed envelope (see #489), but a builder still submits a full execution payload to helix for value competition -- helix's own builder-facing wire shape is unchanged for Gloas (#514). That submission still needs EL-side validation (does it execute cleanly, does it pay the proposer the promised value) before helix accepts the bid. Today that validation is delegated entirely to reth, and reth doesn't understand Gloas payloads yet.
Investigated: reth is pinned to a tagged release (
v2.4.1) with zero Amsterdam/Gloas awareness anywhere in its execution/consensus/chainspec code. However:alloy-rpc-types-beacon(pulled in transitively at the same version) already definesSignedBidSubmissionV6/BuilderBlockValidationRequestV6for this, including a conversion intoalloy_rpc_types_engine::ExecutionData-- the wire types have landed ahead of reth's own execution-layer support.glamsterdam-devnet-8-- the same devnet round already used to pin lighthouse in Gloas (ePBS) builder-API support #489's step 0.This mirrors that step almost exactly: pin to the devnet branch, see what actually compiles and what reth's own block-execution/consensus code still doesn't implement, before committing to a design for the rest.
Affected surface
crates/simulator/src/validation/mod.rsValidationApi::validate_builder_submission_v4/v5, executes payload via rethvalidate_builder_submission_v6path once reth can construct/execute an Amsterdam blockcrates/relay/src/simulator/client.rs::sim_request_builderNonefor Gloas (#517); needs a v6 arm once step 0 below landsCargo.toml(reth-*deps)v2.4.1glamsterdam-devnet-8, mirroring lighthouse's pin in #489Steps (each becomes one PR)
reth-*crates toglamsterdam-devnet-8, resolve resulting compile breakage, and assess what Amsterdam/ePBS EL-side validation reth's devnet branch actually implements vs. only defines types for (tests: ) (PR: )validate_builder_submission_v6path inValidationApiplus wiringsim_request_builder'sGloasarm to it, but the real shape depends on what step 0 finds.Open questions
glamsterdam-devnet-8branch implement Amsterdam block execution/consensus rules, or only the wire/RPC types (mirroring howalloy-rpc-types-beaconshipped V6 types ahead of any execution logic)? Answered by step 0.