StakeWise V3
  • Main Hub
  • Guides
    • Staking
    • Running a Vault
    • osToken
    • DeFi
      • SWISE-ETH Liquidity Pool
    • StakeWise V2
      • Migrate to StakeWise V3 on Ethereum
      • Migrate to StakeWise V3 on Gnosis Chain
      • Change solo withdrawal credentials to 0x01 address
        • Using Ledger Nano X
        • Using Windows
        • Using macOS
      • Exit solo validator
  • Protocol overview (in-depth)
    • Introduction
    • Vaults
    • osToken
    • Fees
    • Oracles
  • For operators
    • Operator Service
      • Running with Remote Signer
      • Running with Hashi Vault
      • Running as API service
      • Monitoring
    • Kubernetes staking setup
    • Smoothing Pool relays
    • Migrate from V2
      • Ethereum
      • Gnosis
    • DVT
      • Running operator with DVT
    • Vault incentives
    • Vault performance
  • For developers
    • Create a Vault
    • Stake
    • Unstake
    • Oracles
    • Contributions
    • Networks
      • Gnosis
      • Mainnet
      • Hoodi
      • Chiado
  • Governance
    • StakeWise DAO
    • DAO Treasury
Powered by GitBook
On this page
  • Step 0. Download Operator
  • Step 1. Validator keys recovery
  • Step 2. Setup operator database
  • Step 3. Start web3signer
  • Step 4. Create wallet and Kubernetes secret
  • Step 5. Start the Operator
  • Step 6. Start the Validators
  1. For operators
  2. Migrate from V2

Ethereum

PreviousMigrate from V2NextGnosis

Last updated 9 months ago

Step 0. Download Operator

Download the latest operator binary from .

Step 1. Validator keys recovery

Follow the steps to recover the keystores using your validator keys mnemonic .

After recovery add fake deposit_data.json file to your operator's vault directory, with content:

[{"pubkey": "8bfc0efc0209514a62cda2de8346a3a0849352eb830e0ff5b525642d93b9095d879a2789b284da14e348f85711b6b6d0", "withdrawal_credentials": "010000000000000000000000ac0f906e433d58fa868f936e8a43230473652885", "amount": 32000000000, "signature": "b55612acebde460bb273d100bc1574a21aea12f168ad7921cca855b6bf587646b0da329d4b17944773a876a90d87939a001a3857ca224b300ebe57703dce6be37d074e892fd65aa64e92284092efa14c38c1ed17f9fb4e3cd7a585ea66d46b03", "deposit_message_root": "f39eaed6c4c7e3e4563a3b5f3f1ca195c761f10517a5b303031d453dd3be28be", "deposit_data_root": "2d85d54c2b3d1a593f0f974d41fded6d68910e59adfc2d4e90ec74bb2e91e3c4", "fork_version": "00000000", "network_name": "mainnet", "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 vault_address

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: vault_address
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: mainnet
    vault: 0xac0f906e433d58fa868f936e8a43230473652885
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

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/0xac0f906e433d58fa868f936e8a43230473652885/wallet

Step 5. Start the Operator

To start the operator, use our chart. With values.yaml:

settings:
    network: mainnet
    vault: 0xac0f906e433d58fa868f936e8a43230473652885
    executionEndpoints: https://node.example.com/mainnet-nethermind
    consensusEndpoints: https://node.example.com/mainnet-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: mainnet
    vault: 0xac0f906e433d58fa868f936e8a43230473652885
dbKeystoreUrl: postgresql://postgres:postgres@localhost/operator
enabled: true
type: lighthouse
validatorsCount: 1
suggestedFeeRecipient: 0x48319f97E5Da1233c21c48b80097c0FB7a20Ff86
web3signerEndpoint: http://web3signer.web3signer:6174
beaconChainRpcEndpoints:
    - https://node.example.com/mainnet-lighthouse
extraFlags:
    lighthouse:
        - --builder-proposals

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

Сreate operator hot wallet by following the instructions .

here
here
here