Why
API-02 proves that standard block plus getBlockV2 is sufficient for correctness. An enriched event could avoid a block fetch for unrelated post-Gloas imports and improve interoperability. Beacon APIs #599 owns that independent wire-contract decision.
Planning
- Lane: BN/API
- Status: In Progress
- Owner: Kris
- Reviewer: Nico plus cross-client representatives
- Parent: BN-01
- Coordination: Marco's Lodestar PoCs provide implementation evidence
- Artifact boundary: beacon-APIs #638 is separate payload-attributes work and does not settle this issue
Current live candidates
- Extend
block with builder_index and block_hash, based on Lodestar #9854.
- Add a lightweight external-Builder-only event carrying enough identity to locate retained payload material, likely
slot, block_root, block_hash, and builder_index, with bid_root still an open alternative.
The full-SignedExecutionPayloadBid variants #9875 and #9876, plus block_v2 #9896, remain comparison evidence but currently lack a demonstrated consumer advantage.
Nico's implementation review of ChainSafe#9854 described fork-conditional mutation of the existing block event as implicit and error-prone, and raised whether block_gossip would also require the same fields. Therefore neither live candidate is presumed preferred until the Lodestar and cross-client discussion resolves the contract.
Open contract questions
Invariants
- Keep
block plus getBlockV2 as the compatibility and complete-verification fallback.
- Do not make the event responsible for payload construction, reveal policy, replay, SSE IDs, or reconnect recovery.
- Preserve imported-block semantics unless the specification explicitly chooses another trigger.
- Do not confuse payload-attributes beacon-APIs #638 with selection notification beacon-APIs #599.
Tasks
Done when
A Beacon APIs PR completes cross-client review and either merges with documented implementation support or reaches a recorded upstream decision with follow-up ownership.
Evidence
Why
API-02 proves that standard
blockplusgetBlockV2is sufficient for correctness. An enriched event could avoid a block fetch for unrelated post-Gloas imports and improve interoperability. Beacon APIs #599 owns that independent wire-contract decision.Planning
Current live candidates
blockwithbuilder_indexandblock_hash, based on Lodestar #9854.slot,block_root,block_hash, andbuilder_index, withbid_rootstill an open alternative.The full-
SignedExecutionPayloadBidvariants #9875 and #9876, plusblock_v2#9896, remain comparison evidence but currently lack a demonstrated consumer advantage.Nico's implementation review of ChainSafe#9854 described fork-conditional mutation of the existing
blockevent as implicit and error-prone, and raised whetherblock_gossipwould also require the same fields. Therefore neither live candidate is presumed preferred until the Lodestar and cross-client discussion resolves the contract.Open contract questions
blockfields or a dedicated event.execution_optimistic.blockis extended, decide whether fields are required for self-builds withBUILDER_INDEX_SELF_BUILDor omitted as an external-Builder signal.Invariants
blockplusgetBlockV2as the compatibility and complete-verification fallback.Tasks
apis/eventstream/index.yamlandCHANGES.mdchange.redocly lint beacon-node-oapi.yaml.Done when
A Beacon APIs PR completes cross-client review and either merges with documented implementation support or reaches a recorded upstream decision with follow-up ownership.
Evidence