ETH 2.0 - Beacon Node
Eth 2.0 Clients
There are multiple Eth2 clients with working implementations. This guide will focus on installing Lighthouse, but be sure to research the other clients and promote Eth2 client diversity.
Dev Team
Sigma Prime
Consensys
Prysmatic Labs
Status
Focus
Speed, security
Enterprise
Usability, reliability
Lightweight
Language
Rust
Java
Go
Nim
Eth2 || Beacon Node || Installation
Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install other required packages:
sudo apt install -y git gcc g++ make cmake pkg-config libssl-dev
Change directory to /home
:
/home
:cd ~
Clone Lighthouse repository using git
:
git
:git clone https://github.com/sigp/lighthouse.git
Log Out / Log In
Rust modifies the PATH variable, so you need to log out and back in to prevent a command not found
error during the next step.
After logging back in, enter Lighthouse directory:
cd ~/lighthouse
Use make to compile the binary:
make
Eth2 || Beacon Node || Systemd File
Create lighthousebeacon
user:
lighthousebeacon
user:sudo useradd --no-create-home --shell /bin/false lighthousebeacon
Create /lighthouse/beacon
directory:
/lighthouse/beacon
directory:sudo mkdir -p /var/lib/lighthouse/beacon
Change ownership of /lighthouse/beacon
:
/lighthouse/beacon
:sudo chown -R lighthousebeacon:lighthousebeacon /var/lib/lighthouse/beacon
Copy Lighthouse binaries into /usr/local/bin
:
/usr/local/bin
:sudo cp /$HOME/.cargo/bin/lighthouse /usr/local/bin
Create lighthousebeacon.service
:
lighthousebeacon.service
:sudo nano /etc/systemd/system/lighthousebeacon.service
Paste the following into the file:
[Unit]
Description=Lighthouse Beacon Node
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=lighthousebeacon
Group=lighthousebeacon
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse beacon_node --datadir /var/lib/lighthouse --network prater --staking --eth1-endpoints http://127.0.0.1:8545
[Install]
WantedBy=multi-user.target
The file should look like this:

Below is a description of the command found in the "ExecStart" line:
/usr/local/bin/lighthouse beacon_node
- starts the beacon_node--datadir /var/lib/lighthouse/beacon-node
- data directory for Eth2 beacon node--network prater
- connect to prater testnet--staking
- enables the HTTP server for validator communication--eth1-endpoints http://127.0.0.1:8545
- Location of ETH1 node
Reload the system daemon:
sudo systemctl daemon-reload
Eth2 || Beacon || Run
Start lighthousebeacon.service
:
lighthousebeacon.service
:sudo systemctl start lighthousebeacon
Check lighthousebeacon.service
output:
lighthousebeacon.service
output:sudo journalctl -f -u lighthousebeacon.service
Eth 2.0 || Beacon Node || Sync

Congratulations! The Eth2 beacon node is now syncing to the Prater testnet!
Last updated
Was this helpful?