NodeBridgeAfrica
  • ๐Ÿ˜ŒHome
  • About Us
  • ๐Ÿ””Community Code of Conduct
  • ๐Ÿš€Support Nodebridge Africa
  • ๐ŸšซDisclaimer
  • Understanding Blockchain
  • Consensus Mechanism in Blockchain
  • Understanding Staking and Node
  • Node Operator vs. Validator: Understanding the Differences
    • Node Operator and Validator
    • Roles & Responsibilities of an Ethereum node operator
    • Skillset Required
    • Understanding the Ethereum Validator Process
  • Rewards and Penalties for Ethereum Validators
  • Client Diversity
  • Bonded Validators
  • Node Setup and Configuration Guide
  • Hardware & System Requirements
    • Initial Setup
      • Hardware Requirements
      • Internet Requirement
      • Configure time sync
    • Practicing on Cloud VMs
    • Install and prepare the OS
    • Node Security: Root, Networking & Network Security
    • Advanced networking
  • Introduction to ETH Validators
  • NodeBridge Africa Community
    • Setting Up an Ethereum Validator Node In Africa
  • Staking Guide
    • Ethereum Staking Guide
      • Ethereum Guide
        • Guide: How to Setup a validator on Holesky Testnet
          • Overview - Manual Installation
          • Step 1: Prerequisites
          • Step 2: Configuring Node
          • Step 3: Installing execution client
            • Besu
            • Erigon
            • Geth
            • Nethermind
            • Reth
          • Step 4: Installing consensus client
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Step 5: Installing Validator
            • Installing Validator
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Setting up Validator Keys
            • Next Steps
          • Maintenance
            • Updating Execution Client
            • Updating Consensus Client
            • Uninstalling Staking Node
            • Backups Checklist: Critical Staking Node Data
        • Guide | How to setup a validator for Ethereum staking on mainnet
          • Overview - Manual Installation
          • PART I - INSTALLATION
          • PART I - INSTALLATION
            • Step 1: Prerequisites
            • Step 2: Configuring Node
            • Step 3: Installing execution client
              • Besu
              • Erigon
              • Geth
              • Nethermind
              • Reth
            • Step 4: Installing consensus client
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Step 5: Installing Validator
              • Installing Validator
                • Lighthouse
                • Lodestar
                • Nimbus
                • Prysm
                • Teku
              • Setting up Validator Keys
              • Next Steps
            • Synchronizing time with Chrony
            • Monitoring with Uptime Check by Google Cloud
            • Mobile App Node Monitoring by beaconcha.in
            • Monitoring your validator with Grafana and Prometheus
            • Security Best Practices for your ETH staking validator node
          • PART II - MAINTENANCE
          • PART II - MAINTENANCE
            • Updating Consensus Client
            • Updating Execution Client
            • Finding the longest attestation slot gap
            • Backups Checklist: Critical Staking Node Data
            • Checking my eth validator's sync committee duties
            • Checklist | Confirming a healthy functional ETH staking node
            • Uninstalling Staking Node
          • PART III - TIPS
          • PART III - TIPS
            • Voluntary Exiting a Validator
            • Verifying Your Mnemonic Phrase
            • Adding a New Validator to an Existing Setup with Existing Seed Words
            • How to re-sync using checkpoint sync
            • Dealing with Storage Issues on the Execution Client
            • Disk Usage by Execution / Consensus Client
            • EIP2333 Key Generator by iancoleman.io
            • Geth - Enabling path-based state storage
            • Important Directory Locations
            • Improving Validator Attestation Effectiveness
            • Reducing Network Bandwidth Usage
            • Running a slasher
            • Setting up dynamic DNS (DDNS)
            • Switching / Migrating Execution Client
            • Switching / Migrating Consensus Client
            • Using All Available LVM Disk Space
            • Using Node as RPC URL endpoint
        • Guide: How to stake on ETH 2.0 Altona Testnet with Lighthouse on Ubuntu
        • Guide | How to setup a validator on ETH2 mainnet
        • Guide | MEV-boost for Ethereum Staking
          • MEV Relay List
        • Security Best Practices for your ETH staking validator node
        • Guide | Recover Ethereum Validator Mnemonic Seed
        • Update Withdrawal Keys for Ethereum Validator (BLS to Execution Change or 0x00 to 0x01) with ETHDO
        • Downloading files from your node
      • TIPS
    • Gnosis Staking Guide
      • Guide: How to Setup a validator on Chiado Testnet
        • Overview - Manual Installation
        • Step 1: Prerequisites
        • Step 2: Configuring Node
        • Step 3: Installing execution client
          • Besu
          • Erigon
          • Geth
          • Nethermind
          • Reth
        • Step 4: Installing consensus client
          • Lighthouse
          • Lodestar
          • Nimbus
          • Teku
        • Step 5: Installing Validator
          • Installing Validator
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Setting up Validator Keys
          • Next Steps
        • Maintenance
          • Updating Execution Client
          • Updating Consensus Client
          • Uninstalling Staking Node
          • Backups Checklist: Critical Staking Node Data
      • Guide | How to setup a validator for Gnosis staking on mainnet
        • Overview - Manual Installation
        • PART I - INSTALLATION
        • PART I - INSTALLATION
          • Step 1: Prerequisites
          • Step 2: Configuring Node
          • Step 3: Installing execution client
            • Besu
            • Erigon
            • Geth
            • Nethermind
            • Reth
          • Step 4: Installing consensus client
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Step 5: Installing Validator
            • Installing Validator
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Setting up Validator Keys
            • Next Steps
          • Synchronizing time with Chrony
          • Monitoring with Uptime Check by Google Cloud
          • Mobile App Node Monitoring by beaconcha.in
          • Monitoring your validator with Grafana and Prometheus
          • Security Best Practices for your ETH staking validator node
        • PART II - MAINTENANCE
        • PART II - MAINTENANCE
          • Updating Consensus Client
          • Updating Execution Client
          • Finding the longest attestation slot gap
          • Backups Checklist: Critical Staking Node Data
          • Checking my eth validator's sync committee duties
          • Checklist | Confirming a healthy functional ETH staking node
          • Uninstalling Staking Node
        • PART III - TIPS
        • PART III - TIPS
          • Voluntary Exiting a Validator
          • Verifying Your Mnemonic Phrase
          • Adding a New Validator to an Existing Setup with Existing Seed Words
          • How to re-sync using checkpoint sync
          • Dealing with Storage Issues on the Execution Client
          • Disk Usage by Execution / Consensus Client
          • EIP2333 Key Generator by iancoleman.io
          • Geth - Enabling path-based state storage
          • Important Directory Locations
          • Improving Validator Attestation Effectiveness
          • Reducing Network Bandwidth Usage
          • Running a slasher
          • Setting up dynamic DNS (DDNS)
          • Switching / Migrating Execution Client
          • Switching / Migrating Consensus Client
          • Using All Available LVM Disk Space
          • Using Node as RPC URL endpoint
      • Security Best Practices for your ETH staking validator node
    • Lido Community Staking Module(CSM) and Obol DVT Guide
      • Guide: How to Setup a validator on Chiado Testnet
        • Overview - Manual Installation
        • Step 1: Prerequisites
        • Step 2: Configuring Node
        • Step 3: Installing execution client
          • Besu
          • Erigon
          • Geth
          • Nethermind
          • Reth
        • Step 4: Installing consensus client
          • Lighthouse
          • Lodestar
          • Nimbus
          • Teku
        • Step 5: Installing Validator
          • Installing Validator
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Setting up Validator Keys
          • Next Steps
        • Maintenance
          • Updating Execution Client
          • Updating Consensus Client
          • Uninstalling Staking Node
          • Backups Checklist: Critical Staking Node Data
      • Guide | How to setup a validator for Gnosis staking on mainnet
        • Overview - Manual Installation
        • PART I - INSTALLATION
        • PART I - INSTALLATION
          • Step 1: Prerequisites
          • Step 2: Configuring Node
          • Step 3: Installing execution client
            • Besu
            • Erigon
            • Geth
            • Nethermind
            • Reth
          • Step 4: Installing consensus client
            • Lighthouse
            • Lodestar
            • Nimbus
            • Prysm
            • Teku
          • Step 5: Installing Validator
            • Installing Validator
              • Lighthouse
              • Lodestar
              • Nimbus
              • Prysm
              • Teku
            • Setting up Validator Keys
            • Next Steps
          • Synchronizing time with Chrony
          • Monitoring with Uptime Check by Google Cloud
          • Mobile App Node Monitoring by beaconcha.in
          • Monitoring your validator with Grafana and Prometheus
          • Security Best Practices for your ETH staking validator node
        • PART II - MAINTENANCE
        • PART II - MAINTENANCE
          • Updating Consensus Client
          • Updating Execution Client
          • Finding the longest attestation slot gap
          • Backups Checklist: Critical Staking Node Data
          • Checking my eth validator's sync committee duties
          • Checklist | Confirming a healthy functional ETH staking node
          • Uninstalling Staking Node
        • PART III - TIPS
        • PART III - TIPS
          • Voluntary Exiting a Validator
          • Verifying Your Mnemonic Phrase
          • Adding a New Validator to an Existing Setup with Existing Seed Words
          • How to re-sync using checkpoint sync
          • Dealing with Storage Issues on the Execution Client
          • Disk Usage by Execution / Consensus Client
          • EIP2333 Key Generator by iancoleman.io
          • Geth - Enabling path-based state storage
          • Important Directory Locations
          • Improving Validator Attestation Effectiveness
          • Reducing Network Bandwidth Usage
          • Running a slasher
          • Setting up dynamic DNS (DDNS)
          • Switching / Migrating Execution Client
          • Switching / Migrating Consensus Client
          • Using All Available LVM Disk Space
          • Using Node as RPC URL endpoint
      • Security Best Practices for your ETH staking validator node
  • Introduction to SSV.Network
  • Awesome Resources
