Validator Quickstart
Install Dependencies
- Install docker by following: https://docs.vultr.com/how-to-install-docker-on-ubuntu-24-04
- Install Go by following: https://wiki.crowncloud.net/?How_To_Install_Go_on_Ubuntu_24_04
- Install JQ by following: https://jqlang.github.io/jq/
sudo apt install jq
- Install eth2-val-tools: https://github.com/protolambda/eth2-val-tools
go install github.com/protolambda/eth2-val-tools@latest
- Install ethereal: https://github.com/wealdtech/ethereal/v2
go install github.com/wealdtech/ethereal/v2@latest
Clone the repo
git clone --branch fix/set-builderapi --single-branch https://github.com/interstate-labs/eth-docker.git
cd eth-docker/interstate
Update the secrets.env file
Warning ensure the below fields are unique every time this setup is run. Signing up for two validators with the same private keys will cause a double attestation which will result in a slash of 1 eth and exit.
// Set different values for each of these, use `eth2-val-tools mnemonic` command to generate mnemonic
VALIDATORS_MNEMONIC=
WITHDRAWALS_MNEMONIC=
// Set private and public keys which store eth.
# Public address of wallet which holds testETH
ETH1_FROM_ADDR=
# Private key of the wallet which holds testETH
ETH1_FROM_PRIV=
Run the setup
./quickstart.sh // this generates the keystores, deposits to become a validator, runs valdiator nodes and sidecar.
Wait until the beacon node is fully synced and then run
cd .. && ./ethd keys import // Register validator keys to validator nodes
./set_withdrawal_address.sh // After validators are activated, you can set withdrawal addresses
// After running the above line, you can see the broadcast message in `./staking_deposit-cli-948d3fc-linux-amd64/bls_to_execution_changes/`
// Broadcast that message in https://holesky.beaconcha.in/tools/broadcast to set withdrawal addresses.
And you're running the interstate-sidecar and an ethereum validator on testnet!