Step 4: Installing execution client

🛸 Install execution client (ETH1 node)

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 \
  --goerli \
  --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

Now that your execution client is configured and started, proceed to the next step on setting up 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 synced to the Ethereum network.

Last updated