Files
terence 8b0cdc2db9 Implement defer payload processing (#16658)
**1 — proto + API structs**
New fields: `execution_requests_root` on the bid,
`parent_execution_requests`
on the body. `state_root` gone from the envelope. Nothing uses them yet.

  **2 — consensus-types accessors + state interfaces**
Wires up the Go side of (1). Also adds `QueueBuilderPaymentForSlot` and
  factors `queueBuilderPaymentAtIndex` out of `QueueBuilderPayment`.

  **3 — ProcessParentExecutionPayload + spec tests**
  New spec fn, not wired in yet. Read it side-by-side with the pyspec. 

  **4 — swap the mutation site**
Old `ProcessExecutionPayload` drops all its state mutations and becomes
  verify only. `ProcessParentExecutionPayload` gets wired into
`ProcessBlockForStateRoot` before `process_block_header` per spec order.

Also: renames `IsParentBlockFull` → `LatestBlockHashMatchesBidBlockHash`
(old name was misleading, it's just an equality check).
`ProcessSlotsForBlock`
and `head.full` are deleted. Envelope no longer computes a `state_root`.

  **5 — proposer**
Sets `parent_execution_requests` on the body, builds the bid with the
new
fields, computes withdrawals via `computePayloadWithdrawals`. That fn
has
  three branches (empty parent / pre-Gloas parent / full Gloas parent).

  **6 — gossip validation**
Adds `validateParentExecutionRequests`: body's
`parent_execution_requests`
  has to hash to what the parent bid said. 

  **7 — rip out dual-key state access**
  State's always keyed by beacon block root now, so all the "sometimes
execution block hash" code across forkchoice, stategen, and the
blockchain
  service can go. Almost pure deletions. One actual behavior change: FCU
notifications use `forkchoice.BlockHash()` instead of
`st.LatestBlockHash()`

**8 — rename ProcessExecutionPayload → VerifyExecutionPayloadEnvelope**
  Rename only, nothing else. Just approve.

  **9 — test utilities + assertions + changelog**
Mechanical. Test builders pick up the new fields, a few stray
`envelope.StateRoot` references get swept up, changelog added.
2026-04-24 19:47:38 +00:00
..