An Ethereum node starts three separate trust and connection paths: its local Engine API link, execution peer discovery, and consensus peer discovery.
Bootstrap process
- The operator gives the consensus and execution clients the same Engine API JWT secret. The clients connect and may exchange capabilities.
- The execution client loads static peers, discv4 bootnodes, DNS trees, or discv5 records. It filters chain-compatible records and opens RLPx.
- RLPx authenticates the remote node key and negotiates
ethand optional satellite capabilities. The initialeth Statusconfirms the network ID, genesis hash, fork ID, and the peer's available block range. - The consensus client waits until it knows genesis data, then loads trusted ENRs and runs discv5 lookup.
- It checks the
eth2fork identity, addresses, and advertised subnets. It opens libp2p, verifies the Peer ID, and negotiates streams.
The consensus client checks the advertised custody-group count before it uses data-column subnets.
- Req/Resp
Statusconfirms the consensus fork digest, finalized checkpoint, and head. The node joins the gossip topics and data subnets it needs.
Failure and recovery
The node keeps the execution and consensus peer pools separate. A useful peer on one layer does not prove compatibility on the other. Failed endpoints enter bounded retry and backoff. Bad signatures, identity mismatch, or chain mismatch remove the candidate.
If the Engine API link fails, network peers may stay connected, but the consensus client cannot safely validate or build execution payloads. It restores the authenticated local link before normal head processing resumes.
Design rationale
Discovery records provide candidates. Authenticated handshakes and protocol status messages establish the identities and chain state used by live sessions.