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: https://clientdiversity.org

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

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 https://github.com/ethereum/go-ethereum/releases

🧬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
[Unit]
Description=Geth Execution Layer Client service
Wants=network-online.target
After=network-online.target
Documentation=https://www.coincashew.com

[Service]
Type=simple
User=ethereum
Restart=on-failure
RestartSec=3
TimeoutSec=690
ExecStart=/usr/bin/geth \
  --mainnet \
  --metrics \
  --pprof \
  --authrpc.jwtsecret=/secrets/jwtsecret

[Install]
WantedBy=multi-user.target
EOF

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

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

⛓️Start geth

πŸ› οΈ Helpful execution client commands

πŸͺœ Next Steps

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

Last updated