Top-to-bottom map of how an Ethereum node is structured

 Top-to-bottom map of how an Ethereum node is structured

πŸ”΅ TOP LEVEL: The Node

A “node” = Execution Client (EL) + Consensus Client (CL) working together.

┌─────────────────────────┐ │ Ethereum Node │ │ (EL client + CL client) │ └─────────────────────────┘

πŸ”₯ 1. CONSENSUS CLIENT (CL)

Main job: Follow PoS consensus, manage validators, attestations, sync committees, fork-choice.

Examples: Prysm, Lighthouse, Teku, Nimbus, Lodestar

✔ Components inside CL

Consensus Client │ ├── Beacon Node │ ├── p2p Networking (gossip, sync) │ ├── Beacon Chain database (slots, epochs, states) │ ├── Fork Choice (LMD-GHOST) │ ├── State Transition (processing blocks) │ ├── Sync Committee logic │ └── REST API (for monitoring) │ └── Validator Client ├── Proposer duties ├── Attester duties ├── Aggregator duties ├── Slashing Protection DB └── Signs duties using private keys

✔ CL connects to:

  • Peers through libp2p

  • Execution Client via the Engine API (over authenticated RPC with JWT)


πŸ”₯ 2. EXECUTION CLIENT (EL)

Main job: Handle EVM, transactions, mempool, execution, state.

Examples: Geth, Nethermind, Erigon, Besu, Reth

✔ Components inside EL

Execution Client │ ├── JSON-RPC Server │ ├── eth_* endpoints │ ├── debug_* │ └── txpool_* │ ├── Transaction Pool (Mempool) │ ├── Accepts txs from RPC │ ├── Validates signatures, nonces, gas │ └── Shares txs via p2p │ ├── EVM Engine │ ├── Executes transactions │ ├── Runs smart contract bytecode │ ├── Reads/writes state trie │ └── Computes gas usage │ ├── State DB (LevelDB/RocksDB) │ ├── State Trie (accounts + storage roots) │ ├── Storage Tries │ ├── Contract bytecode (codeHash → bytecode) │ └── Chain history │ └── P2P Network (devp2p) ├── tx propagation ├── block propagation └── chain syncing

✔ EL connects to:

  • Consensus Client via Engine API

  • External users/apps via RPC

  • Peers via devp2p


πŸ”₯ 3. ENGINE API (CL ↔ EL BRIDGE)

This is the bridge between PoS consensus and execution.

CL <── Engine API (JWT auth) ──> EL

Used for:

  • newPayload (CL gives block payload to EL)

  • getPayload (EL gives proposed block to CL)

  • forkchoiceUpdated

  • validator duties

  • syncing

This connection makes sure:

  • CL decides which block is canonical

  • EL executes the block and updates the state


πŸ”₯ 4. VALIDATOR CLIENT (VC)

A validator client connects to the consensus client (never to EL directly).

Validator Client │ ├── Pays attention to CL ├── Signs duties (attest/propose) └── Uses slashing protection

πŸ”₯ 5. DEVELOPERS & USERS (External)

They interact only with Execution Client RPC.

Wallets / Apps / Scripts / Dapps │ ▼ RPC Endpoints (EL) │ ▼ Execution Client

Examples of RPC methods:

  • eth_sendRawTransaction

  • eth_call

  • eth_getBalance

  • eth_getLogs

  • eth_getBlockByNumber


🌐 THE COMPLETE MAP (FULL DIAGRAM)

┌────────────────────────────┐ │ USERS / DAPPS │ │ Wallets, Scripts, Bots │ └──────────────┬─────────────┘ │ JSON-RPC (HTTP/Websocket) │ ▼ ┌─────────────────────────────────────┐ │ EXECUTION CLIENT │ │ (Geth / Nethermind / Erigon) │ ├─────────────────────────────────────┤ │ │ │ • devp2p Network │ │ • Tx Pool (mempool) │ │ • JSON-RPC Server │ │ • EVM (executes code) │ │ • State DB (tries, code, storage) │ │ │ └───────────────┬─────────────────────┘ Engine API (JWT) │ ▼ ┌────────────────────────────────────────────────────┐ │ CONSENSUS CLIENT │ │ (Prysm / Lighthouse / Teku / Nimbus / Lodestar) │ ├────────────────────────────────────────────────────┤ │ │ │ • libp2p Network │ │ • Beacon Chain DB │ │ • Fork Choice (LMD-GHOST) │ │ • State Transition │ │ • Sync Committees │ │ • Block validation │ │ │ └───────────────┬────────────────────────────────────┘ │ Validator API │ ▼ ┌──────────────────────┐ │ VALIDATOR CLIENT │ │ (signs duties only) │ └──────────────────────┘

πŸ”₯ SUMMARY (Perfect mental model)

  • Consensus Client ⇒ Decides which block is valid (attestations, PoS rules)

  • Execution Client ⇒ Executes what’s inside the block (EVM, state)

  • Engine API ⇒ Bridge between EL & CL

  • Validator Client ⇒ Signs duties only

  • RPC Server ⇒ Entry point for wallets/dApps

Comments

Popular posts from this blog

Frontend-to-Blockchain Flow

Arbitrum vs Optimism Rollups