Erigon
Formerly TurboGeth, Erigon is an Ethereum client built to enable performance optimizations. Erigon is written in Go and licensed under the GNU LGPLv3.
Repository: https://github.com/erigontech/erigon
There are 2 main options for running Erigon:
- Option 1: Using Docker
- Option 2: As a system process
Option 1: Using Docker
1. Folder Structure
Create your folder structure:
mkdir -p /home/$USER/gnosis/{jwtsecret,execution}
chown -R 1000:1000 /home/$USER/gnosis/execution
/home/$USER/gnosis/
|── execution/
└── jwtsecret/
2. Docker Compose
Create a Compose file with your favorite text editor in /home/$USER/gnosis/docker-compose.yml:
version: "3"
services:
execution:
container_name: execution
image: erigontech/erigon:latest
restart: unless-stopped
volumes:
- /home/$USER/gnosis/execution:/home/erigon/.local/share/erigon
- /home/$USER/gnosis/jwtsecret/jwt.hex:/jwt:ro
networks:
- gnosis_net
ports:
- 30303:30303
- 30303:30303/udp
- 30304:30304
- 30304:30304/udp
- 42069:42069
- 42069:42069/udp
- 4000:4000/udp
- 4001:4001
expose:
- 8545
- 8551
command: |
--chain=gnosis
--http
--http.api=eth,debug,net,trace,web3,erigon
--ws
--metrics
--metrics.addr=0.0.0.0
--pprof
--pprof.addr=0.0.0.0
--pprof.port=6070
--authrpc.addr=0.0.0.0
--authrpc.jwtsecret=/jwt
--authrpc.vhosts=*
--prune.mode=minimal
--torrent.download.rate=16mb
--torrent.upload.rate=16mb
user: 1000:1000
networks:
gnosis_net:
name: gnosis_net
By default, metrics and pprof use the same port, 6060. If both are enabled, configure separate ports.
3. JWT Secret
The JWT secret is a token that allows the EL client to communicate with the CL client, and is required for Erigon to operate post-merge. We use rand to create a random string, and store the jwt.hex file in /home/$USER/gnosis/jwtsecret/.
Check create JWT section in Step 1: Configure Server.
4. Start Container
Start the Execution layer client listed in the compose file:
cd /home/$USER/gnosis
docker compose up -d
5. Monitor Logs
Check your logs with:
- execution
- consensus
- validator
docker logs -f --tail 500 execution
docker logs -f --tail 500 consensus
docker logs -f --tail 500 validator
6. Updating your Node
To update, just pull the new image, then stop and restart your services:
cd /home/$USER/gnosis
docker compose pull
docker compose stop
docker compose up -d
Option 2: Using system process
Refer to Erigon Guide.
Erigon Archive Node
Erigon uses --prune.mode=full by default. If you need an archive node, set --prune.mode=archive before first start.
If you want lower disk usage for a validator setup, use --prune.mode=minimal.
Always check the latest system requirements before choosing a pruning mode.