Validator Setup
Preconditions
Section titled “Preconditions”Postconditions
Section titled “Postconditions”- 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
Configurable Values
Section titled “Configurable Values”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
1. Install Validator Software
Section titled “1. Install Validator Software”On the Client PC:
Section titled “On the Client PC:”ssh -p 55522 eth-node-mainnetcd 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”On the Client PC:
Section titled “On the Client PC:”# get the device path of the USB 'DATA' driveflashdrive="/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 drivesudo umount ${flashdrive}?*
# wipe the existing partitions & create a new EXT4 partitionsudo 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 drivesudo eject $flashdrive
cd ethereum-node./tools/deploy.sh --usb
3. Generate Mnemonic and Validator Keys
Section titled “3. Generate Mnemonic and Validator Keys”On the Air-Gapped PC:
Section titled “On the Air-Gapped PC:”cd /media/mint/DATA/source ./unseal.sh./generate-keys.sh new-mnemonicsource ./seal.sh
4. Import Validator Keys and Create Wallet
Section titled “4. Import Validator Keys and Create Wallet”On the Client PC:
Section titled “On the Client PC:”ssh -p 55522 eth-node-mainnetcd 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
./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`
5. Deposit 32 ETH Per Validator
Section titled “5. Deposit 32 ETH Per Validator”cd /media/$USER/DATA/source ./unseal.sh(nemo ./validator_keys/ &>/dev/null &)
source ./seal.sh
6. Enable Validator Service
Section titled “6. Enable Validator Service”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.
On the Client PC
Section titled “On the Client PC”ssh -p 55522 eth-node-mainnetcd ethereum-node
# start the service and follow its log./enable-validator.sh# press `ctrl + c` to exit the log