This is my home labs running the following services:
- Ethereum Archive Node (Erigon+Lighthouse)
- Gnosis Chain Validators (Nethermind+Lighthouse)
- Goerli Full Node (Erigon+Lighthouse)
- Monitoring tools (Prometheus+Grafana)
Create the jwtsecret:
openssl rand -hex 32 > jwtsecretHere is step by step to setup gnosis chain validators:
- Download Gnosis Wagyu Keygen.
- Disconnect the internet access.
- Run the app.
- Import or create new mnemonic recovery phrase.
- Create new keys (input amount of existing keys, if any) with a password.
After create new keys, you will have the following files:
deposit_data-[...].json
keystore-m_[...].json
Copy the files keystore* files to ./gnosis/validator/.
Add your password that you use to generate the keys to ./gnosis/validator/password.txt.
You may need to stop the existing validators service first:
docker compose stop gnosis-validators
Rerun the services:
docker compose up -d
Check logs:
docker compose logs -f --tail 10 gnosis-execution
docker compose logs -f --tail 10 gnosis-beacon-1
docker compose logs -f --tail 10 gnosis-validatorsWait the chain sync for ~24hours, then follow the Validator Deposit guide.
Reminder to my futureself: Currently I have 32 validators running in Gnosis Chain.
- Wait Execution & Consensus nodes to 100% sync before starting a validator. Otherwise you will miss a lot of attestations.
- Run multiple beacon nodes! So all validators can attest in time.
Export
docker run \
--rm \
--volume /home/pyk/labs/gnosis/validator:/keystores \
--volume /home/pyk/labs/gnosis/consensus:/data \
sigp/lighthouse:latest-modern \
lighthouse account validator slashing-protection export /data/gnosis_interchange.json \
--network gnosis \
--datadir /dataImport
docker run \
--rm \
--volume gnosis_validators_data:/data \
--volume /home/pyk/labs/gnosis/consensus/gnosis_interchange.json:/gnosis_interchange.json \
chainsafe/lodestar:v1.2.2 \
validator slashing-protection import --file /gnosis_interchange.json \
--network=gnosis \
--dataDir=/data