🦏
ETH Home Staking Collection
DVT Home Staking Curriculum
DVT Home Staking Curriculum
  • The DVT Home Staking Curriculum
  • Curriculum breakdown & timeline
  • Understanding ETH validators
    • Introduction to ETH Validators
    • Roles & Responsibilities of a node operator
    • Rewards and penalties
    • Importance of client diversity
    • Distributed Validator Technologies (DVTs)
    • Economics of using DVTs (WIP)
      • Diva Staking (WIP)
      • Obol (WIP)
      • SSV (WIP)
    • Bonded Validators
    • Economics of bonded validators (WIP)
  • Hardware & systems setup
    • Setup Overview
    • Hardware & system requirements
    • Procuring your hardware
    • Assemble your hardware
    • Practicing for free on Cloud VMs
      • Google Cloud
      • Alibaba Cloud
  • Linux OS, Networking, & Security
    • Install and prepare the OS
    • Networking & network security
    • Device level security setup
    • Verifying checksums
  • Installing & configuring your EL+CL clients
    • Set up and configure execution layer client
      • Nethermind
      • Besu
      • Geth
      • Erigon
      • Reth
    • Set up and configure consensus layer client
      • Teku BN
      • Nimbus BN
      • Lodestar BN
      • Lighthouse BN
      • Prysm BN
  • Keystore generation & MEV-Boost
    • Validator key generation
    • Set up and configure MEV-boost
  • Native Solo Staking Setup
    • Validator client setup
      • Teku VC
      • Nimbus VC
      • Lodestar VC
      • Lighthouse VC
      • Prysm VC
    • Depositing 32 ETH into your validator
    • Exiting your validator
  • Monitoring, Maintenance, and Updates
    • Set up monitoring suite
      • Installing & configuring Prometheus
      • Installing & configuring Node Exporter
      • Installing & configuring Grafana
      • Beaconcha.in App API
      • Client Uptime Check
    • Maintenance & Updates
      • Nethermind
      • Besu
      • Teku
      • Nimbus
      • Lodestar
      • Updating the monitoring suite
      • Preparing for Pectra
  • DVT Setup
    • Diva Staking
      • Diva Staking client setup
        • Default - All-in-one setup
        • Advanced - with standalone Lodestar VC
      • Registering your Diva node
      • Updating your Diva client
      • Monitoring your Diva Node
    • Obol
      • Techne Bronze Speedrun (Launchpad)
      • Obol + Bonded Validators (Techne Silver)
        • Obol + Lido CSM
    • SSV
      • SSV + Lido CSM (WIP)
      • SSV Operator
      • SSV Staker
  • Bonded Validators Setup
    • Lido CSM
      • Generating CSM keystores
      • Set Fee Recipient Address
        • Method 1: Configure on validator keys
        • Method 2: Configure on separate validator client
        • Verifying Fee Recipient Registered on MEV Relays
      • Upload/Remove/View validator keys
      • Rewards & bonds
      • Exiting CSM validators
        • "Lazy" exits (TESTNET ONLY)
        • Proper Exits
      • Role/Address management
      • Monitoring
      • Automations
        • CSM with ETHPillar
        • CSM with ETH Docker
        • CSM with Dappnode
    • Puffer
      • Non-Enclave: 2 ETH
    • Ether.fi
      • Receive distributed validator keyshares
    • Stader (WIP)
    • Rocketpool (WIP)
  • Liquid Staking Vaults
    • Stakewise V3
  • Mainnet
    • Mainnet Deployment
    • Heroglpyhs (WIP)
  • Best practices
    • Slashing prevention
    • Maximising uptime and performance
    • Optimising security
    • Managing your withdrawal wallet
  • Tips
    • Advanced networking
    • Downloading files from your node
  • Useful resources
    • General resources
    • Holesky Faucets
  • Automation/tools
    • ETHPillar
    • ETH Docker
    • Automated power on/off
      • Wake-on-LAN (WoL)
      • Network UPS Tools (NUT)
    • Validator Healthcheck Alerts
  • Solo Stakers Guild
    • Lido CSM+SSV+Obol (Testnet)
Powered by GitBook
On this page
  • VM/Hardware Setup
  • Solo Staking testnet workflow
  • Prepare your VM/Hardware
  • Download & configure ETH Docker
  • Optional: Make EL and CL endpoints accessible on host
  • Generate validator keys
  • Start ETH Docker
  • Import validator keys
  • Whitelist your wallet address
  • Upload deposit data
  • View logs
  • Useful commands
  • Support
  • Donations
  1. Automation/tools

ETH Docker

PreviousETHPillarNextAutomated power on/off

Last updated 8 months ago

VM/Hardware Setup

You will need to prepare your virtual machine (VM) or home staking hardware for all options below. Step-by-step guide below.

Solo Staking testnet workflow

Prepare your VM/Hardware

Create a new Google Cloud account to unlock $300 of free cloud credits.

Create a VM on the Google Cloud Console (or any other cloud provider) with the following machine specifications.

  • CPU: 4 vCPU

  • RAM: 16GB

  • Boot Disk: Ubuntu 24.04 LTS, Balanced persistent disk, 350GB SSD,

  • Identity & API access: No service account

  • Firewall: Enable HTTP & HTTPS traffic

Estimated cost per month on Google Cloud = $149, or 2 months of free practice time with $300 of cloud credits

Download & configure ETH Docker

SSH into your VM/hardware: Click on the dropdown beside the "SSH" column and select "Open in browser window". Click on "Authorize" when prompted.

