Step 4: Installing execution client

Pick an execution client

Your choice of either Geth, Besu, Nethermind, or Erigon.

To strengthen Ethereum's resilience against potential attacks or consensus bugs, it's best practice to run a minority client in order to increase client diversity. Find the latest distribution of execution clients here:

πŸ›‘οΈ Recommendation πŸ›‘οΈ: Nethermind

Reminder: Ensure you are logged in and execute all steps in this guide as non-root user, ethereum ,created during Step 2: Configuring Node.

Geth - Go Ethereum is one of the three original implementations (along with C++ and Python) of the Ethereum protocol. It is written in Go, fully open source and licensed under the GNU LGPL v3.

Review the latest release notes at

🧬Install from the repository

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

βš™οΈ Setup and configure systemd

Run the following to create a unit file to define your eth1.service configuration.

Simply copy/paste the following.

cat > $HOME/eth1.service << EOF
Description=Geth Execution Layer Client service

ExecStart=/usr/bin/geth \
  --mainnet \
  --metrics \
  --pprof \


Move the unit file to /etc/systemd/system and give it permissions.

sudo mv $HOME/eth1.service /etc/systemd/system/eth1.service
sudo chmod 644 /etc/systemd/system/eth1.service

Run the following to enable auto-start at boot time.

sudo systemctl daemon-reload
sudo systemctl enable eth1

⛓️Start geth

sudo systemctl start eth1

πŸ› οΈ Helpful execution client commands

journalctl -fu eth1

πŸͺœ Next Steps

  • Now that your execution client is configured and started, proceed to the next section to setup your consensus client.

If you're checking the logs and see any warnings or errors, please be patient as these will normally resolve once both your execution and consensus clients are fully synched to the Ethereum network.

Last updated