ETH Docker
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.
Google CloudAssemble your hardwareSolo 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
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.

Go to the ETH Docker repository and to get and run the installation commands. Run the next 2 commands in sequence.
cd ~ && git clone https://github.com/eth-educators/eth-docker.git && cd eth-dockersudo usermod -aG sudo $USERExit your virtual machine/hardware and re-login to add your host user into the sudo & docker user group.
exitcd eth-docker
./ethd installEnable ethd to be called from anywhere on your terminal.
source ~/.profileNext, configure the ETH Docker service. Tip: You can now call ethd from anywhere in your VM.
ethd configFollow along the prompts in the terminal UI (TUI) to:
Choose
Hoodi Testnet>>Ethereum node - consensus, execution and validator clientSelect the consensus + validator client and execution client and of your choice
Use the
provided URLfor Checkpoint Sync, selectyesfor MEV Boost,use defaultrelay,yesfor Grafana dashboardsSet
Rewards Addressto an ERC-20 wallet address that you control (e.g., Metamask, hardware wallet)use defaultGraffiti,yesfor generate validator keys
ETH Docker TUI Navigation
Arrow keys & Tab key: Cycle optionsSpace bar: Select optionEnter: Confirm optionCTRL+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/.envAppend :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 upImport validator keys
Import the generated validator keys onto your validator client
ethd keys importWhitelist your wallet address
Join the discord server here - https://discord.gg/ethstaker
Join the #cheap-hoodi-validator channel
Type “/cheap-hoodi-deposit
<your ETH address>” in the text box and press enterClick on the link generated (ie. the Signer.is text shown below)

Connect your Metamask wallet and sign the message
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*jsonExample:
[{"pubkey": "b72e61268081e28b583d78876cc1687d72be4c3592de1f9d585c96b4c64b25b49174f04ae6e55eb1e59247cb575c0157", "withdrawal_credentials": "010000000000000000000000f0179dec45a37423ead4fad5fcb136197872ead9", "amount": 32000000000, "signature": "8bb6e8838d15ea0ea23ed5151436ea07b65a0530ccfa9f5154b1fa394827df5add81510cf3463b79a387b0dffbe43ae417ea53b844b43d6a249fbc153fa1deda9fc089f218a845e382aa7455d804650e0e03232d3dad36b180bbdacd908f286c", "deposit_message_root": "8dbda15641eb7be3573f7377d10634c93c2b1dceb9fb6e519ec54ae0286d04c7", "deposit_data_root": "43f215ce19df49591db322bd4966667afc2a226a0a9812e5d60e31c60223991c", "fork_version": "01017000", "network_name": "hoodi", "deposit_cli_version": "2.7.0"}]
Go to the Hoodi Ethereum Staking Launchpad and select "Become a Validator".
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 20Flags:
-f: Follow along the logs in real time.CTRL+Cto 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 validatorUseful commands
Within the ~/eth-docker folder, run ./ethd help to print all available command line options.
ethd helpCommon options:
Update all clients & ETH Docker stack:
ethd updateStop ETH Docker:
ethd downRestart ETH Docker:
ethd restartRestart from scratch:
ethd terminateResync consensus client:
ethd resync-consensusResync execution client:
ethd resync-execution
Support
Donations
If you found this helpful, consider supporting Stakesaurus in one of few ways here!
Last updated