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.
Create JWT Secret
Generate an authenticated token so Geth and Lighthouse communicate securely without unauthorized access:
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.hexInstall Go-Ethereum (Geth)
Install official stable binary from Ethereum PPA:
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update && sudo apt-get install -y gethRun Geth Execution Service
geth --holesky --authrpc.jwtpath /var/lib/ethereum/jwt/jwt.hex --authrpc.addr 127.0.0.1 --authrpc.port 8551 --http --http.api eth,net,web3INFO [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