cd ~ && git clone https://github.com/eth-educators/eth-docker.git && cd eth-docker
sudo usermod -aG sudo $USER

Exit your virtual machine/hardware and re-login to add your host user into the sudo & docker user group.

exit
cd eth-docker
./ethd install

Enable ethd to be called from anywhere on your terminal.

source ~/.profile

Next, configure the ETH Docker service. Tip: You can now call ethd from anywhere in your VM.

ethd config

Follow along the prompts in the terminal UI (TUI) to:

  1. Choose Holešovice Testnet >> Ethereum node - consensus, execution and validator client

  2. Select the consensus + validator client and execution client and of your choice

  3. Use the provided URL for Checkpoint Sync, select yes for MEV Boost, use default relay, yes for Grafana dashboards

  4. Set Rewards Address to an ERC-20 wallet address that you control (e.g., Metamask, hardware wallet)

  5. use default Graffiti, yes for generate validator keys

ETH Docker TUI Navigation

  1. Arrow keys & Tab key: Cycle options

  2. Space bar: Select option

  3. Enter: Confirm option

  4. CTRL+C: Exit individual screen monitoring view

Optional: Make EL and CL endpoints accessible on host

Edit the .env file in the eth-docker folder.

cd 
nano ~/eth-docker/.env

Append :el-shared.yml and :cl-shared.yml in the COMPOSE_FILE line.

Example:

Now, the REST/HTTP/WS endpoints of your execution and consensus client can be accessed via:

  • Execution Client (HTTP): http://127.0.0.1:8545

  • Execution Client (WS): http://127.0.0.1:8546

  • Consensus Client: http://127.0.0.1:5052

Generate validator keys

ethd cmd run --rm deposit-cli-new --execution_address 0x4D496CcC28058B1D74B7a19541663E21154f9c84 --uid $(id -u)

Replace --execution_address with your actual ERC-20 wallet address (e.g., Metamask, hardware wallet) on mainnet. The pre-filled execution address here enables the ETHStaker community to fund the validator key on our behalf.

Follow the TUI prompts:

  • Choose language

  • Confirm withdrawal (execution layer) address

  • Number of validator keys to generate

  • Set password to encrypt validator keys - No "****" will be displayed so make sure to type your password carefully.

  • Save the 24-word mnemonic securely

Your validator keys will be saved in the ~/eth-docker/.eth/validator_keys folder.

Start ETH Docker

ethd up

Import validator keys

Import the generated validator keys onto your validator client

ethd keys import

Whitelist your wallet address

This section only applies to the Holeksy testnet

  1. Join the #cheap-holesky-validator channel

  2. Type “/cheap-holesky-deposit <your ETH address> ” in the text box and press enter

  3. Connect your Metamask wallet and sign the message

  4. Copy the URL and paste it in the Enter Signature box.

Upload deposit data

Copy the deposit data generated by the command below and paste it in a plain text file on your laptop (e.g., Notepad, Textedit), then it save as deposit_data_001.json.

cat ~/eth-docker/.eth/validator_keys/deposit*json

Example:

[{"pubkey": "b72e61268081e28b583d78876cc1687d72be4c3592de1f9d585c96b4c64b25b49174f04ae6e55eb1e59247cb575c0157", "withdrawal_credentials": "010000000000000000000000f0179dec45a37423ead4fad5fcb136197872ead9", "amount": 32000000000, "signature": "8bb6e8838d15ea0ea23ed5151436ea07b65a0530ccfa9f5154b1fa394827df5add81510cf3463b79a387b0dffbe43ae417ea53b844b43d6a249fbc153fa1deda9fc089f218a845e382aa7455d804650e0e03232d3dad36b180bbdacd908f286c", "deposit_message_root": "8dbda15641eb7be3573f7377d10634c93c2b1dceb9fb6e519ec54ae0286d04c7", "deposit_data_root": "43f215ce19df49591db322bd4966667afc2a226a0a9812e5d60e31c60223991c", "fork_version": "01017000", "network_name": "holesky", "deposit_cli_version": "2.7.0"}]

Scroll down and skip through until you see this page. Then, upload your deposit_data_001.json file here and sign the transaction on your wallet.

View logs

Monitor the logs of your validator node to make sure that it is syncing (or synced) with no errors while you wait for Lido to provision your validator deposit with 32 ETH.

View logs of each docker container.

ethd logs <container_name> -f --tail 20

Flags:

  • -f: Follow along the logs in real time. CTRL+C to exit monitoring view

  • --tail: Print the last N lines of the logs.

Choose one to replace the <container_name> above.

blackbox-exporter          consensus                  execution                  json-exporter              node-exporter              promtail
cadvisor                   ethereum-metrics-exporter  grafana                    loki                       prometheus                 validator

Useful commands

Within the ~/eth-docker folder, run ./ethd help to print all available command line options.

ethd help

Common options:

  • Update all clients & ETH Docker stack: ethd update

  • Stop ETH Docker: ethd down

  • Restart ETH Docker: ethd restart

  • Restart from scratch: ethd terminate

  • Resync consensus client: ethd resync-consensus

  • Resync execution client: ethd resync-execution

Support

Donations

Go to the and to get and run the installation commands. Run the next 2 commands in sequence.

Join the discord server here -

Click on the link generated (ie. the text shown below)

Go to the and select "Become a Validator".

If you found this helpful, consider supporting Stakesaurus in one of few ways !

Google Cloud
Assemble your hardware
ETH Docker repository
https://discord.gg/ethstaker
Signer.is
Holesky Ethereum Staking Launchpad
here
LogoStakesaurus Node Operator AcademyTelegram