Erigon
Installing Erigon for Archive Nodes or disk-efficient storage.
Erigon
Erigon is an implementation of Ethereum focused on storage efficiency and speed. It uses a different database architecture (MDBX) that allows it to store a full Archive Node (all historical states) in a fraction of the space required by Geth.
🛡️ Role: Erigon is the specialist's choice. It is primarily used by indexers, block explorers, and analytics providers who need deep historical data.
Note: Erigon syncs differently. It downloads all block headers first, then block bodies, and finally executes them. It may appear "stuck" at 100% header sync for a long time—this is normal.
⚠️ Erigon 3: This guide covers Erigon v3, which is a major rewrite. Erigon v2 is no longer supported and does not support post-Pectra Ethereum. If upgrading from v2, a full re-sync with an empty
--datadiris required — v2 data is not compatible with v3.
1. Install Dependencies
Erigon is distributed as a single binary. We only need basic tools to download and extract it.
# Update repositories
sudo apt update
# Install utilities
sudo apt install -y curl tar2. Download & Install
We will download the latest pre-built binary from the official repository.
A. Create the Application Directory
B. Set Permissions
Ensure the ethereum user owns the directory and the binary is executable.
3. Configure Systemd Service
We will configure Erigon to run as a background service.
💾 Storage Mode:
Archive Node: Retains all historical data. Add
--prune.mode=archive.Full Node (Default in v3): Prunes old data to save space. Add
--prune.mode=full.Note: Erigon v3 defaults to Full Node mode, unlike v2 which defaulted to Archive. The prune mode cannot be changed after the first start.
💡 Built-in Consensus Layer (Caplin):
Erigon v3 ships with Caplin, an embedded consensus layer client. By default, Caplin is enabled, which means you do not need a separate Consensus Client (Step 4) when running Erigon. If you prefer to use an external Consensus Client instead, add the
--externalclflag to disable Caplin.
Create the service file:
Paste the following configuration (using Caplin — no external CL needed):
🔍 Flag Explanation:
--prune.mode=archive: Tells Erigon to keep all historical state. (Change tofullif you have <2TB storage).
--http.api: Notice we addederigonandtracenamespaces. These are powerful tools unique to Erigon for debugging transactions.
--authrpc.jwtsecret: The standard Engine API authentication.
4. Start the Service
Reload the systemd daemon and start the node.
5. Verify Status
Check the logs to track the unique Erigon sync stages.
Expected Output (The Stages): Erigon does not sync like Geth. You will see it move through strict "Stages":
Stage 1: Downloading headers (Fast)
Stage 2: Downloading bodies (Fast)
Stage 3: Executing blocks (Slow — This is where it rebuilds the state)
Caplin: You should also see Caplin logs indicating the embedded consensus layer is running and syncing beacon chain data.
Last updated