These guides cover running a node and a validator on Gnosis Chain as it runs today, and stay valid until the fork. At activation the validator set retires and nodes keep only an execution client. See the move to Gnosis EEZ.
Managing an existing validator? Go to Validator withdrawals or Voluntary exit.
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.