Skip to content

Validator Setup

  • node server will be running the EL, the CL, and prysm-validator (validator(s)) as a service
  • validator(s) will be attesting, aggregating, and proposing blocks, thus earning ETH income over time
  • ETH income will be added to its respective validator’s balance as it is earned
  • for any validator, you will be ready to set a withdrawal address at a future time of your choosing, thus beginning automatic, periodic withdrawals of its balance in excess of the staked 32 ETH

As in the initial setup guide, this guide is written using the following configurable values:

  • node server SSH port: 55522
  • node server hostname: eth-node-mainnet
Terminal window
ssh -p 55522 eth-node-mainnet
cd ethereum-node
# install prysm-validator, and configure it to run as a service
./setup-validator.sh
# logout and continue to next step (type `exit` or press `ctrl+d`)
exit

2. Format the Data flash drive to EXT4 and Deploy to it

Section titled “2. Format the Data flash drive to EXT4 and Deploy to it”
Terminal window
# get the device path of the USB 'DATA' drive
flashdrive="/dev/$(lsblk -I 8 --json | jq --arg USER "$USER" -r '.blockdevices |
map(select(.children[].mountpoints[] | contains("/media/\($USER)/DATA" ))) |
first | .name')" && echo $flashdrive
# unmount any mounted partitions of the USB flash drive
sudo umount ${flashdrive}?*
# wipe the existing partitions & create a new EXT4 partition
sudo fdisk $flashdrive
# Command (m for help): g
# Command (m for help): n
# Select (default p): <Enter>
# Partition number (1-4, default 1): <Enter>
# First sector (2048-120164351, default 2048): <Enter>
# Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-120164351, default 120164351): <Enter>
# Do you want to remove the signature? [Y]es/[N]o: y
# Command (m for help): w
# format the new partition and label it "DATA"
sudo mkfs.ext4 -L DATA -E lazy_itable_init=0 ${flashdrive}1
# safely eject the drive
sudo eject $flashdrive
Terminal window
cd ethereum-node
./tools/deploy.sh --usb
Terminal window
cd /media/mint/DATA/
source ./unseal.sh
./generate-keys.sh new-mnemonic
source ./seal.sh

4. Import Validator Keys and Create Wallet

Section titled “4. Import Validator Keys and Create Wallet”
Terminal window
ssh -p 55522 eth-node-mainnet
cd ethereum-node
./set-wallet-password.sh
# when prompted, choose a wallet password and save it in your client PC's password manager
# logout and continue to next step (type `exit` or press `ctrl+d`)
exit
Terminal window
./tools/import-keys.sh
# ignore the following warnings:
# "error creating directory"
# "accept-terms-of-use"
# "You are using an insecure gRPC connection"
# when prompted for a wallet password, enter the one created during `set-wallet-password.sh`
# when prompted for the account password, enter the passphrase created during `generate-keys.sh`
Terminal window
cd /media/$USER/DATA/
source ./unseal.sh
(nemo ./validator_keys/ &>/dev/null &)
Terminal window
source ./seal.sh

It can take over a week for the deposit(s) to arrive in the balance of your validator(s), signaling your official entry as a validating Ethereum node. At the moment of entry, your validator(s) will be expected to be up-and-running, along with your EL & CL, so start the validator service now and leave it running.

Terminal window
ssh -p 55522 eth-node-mainnet
cd ethereum-node
# start the service and follow its log
./enable-validator.sh
# press `ctrl + c` to exit the log