🦏
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
  • Lido CSM testnet workflow
  • Video guide
  • Prepare your VM/Hardware
  • Download & configure ETH Docker
  • Start ETH Docker
  • Import validator keys
  • Upload deposit data
  • View logs
  • Useful commands
  • Mainnet workflow
  • Support
  1. Bonded Validators Setup
  2. Lido CSM
  3. Automations

CSM with ETH Docker

PreviousCSM with ETHPillarNextCSM with Dappnode

Last updated 1 month 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.

Lido CSM testnet workflow

Video guide

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: 2 vCPU

  • RAM: 8GB

  • 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 = $84, or 3.5 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 docker user group.

exit

After logging in again, install ETH Docker.

cd eth-docker
./ethd install

After the installation is complete, run:

source ~/.profile

You will now be able to call ethd from anywhere in your terminal. Next, configure the ETH Docker service.

ethd config

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

  1. Choose Hoodi Testnet >> Lido-compatible node (Community Staking / Simple DVT) >> [Community Staking] CSM node

  2. Select the Nimbus (Consensus) and Nethermind (Execution) for the client choices

  3. Use the default Checkpoint Sync URL, select yes for MEV Boost, select all relays, yes for Grafana dashboards, default Graffiti, yes for generate validator keys

  4. Generate suitable validator keys to participate in the Lido CSM

    • Generate 1 validator key and set the encryption password for the key

    • Save your 24-word mnemonic

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

Start ETH Docker

ethd start

Import validator keys

Change the user permissions of the folder containing your validator keys. Replace <user> with your actual username of your VM.

sudo chown -R $USER:$USER ~/eth-docker/.eth/validator_keys

Tip: To find username, look to the terminal of your sever/node. Every character before the @ is your username

Next, import the generated validator keys onto your validator client

ethd keys import

Upload deposit data

Copy the deposit data generated by the command below for uploading onto the Lido CSM Widget.

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": "hoodi", "deposit_cli_version": "2.7.0"}]

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

Grafana Dashboards:

Bring down all ETH Docker containers.

ethd down

Edit the .env file of ETH Docker.

nano ~/eth-docker/.env

Scroll down to the GRAFANA_PORT=3000 line and change the number to 443.

CTRL+O, ENTER, CTRL+X to save and exit.

Bring ETH Docker back up.

ethd up

To access your Grafana dashboard, navigate to PUBLIC_IP:443 on your web browser.

Useful commands

Run ethd help to print all available command line options. 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

Mainnet workflow

ETH Docker has an inbuilt TUI workflow for Mainnet setups. Simply follow along but verify the withdrawal and fee recipient addresses.

Support

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

Verify the fee recipient and withdrawal address on the

Mainnet:

Hoodi:

Mainnet:

Hoodi:

Mainnet:

Hoodi:

Mainnet withdrawal_address:

Mainnet fee recipient address:

Lido's ETH Docker repository
CSM Operator Portal
0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f
0x4473dCDDbf77679A643BdB654dbd86D67F8d32f2
0x388C818CA8B9251b393131C08a736A67ccB19297
0x9b108015fe433F173696Af3Aa0CF7CDb3E104258
https://csm.lido.fi/
https://csm.testnet.fi/
Upload/Remove/View validator keys
0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f
0x388C818CA8B9251b393131C08a736A67ccB19297
Google Cloud
Assemble your hardware
LogoStakesaurus Node Operator AcademyTelegram