Skip to content
INTERMEDIATE RunbookEthereum HoleskyValidator NodesDocs Verified(Oct 2026)
Ethereum Holesky logo

Deploying an Ethereum Validator on Holesky Testnet

Comprehensive runbook for setting up an Execution (Geth) and Consensus (Lighthouse) client pair with validator deposit verification on the Holesky public testnet.

Difficulty:INTERMEDIATE
45 mins est.
Docs Verified(Oct 2026)
Reviewed: Oct 20, 2026
By NodeDrops Infrastructure Team

Empirical Hardware Baselines (Validator Node)Tested & Documented

Processor (CPU)

4 Cores

Rec: 4 Cores (8 Threads)

Memory (RAM)

16 GB

Rec: 32 GB

Storage

500 GB (NVMe SSD)

Rec: 1000 GB

Network

50 Mbps+

Unmetered recommended

Note: Holesky public testnet requires 32 testnet ETH to deposit a validator key.

Architecture Overview

Running a validator requires two peer-to-peer software clients communicating over the Engine API (port 8551 with JWT secret authentication):

  • Execution Client: Go-Ethereum (Geth) executes transactions and manages world state.
  • Consensus Client: Lighthouse processes Casper FFG finality and validator attestations.

Deployment Prerequisites

  • Hardware: 4 Cores, 16 GB RAM, 500 GB NVMe SSD.
  • Operating System: Ubuntu 24.04 LTS or Debian 12.
  • Firewall: Inbound TCP/UDP 30303 (Geth P2P), TCP/UDP 9000 (Lighthouse P2P).
  • Elevated Permissions: Sudo privileges required for systemd and directory creation.
1

Create JWT Secret

Generate an authenticated token so Geth and Lighthouse communicate securely without unauthorized access:

Linux / macOS Shell (Bash)Elevated Sudo / Admin
sudo mkdir -p /var/lib/ethereum/jwt
openssl rand -hex 32 | sudo tee /var/lib/ethereum/jwt/jwt.hex
sudo chmod 600 /var/lib/ethereum/jwt/jwt.hex
2

Install Go-Ethereum (Geth)

Install official stable binary from Ethereum PPA:

Linux / macOS Shell (Bash)Elevated Sudo / Admin
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update && sudo apt-get install -y geth
3

Run Geth Execution Service

Linux / macOS Shell (Bash)
geth --holesky --authrpc.jwtpath /var/lib/ethereum/jwt/jwt.hex --authrpc.addr 127.0.0.1 --authrpc.port 8551 --http --http.api eth,net,web3
Expected OutputVerification Check
INFO [10-25|05:00:00.123] Started P2P networking                   self=enode://...
INFO [10-25|05:00:01.456] IPC endpoint opened                      url=/var/lib/geth/geth.ipc
INFO [10-25|05:00:02.789] HTTP server started                      endpoint=127.0.0.1:8545
INFO [10-25|05:00:03.012] WebSocket enabled                        url=ws://127.0.0.1:8546
INFO [10-25|05:00:04.234] Initialized Engine API endpoint          url=127.0.0.1:8551

Troubleshooting & Common Failure Modes

Peer Discovery Failure (0 Peers)

Remedy: If Geth stays at 0 connected peers: 1. Verify outbound UDP port 30303 is open in your cloud VPS security group. 2. Verify system clock is synchronized using `timedatectl status`. NTP time drift breaks consensus discovery.

Disk Space Exhaustion

Remedy: If disk usage reaches 90%: ```bash # Run Geth database prune while node is offline sudo systemctl stop geth geth snapshot prune-state --datadir /var/lib/ethereum/geth sudo systemctl start geth ```

Official References & Upstream Sources (1)

Ethereum Official Client DocumentationOFFICIAL_DOCS

Official client documentation reference

Reliability: 100%Documentation

Related Guides & Runbooks

ADVANCEDDocs Verified(Oct 2026)
Solana Mainnet-Beta official logo

Operating a Non-Voting Solana RPC Node

Solana Mainnet-Beta• RPC Nodes

High-performance tuning, memory configuration, accounts index optimization, and ledger storage disk partitioning for high-throughput RPC loads.

INTERMEDIATEDocs Verified(Oct 2026)

Configure op-geth and op-node with rate-limiting reverse proxy, health check endpoints, and WebSocket support for low-latency dApp queries.

BEGINNERDocs Verified(Oct 2026)

Step-by-step containerized deployment of the Arbitrum Nitro execution engine, connecting to an external Ethereum L1 beacon endpoint.