Last updated: 2026-04-22 (refreshed against current upstream heads)
Study only, no implementation.
Primary sources used:
~/ethereum-repos/consensus-specstagv1.7.0-alpha.5
Notes on how the Payload Timeliness Committee (PTC), the payload_present bit
on attestations, and should_extend_payload interact to produce a payload-level
reorg under gloas/ePBS, and what an honest slot N+1 proposer should actually
do. References: consensus-specs PR #4450 and specs/gloas/fork-choice.md /
specs/gloas/validator.md.
Proposed by Potuz during the ePBS breakout call (2026-04-17).
Setup: A block at slot 31 (last slot of epoch 0) with a payload containing many requests — in particular consolidation/switch-to-compounding requests.
Variants — gap duration after slot 31:
Detailed analysis of the Lido oracle's CL+EL snapshot mechanism, based on the lido-oracle codebase.
The Lido accounting oracle periodically reports total protocol TVL by reading
both CL and EL state. It ensures consistency by anchoring all reads to a single
ReferenceBlockStamp derived from a finalized CL slot.
Analysis of potuz's observation that PR #5094 changes the state model so that "a state doesn't discern between full or empty" and offchain information is needed to construct a block.
"A node today is given a beacon state and it doesn't need anything else to construct a block that builds on it and is automatically canonical."
This PR removes the virtual node tree architecture from the Gloas (ePBS / EIP-7732) fork choice and replaces it with a simpler penalty-based mechanism. The change is -389 / +57 lines across fork-choice.md, beacon-chain.md, and validator.md.
TL;DR: The simplification is correct in principle — it preserves FFG safety, LMD-GHOST integrity, and DA guarantees. The core insight (deferred payload = one post-state per block root, making virtual nodes unnecessary) is sound. There are two behavioral changes worth scrutinizing (strict PTC threshold, should_extend_payload fallback removal) and one potential gap (fork boundary handling in get_weight).