Lighthouse

Installing and configuring the Lighthouse Beacon Node.

Lighthouse

Lighthouse is a leading Ethereum consensus client developed by Sigma Prime. It is written in Rust, making it highly secure and performant. It is a favorite among institutional operators for its stability and low resource footprint.

🛡️ Role: This service runs the Beacon Node. It connects to your Execution Client (e.g., Geth/Nethermind) to verify blocks and maintain synchronization with the Proof-of-Stake chain.


1. Download & Install

We will download the latest stable binary from the official Sigma Prime repository.

A. Create the Application Directory

Bash

# Create a folder for the binary
sudo mkdir -p /usr/local/lib/lighthouse

# Download the latest Linux release (Check https://github.com/sigp/lighthouse/releases)
# Example for v5.3.0:
sudo wget https://github.com/sigp/lighthouse/releases/download/v5.3.0/lighthouse-v5.3.0-x86_64-unknown-linux-gnu.tar.gz -O lighthouse.tar.gz

# Extract the archive
sudo tar -xvzf lighthouse.tar.gz -C /usr/local/lib/lighthouse

# Cleanup
rm lighthouse.tar.gz

B. Set Permissions Ensure the ethereum user owns the directory and the binary is executable.

Bash

sudo chown -R ethereum:ethereum /usr/local/lib/lighthouse
sudo chmod +x /usr/local/lib/lighthouse/lighthouse

2. Configure Systemd Service

We will configure Lighthouse to run as a background service.

⚡ Pro Tip: Checkpoint Sync Just like Prysm, Lighthouse supports syncing in minutes using a trusted checkpoint. We have included the --checkpoint-sync-url flag below.

Create the service file:

Bash

sudo nano /etc/systemd/system/lighthouse.service

Paste the following configuration:

Ini, TOML

[Unit]
Description=Lighthouse Consensus Client
After=network.target

[Service]
User=ethereum
Group=ethereum
Type=simple
Restart=always
RestartSec=5

# Execution Command
ExecStart=/usr/local/lib/lighthouse/lighthouse bn \
  --network mainnet \
  --datadir /home/ethereum/consensus \
  --execution-endpoint http://localhost:8551 \
  --execution-jwt /home/ethereum/jwt/jwt.hex \
  --checkpoint-sync-url https://beaconstate.info \
  --http \
  --http-address 0.0.0.0 \
  --http-port 5052 \
  --metrics \
  --metrics-address 0.0.0.0 \
  --metrics-port 5054

# Resource Limits
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

🔍 Flag Explanation:

  • bn: Tells Lighthouse to run in "Beacon Node" mode.

  • --execution-endpoint: The connection to Geth/Nethermind/Besu.

  • --http: Enables the REST API (Essential for checking sync status).

  • --metrics: Enables Prometheus metrics (Useful for Grafana dashboards).


3. Start the Service

Reload the systemd daemon and start the beacon node.

Bash

# Reload systemd configuration
sudo systemctl daemon-reload

# Enable Lighthouse to start on boot
sudo systemctl enable lighthouse

# Start the service
sudo systemctl start lighthouse

4. Verify Status

Check the logs to ensure Lighthouse is syncing and connected to the Execution Layer.

Bash

sudo journalctl -fu lighthouse

Expected Output:

  1. Connection: Connected to execution engine (Success! It found your EL).

  2. Sync: Starting checkpoint sync followed quickly by Synced.

  3. Peers: Peers connected: 50 indicates a healthy network connection.

📝 Note: Lighthouse logs are very readable. If you see "INFO Synced", your node is fully operational and following the head of the chain.

Last updated