Powered by GitBook
On this page
  • Overview
  • 1. Initial configuration
  • 2. Install Binaries
  • 3. Setup and configure systemd
  • 4. Helpful execution client commands
  1. Staking Guide
  2. Lido Community Staking Module(CSM) and Obol DVT Guide
  3. Guide | How to setup a validator for Gnosis staking on mainnet
  4. PART I - INSTALLATION
  5. Step 3: Installing execution client

Erigon

Erigon - Successor to OpenEthereum, Erigon is an implementation of Ethereum (aka "Ethereum client"), on the efficiency frontier, written in Go.

Overview

Official Links

Subject
Link

Releases

Documentation

Website

1. Initial configuration

Create a service user for the execution service, create data directory and assign ownership.

sudo adduser --system --no-create-home --group execution
sudo mkdir -p /var/lib/erigon
sudo chown -R execution:execution /var/lib/erigon

Install dependencies.

sudo apt install curl libsnappy-dev libc6-dev jq libc6 unzip -y

2. Install Binaries

  • Downloading binaries is often faster and more convenient.

  • Building from source code can offer better compatibility and is more aligned with the spirit of FOSS (free open source software).

Option 1 - Download binaries

Run the following to automatically download the latest linux release, un-tar and cleanup.

RELEASE_URL="https://api.github.com/repos/ledgerwatch/erigon/releases/latest"
BINARIES_URL="$(curl -s $RELEASE_URL | jq -r ".assets[] | select(.name) | .browser_download_url" | grep linux_amd64)"

