How to Run an Ethereum Node with Geth and a Consensus Client

Since Ethereum's transition to proof-of-stake, running a full node requires two separate pieces of software working together: an execution client and a consensus client. This guide covers setting up Geth (execution) paired with a consensus client on a VPS.

Why Two Clients Are Needed

The execution client (Geth) handles transaction processing and the EVM; the consensus client handles proof-of-stake consensus and block validation — they communicate with each other to keep your node fully synced and validating correctly.

Prerequisites

  • Ubuntu 22.04/24.04 VPS: 4+ vCPU, 16 GB+ RAM
  • At least 2 TB SSD storage (Ethereum's state is substantial and continues growing)

Step 1 — Install Geth (Execution Client)

sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt update
sudo apt install ethereum -y

Step 2 — Generate a JWT Secret (Required for Client Communication)

openssl rand -hex 32 > /etc/jwt.hex

Both the execution and consensus clients need this shared secret to authenticate their communication with each other.

Step 3 — Start Geth

geth --syncmode snap --authrpc.jwtsecret /etc/jwt.hex

snap sync mode is generally faster for initial synchronization than full archival sync.

Step 4 — Install a Consensus Client (Example: Lighthouse)

curl -LO https://github.com/sigp/lighthouse/releases/latest/download/lighthouse-*-x86_64-unknown-linux-gnu.tar.gz
tar xzf lighthouse-*.tar.gz
sudo mv lighthouse /usr/local/bin/

Step 5 — Start the Consensus Client

lighthouse bn --network mainnet --execution-endpoint http://localhost:8551 --execution-jwt /etc/jwt.hex --checkpoint-sync-url https://mainnet.checkpoint.sigp.io

Using a checkpoint sync URL significantly speeds up initial consensus client sync compared to syncing from genesis.

Step 6 — Monitor Sync Progress

curl http://localhost:5052/eth/v1/node/syncing

Running Both Clients as systemd Services

For production use, wrap both processes in systemd services (see How to Manage Services with systemd and systemctl) so they start automatically and restart on failure, rather than running as manual foreground processes.

Storage Growth Planning

Ethereum's chain data grows continuously and substantially — monitor disk usage regularly and plan for storage expansion over time; see Blockchain Node Storage Requirements and Growth Planning.

Alternative Client Combinations

Geth can be paired with other consensus clients (Prysm, Teku, Nimbus) instead of Lighthouse — client diversity across the network is actually encouraged for resilience; choose based on your own preference and documentation quality for your setup.

Common Errors

Consensus client can't reach the execution client — verify both clients reference the exact same JWT secret file, and that the execution endpoint URL/port matches Geth's actual authrpc configuration.

Sync stalls or is extremely slow — verify sufficient disk I/O performance (SSD required) and stable network connectivity; Ethereum sync is demanding on both.

Continue Reading

Browse more articles in Cryptocurrency & Blockchain Node Hosting.

  • ethereum node, geth, consensus client, ethereum full node
  • 0 用戶發現這個有用
這篇文章有幫助嗎?

相關文章

How to Run a Bitcoin Full Node on a VPS

Running your own Bitcoin full node lets you independently verify transactions and blocks without...

VPS Requirements for Running a Blockchain Node

Different blockchain networks have vastly different resource requirements — this guide...

How to Set Up a Lightning Network Node (LND) on a VPS

The Lightning Network enables fast, low-fee Bitcoin transactions through payment channels. This...

How to Run a Monero Node on a VPS

Monero is a privacy-focused cryptocurrency; running your own node lets you interact with the...

Understanding Pruned vs Full Blockchain Nodes

Most blockchain node software offers a choice between running a "full" node (retaining complete...