Skip to main content
netspecsEthereum networking

4.6.3.Block import

Stage
In progress
Version
Sources
fulu/p2p-interface.md3cbd26ffulu/fork-choice.md3cbd26ffulu/validator.md3cbd26fgloas/p2p-interface.md3cbd26fengine/prague.mde5d1bb6
Related
Block networkingPayload validationIndependent consensus and execution sync

Import process

  1. The consensus client receives a block from gossip or Req/Resp.
  2. 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, 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.

  1. 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.
  1. It submits the execution payload and fork inputs through engine_newPayload.
  2. VALID completes execution validation. SYNCING or ACCEPTED leaves the block optimistic. INVALID marks the execution branch invalid.
  3. 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 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.