Discussion topic for EIP-8449
This EIP adds an Engine API method, engine_proposalLookaheadUpdatedV1, with which a consensus client tells its execution client the upcoming proposals of its validators in the current and next epoch: slot, timestamp, fee recipient and target gas limit. It is a notice, not a command: it starts no build, names no parent block and changes no consensus rule. The execution client decides whether, when and how to prepare.
Today an execution client learns of a proposal from the payload attributes, seconds before the slot. Much of what it can do to build well does not need the parent block. Some examples:
- switch to fetching the full blobs of the blob transactions it may include under the sparse blobpool (EIP-8070) at a randomized time minutes ahead, instead of all the time;
- warm the state that pending transactions will touch;
- pre-execute pending transactions with the announced timestamp, fee recipient and gas limit;
- keep its own maintenance and traffic away from the slot.
ePBS (EIP-7732), higher gas limits, shorter slots (EIP-8198) and FOCIL (EIP-7805) each shorten the time between the parent and the slot, or add work to it. The Rationale explains how this differs from engine_preparePayload, which the Engine API folded into engine_forkchoiceUpdated in 2021.
Support is optional on both sides and not tied to a fork. An execution client that implements the method lists it in engine_exchangeCapabilities, and a consensus client calls it only then. If either side does not implement it, nothing changes: blocks are built from engine_forkchoiceUpdated and the payload attributes, as today. An execution client that implements it must validate every call, but may use as many of the announced proposals as it likes, or none.
Feedback is especially welcome from CL teams and EL teams.
Update Log
- 2026-10-19: initial draft, PR #12547
External Reviews
None as of 2026-10-20.
Outstanding Issues
- 2026-10-20: Move the method’s specification to ethereum/execution-apis (
src/engine/) as a pull request, with this EIP referencing it. - 2026-10-20: A request that is both too large and malformed: the EIP does not yet say whether
-38004or-32602takes precedence.