Import process
- The consensus client receives a block from gossip or Req/Resp.
- It checks topic timing, proposer identity, signature, parent availability, body limits, and consensus state transition rules.
Gossip checks reject a data-column sidecar with an invalid column index, empty commitments, mismatched column/proof lengths, invalid KZG proofs, or a failed commitments inclusion proof.
Gossip checks reject a data-column sidecar with an invalid column index, an empty column, a column or proof count that differs from the commitment list in the block's selected execution payload bid, a slot or block-root mismatch, or an invalid KZG proof.
- It validates the block body and payload fields defined for the selected fork. No blob sidecar is part of the pre-Dencun block network.
- It retrieves and verifies the required blob sidecars.
- It retrieves and verifies required data columns. A data column must come from the subnet for its column index, and a node samples columns that its custody configuration requires.
- It submits the execution payload and fork inputs through
engine_newPayload. VALIDcompletes execution validation.SYNCINGorACCEPTEDleaves the block optimistic.INVALIDmarks the execution branch invalid.- Consensus fork choice considers the block under its execution-validity
rules. A head change is sent to the execution client through
engine_forkchoiceUpdated.
Propagation boundary
Gossip validation can forward a block before full state transition and execution finish, but only after the defined gossip checks. Local import has the stronger checks needed for fork choice and finality.
Failure and recovery
An unknown parent can be requested by root.
Missing block data triggers the fork's block-recovery request.
Missing blob sidecars trigger data recovery.
Missing data columns trigger custody-aware recovery.
An optimistic block cannot become finalized while its execution result remains unknown. An invalid payload removes its descendants from viable fork choice.
Transport or JSON-RPC errors are not execution-invalid answers. The client retries or marks the link unhealthy.
Design rationale
Fast gossip checks protect propagation time. Full consensus, data, and execution checks protect the node's canonical state.