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/ledgerwatch/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 docker-compose file with your favorite text editor in /home/$USER/gnosis/docker-compose.yml
:
version: "3"
services:
execution:
container_name: execution
image: thorax/erigon:devel
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=htcr
--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. Therefore, it is required to configure the port correctly if both options are enabled.
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 docker-compose file:
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
Archive node is the default option by Erigon. It takes about 370GB (January 2023) to run a Gnosis Chain Archive node. Please check the system requirements of your server before running an archive node.
To run an Erigon pruned node, --prune=htcr
command need to be added.