`engine_forkchoiceUpdatedV1`/`V2`/`V3` allow beginning payload build process if `forkchoiceState.headBlockHash` references a `VALID` ancestor of the head of canonical chain
tersec opened this issue · comments
https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.4/src/engine/paris.md#specification-1 notes:
- Client software MAY skip an update of the forkchoice state and MUST NOT begin a payload build process if
forkchoiceState.headBlockHash
references aVALID
ancestor of the head of canonical chain, i.e. the ancestor passed payload validation process and deemedVALID
. In the case of such an event, client software MUST return{payloadStatus: {status: VALID, latestValidHash: forkchoiceState.headBlockHash, validationError: null}, payloadId: null}
.
But
nimbus-eth1/nimbus/beacon/api_handler/api_forkchoice.nim
Lines 130 to 136 in bda760f
combined with
nimbus-eth1/nimbus/beacon/api_handler/api_forkchoice.nim
Lines 188 to 207 in bda760f
allow exactly this.