echo Downloading URL: $BINARIES_URL

cd $HOME
wget -O erigon.tar.gz $BINARIES_URL
tar -xzvf erigon.tar.gz -C $HOME
rm erigon.tar.gz

Install the binaries.

sudo mv $HOME/erigon /usr/local/bin/erigon
Option 2 - Build from source code
wget -O go.tar.gz https://go.dev/dl/go1.20.5.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go.tar.gz
echo export PATH=$PATH:/usr/local/go/bin >> $HOME/.bashrc
source $HOME/.bashrc

Verify Go is properly installed by checking the version and cleanup files.

go version
rm go.tar.gz

Install build dependencies.

sudo apt-get update
sudo apt install build-essential git

Build the binary.

mkdir -p ~/git
cd ~/git
git clone https://github.com/ledgerwatch/erigon.git
cd erigon
git fetch --tags
# Get latest tag name
latestTag=$(git describe --tags `git rev-list --tags --max-count=1`)
# Checkout latest tag
git checkout $latestTag
make erigon

Install the binary.

sudo cp $HOME/git/erigon/build/bin/erigon /usr/local/bin

3. Setup and configure systemd

Create a systemd unit file to define your execution.service configuration.

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

Paste the following configuration into the file.

[Unit]
Description=Erigon Execution Layer Client service for Mainnet
Wants=network-online.target
After=network-online.target
Documentation=https://www.nodebridgeafrica.com

[Service]
Type=simple
User=execution
Group=execution
Restart=on-failure
RestartSec=3
KillSignal=SIGINT
TimeoutStopSec=900
ExecStart=/usr/local/bin/erigon \
   --datadir /var/lib/erigon \
   --chain mainnet \
   --port 30303 \
   --torrent.port 42069 \
   --maxpeers 50 \
   --private.api.addr 127.0.0.1:9099 \
   --authrpc.port 8551 \
   --metrics \
   --pprof \
   --prune htc \
   --prune.r.before=11052984 \
   --authrpc.jwtsecret=/secrets/jwtsecret

[Install]
WantedBy=multi-user.target

To exit and save, press Ctrl + X, then Y, then Enter.

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

sudo systemctl daemon-reload
sudo systemctl enable execution

Finally, start your execution layer client and check it's status.

sudo systemctl start execution
sudo systemctl status execution

Press Ctrl + C to exit the status.

4. Helpful execution client commands

sudo journalctl -fu execution | ccze

A properly functioning Erigon execution client will indicate "Handling new payload". For example,

erigon[3]: [INFO] [09-29|03:36:24.689] [NewPayload] Handling new payload        height=19999 hash=0xea060...2846a907ceb4
erigon[3]: [INFO] [09-29|03:36:25.278] [updateForkchoice] Fork choice update: flushing in-memory state (built by previous newPayload)
erigon[3]: [INFO] [09-29|03:36:25.280] RPC Daemon notified of new headers       from=19998 to=19999 hash=0xeeed..710b597 header sending=13.32ยตs log sending=290ns
erigon[3]: [INFO] [09-29|03:36:25.280] head updated                             hash=0xea06098ad5e...5e5f43 number=20000
sudo systemctl stop execution
sudo systemctl start execution
sudo systemctl status execution

Common reasons to reset the database can include:

  • Recovering from a corrupted database due to power outage or hardware failure

  • Re-syncing to reduce disk space usage

  • Upgrading to a new storage format

sudo systemctl stop execution
sudo rm -rf /var/lib/erigon/*
sudo systemctl restart execution

Time to re-sync the execution client can take a few hours up to a day.

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.

PreviousBesuNextGeth

Last updated 9 months ago

Install Go dependencies. Latest version .

available here
https://github.com/ledgerwatch/erigon/releases
https://erigon.readthedocs.io/en/latest/index.html
https://erigon.substack.com