Overview
What Geth is, its role as an execution client post-Merge, and how it relates to consensus clients like Lighthouse or Prysm.
Third-party documentation. This is independently authored analysis of the public Go Ethereum (Geth) codebase — not the official docs, and not reviewed or endorsed by the Go Ethereum (Geth) team.
Go Ethereum (Geth)
Go Ethereum — Geth — is the original Ethereum execution client, and still the most widely run. It implements everything an execution layer node must do: validate and execute transactions through the EVM, maintain canonical state, gossip blocks and transactions over the peer-to-peer network, serve JSON-RPC, and participate in the protocol's fork-choice rules as directed by a consensus client.
Why it matters
Since the Merge, execution clients no longer decide block ordering on their own; a consensus client drives them via the Engine API. Geth's job is to be a correct, fast, honest executor: given a payload from its consensus client, produce state transitions, receipts, and logs that every other honest client would reproduce byte-for-byte. Client diversity across Geth, Nethermind, Besu, Erigon, and Reth exists precisely so no single implementation bug can fragment the chain.
Where it sits in the ecosystem
- Consensus clients (Lighthouse, Prysm, Teku, Nimbus, Lodestar) — propose slots and attest; Geth executes whatever they feed it.
- dApps and wallets — almost all talk to Geth-shaped JSON-RPC, whether or not the endpoint is literally Geth.
- Layer 2s — several rollup stacks derive their execution nodes from Geth's codebase, extending rather than replacing it.
This documentation is independent analysis of the public repository, written for operators and developers who want a mental model of how a full node works inside.
