erigontech/erigon
FinanceA Go implementation of an Ethereum execution node with an embedded consensus layer, built for efficient synchronization and large-scale node operation.
What Erigon Is
Erigon is an Ethereum execution-layer client with an embeddable consensus layer (Caplin), written in Go. Its design centers on bulk block processing and an immutable-file storage model rather than a traditional key-value store. This affects what operators get: Erigon3 syncs by downloading roughly 99% of the LatestState and history instead of re-executing from genesis, keeps per-transaction history granularity, and stores most data in segment/snapshot files. Most of chaindata can be deleted and regenerated, and state can be symlinked or mounted on a fast drive while history lives on cheaper storage (README lines 38-54).
The repository README addresses people working on the codebase; everything about actually operating a node — installation, flags, pruning modes, ports, staking — lives on the documentation site and the installation guide.
Who It Is For
- Node operators who need an Ethereum execution layer for mainnet or Gnosis Chain, with either the embedded Caplin consensus layer or an external CL client (JWT and external CL setup).
- Validators: block production is supported, and
--internalclis enabled by default (README lines 67-76). - Developers building against Erigon's JSON-RPC, GraphQL, or gRPC namespaces (interacting with Erigon), or running the RPC daemon as a separate process (RPC daemon docs).
- Contributors who need to compile, test, and modify the client itself.
Build and Run
Building requires Go >= 1.26, GCC 11+ or Clang 13+, a 64-bit architecture, and Linux kernel > v4. On x86-64 the build targets the x86-64-v2 baseline (SSE4.2, POPCNT); older CPUs are not supported (README lines 93-114).
git clone https://github.com/erigontech/erigon.git
cd erigon
make erigon
The binary lands in ./build/bin. Use -j<n> to parallelize, and make all to build the full suite. make help lists every target. For a released version rather than main, check out its tag. Packaged binaries, Docker images, and per-platform instructions are on the installation page; Windows users can build natively or under WSL2 (native, WSL2).
Other executables include rpcdaemon, sentry, txpool, downloader, integration, evm, and an MCP server; make all also builds caplin, capcli, snapshots, rpctest, and pics (README lines 115-131). Running from build/bin as a separate user requires installing first, e.g. make DIST=/opt/erigon install (README lines 181-189).
Testing targets: make test-short, make test-all, make test-fixtures-cl (plus EEST and zkevm fixture suites), and make lint (README lines 132-143). Release-time incremental-sync verification is separate and covered in docs/TESTING.md.
Operational Constraints
- Sync and storage behavior is version-specific: Erigon3 changed history granularity, stopped storing logs/receipts (historical transactions are re-executed), and changed
--prunesemantics. See pruning modesarchive,full,blocks,minimal(pruning modes) and the CLI reference. - Caplin is enabled by default; set
--externalclto use an external consensus client instead. - Logging is split: the downloader's torrent client always writes
logs/torrent.logat WARN or--torrent.verbosity, whichever is more verbose (README lines 60-66). - Firewall and port configuration matter in production, especially on Hetzner, which expects strict rules (firewall note).
- To use Erigon as a library, pin a branch name or commit hash, not a tag:
go get github.com/erigontech/erigon@main(README lines 144-150). - Licensed under LGPL-3.0 (COPYING).
HotRepo's take
Erigon's value is architectural rather than cosmetic: per-transaction history, snapshot-based sync, and an embedded consensus layer are deliberate trade-offs that favor large-scale node operation over a minimal footprint. The repo has 3,629 stars and 1,580 forks, with 3 stars gained in the 2026-11-15 daily Go snapshot, where it ranked 10th on that language list. That is a single day's record, not a trend; the lack of a broader time series makes it unwise to read much into momentum. What does stand out is the long tail of operational documentation and the split-process design (rpcdaemon, sentry, txpool, downloader), which suggests the project is meant for operators who want to separate concerns and tune components individually.
Written by AI from the project's README, updated . The project's own docs are the source of truth.
Hacker News
You might also like
- argotorg/solidityA compiler and language for writing smart contracts that run on the Ethereum Virtual Machine.
- foundry-rs/foundryA Rust-based toolkit for building, testing, fuzzing, debugging, and deploying Ethereum smart contracts.
- ethereum-optimism/optimismCore OP Stack components for running and extending Optimism rollups on Ethereum.