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:
Copy [{"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:
Copy ./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:
Copy ./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
Copy 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:
Copy 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:
Copy 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
:
Copy 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:
Copy 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
:
Copy 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:
Copy helm repo add stakewise https://charts.stakewise.io
helm upgrade --install validators stakewise/web3signer-validators \
-n validators \
-f values.yaml