Gnosis
Step 0. Download Operator
Download the latest operator binary from here.
Step 1. Validator keys recovery
Follow the steps to recover the keystores using your validator keys mnemonic here.
After recovery add fake deposit_data.json
file to your operator's vault directory, with content:
[{"pubkey": "aa8c737dd0b96232094c5591fa5a02b0e72e4292b6bbfd476673c3dbc56da996888d9d95724375b4ab3734172afec382", "withdrawal_credentials": "0100000000000000000000004b4406ed8659d03423490d8b62a1639206da0a7a", "amount": 32000000000, "signature": "a336744ac33a0329dbfe070b6b91a482386b22a7576aefd14d770d5e525b9b98539afa472dd1cb6399b801363d79fefd0a75929e290e3a16f9f57e27a2a6e98b8c7080a9a89b0b8ae86928abe20bbc298af894df24a7c25baab49bc992b99737", "deposit_message_root": "bafe0525dc543e89dcc2e1b22e68e6673b1f4dee9f5e82d9d65c77a5d012afc9", "deposit_data_root": "c32fdb0f6faced1b51a04b3bbb006d030399275ccf6dfc23e19cf3f0d5881250", "fork_version": "00000064", "network_name": "gnosis", "deposit_cli_version": "2.4.0"}]
Step 1.1. Import Genesis Keys (If applicable)
If you run keys from the Verihash operator before continuing, you must import them.
This can be done with the following command:
./operator \
import-genesis-keys \
--rsa-key /path/to/rsa_key \
--exported-keys-dir /path/to/keys \
--vault 0x4b4406ed8659d03423490d8b62a1639206da0a7a
Step 2. Setup operator database
Create new database called operator
and the user for the database. Next, initialize database and upload keysotres:
./operator remote-db setup
Enter your vault address: 0x4b4406ed8659d03423490d8b62a1639206da0a7a
Enter the Postgres DB connection URL (e.g. postgresql://username:pass@hostname/dbname): postgresql://username:pass@hostname/dbname
Successfully configured remote database.
Encryption key: SAAHK4DYwAvWMcKpV........
NB! You must store your encryption in a secure cold storage!
./operator remote-db upload-keypairs
Step 3. Start web3signer
To start web3signer, use our chart. With values.yaml
global:
network: gnosis
vault: 0x4b4406ed8659d03423490d8b62a1639206da0a7a
dbUrl: jdbc:postgresql://postgres:postgres@localhost/web3signer
dbUsername: web3signer
dbPassword: <password goes here>
dbKeystoreUrl: postgresql://postgres:postgres@localhost/operator
decryptionKey: <decrypt key goes here>
The deployment command looks like this:
helm repo add stakewise https://charts.stakewise.io
helm upgrade --install web3signer stakewise/web3signer \
-n web3signer \
-f values.yaml
Step 4. Create wallet and Kubernetes secret
Сreate operator hot wallet by following the instructions here.
Before deploying v3-operator service create kubernetes secret with operator wallet:
kubectl create secret -n operator generic v3-operator-wallet-data \
--from-file=/home/username/.stakewise/0x4b4406ed8659d03423490d8b62a1639206da0a7a/wallet
Step 5. Start the Operator
To start the operator, use our chart. With values.yaml
:
settings:
network: gnosis
vault: 0x4b4406ed8659d03423490d8b62a1639206da0a7a
executionEndpoints: https://node.example.com/gnosis-nethermind
consensusEndpoints: https://node.example.com/gnosis-lighthouse
walletSecretName: wallet-secret
remoteDbConfig:
enabled: true
dbUrl: postgresql://postgres:postgres@localhost/operator
remoteSignerUrl: http://web3signer.web3signer:6174
The deployment command looks like this:
helm repo add stakewise https://charts.stakewise.io
helm upgrade --install v3-operator stakewise/v3-operator \
-n operator \
-f values.yaml
Step 6. Start the Validators
To start the validators, use our chart. With values.yaml
:
global:
network: gnosis
vault: 0x4b4406ed8659d03423490d8b62a1639206da0a7a
dbKeystoreUrl: postgresql://postgres:postgres@localhost/operator
enabled: true
type: teku
validatorsCount: 1
suggestedFeeRecipient: 0x30db0d10d3774e78f8cB214b9e8B72D4B402488a
web3signerEndpoint: http://web3signer.web3signer:6174
beaconChainRpcEndpoints:
- https://teku.example.com/
The deployment command looks like this:
helm repo add stakewise https://charts.stakewise.io
helm upgrade --install validators stakewise/web3signer-validators \
-n validators \
-f values.yaml