Skip to main content

Step 3: Installing execution client

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

warning

Only one execution client is required per node.

Execution Client Diversity​

  • 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

EL Diversity as of Dec 2024

Overview of Execution Clients​

info

🛡 Recommendation 🛡: Nethermind or Besu

Nethermind​

  • Nethermind: Open-source Ethereum client written in .NET Core.
  • Fast sync speed: Boasts the quickest Execution client syncing performance and is designed so you can start following the chain and attesting while it downloads history in the background.
  • Flexible configuration: Rich set of options tailored for node operators.
  • Online pruning: Allows database pruning while still online, no need to turn off client.
  • Resource-intensive pruning process: May result in noticeable performance degradation for low-power nodes during the process.

Besu​

  • Hyperledger Besu: Open-source Ethereum client under Apache 2.0 license, written in Java.
  • Distinctive features: Uses Bonsai Tries for state storage for enhanced performance and benefits.
  • Maintenance-free: Does not require pruning, making it effectively maintenance-free.

Geth​

  • Geth (Go Ethereum): One of the original Ethereum protocol implementations, written in Go and fully open source under GNU LGPL v3 license.
  • Stable and reliable: Oldest and most widely-used Execution Client with a strong reputation.
  • Multithreaded: Utilizes the entire CPU for enhanced performance.
  • Adjustable RAM usage: Configurable down to 4 GB minimum for Mainnet, accommodating various system specifications.

Erigon​

  • Erigon: High-performance Ethereum implementation focused on efficiency, faster synchronization, and optimized experience written in Go.
  • Born as a Geth fork, completely rewritten for enhanced speed and storage savings.
  • Faster archive node synchronization: Achieves full node synchronization in under three days with less than 2TB of storage.
  • Supports several popular EVM-compatible blockchains and testnets.
  • Efficient state storage: Utilizes a key-value database for improved performance.
  • Separate JSON RPC daemon: Enables read-only calls without requiring the same system as the main Erigon binary, even from a database snapshot.

Reth​

  • Reth: Execution layer (EL) Ethereum client, written in Rust, is compatible with all consensus layer (CL) implementations.
  • Developed by Paradigm, licensed under Apache and MIT licenses.
  • Capabilities: Sending/receiving transactions, querying logs and traces, and accessing/interacting with smart contracts.
  • Prioritizing security, efficiency, and ease-of-use for consumer hardware.

Comparison of Execution Clients​

ClientRAM UseMinimum Database SizeDatabase GrowthTime to sync
Nethermind8 GB0.95 TB18 GB/weekFastest, 2hrs+
Besu12 GB1.2 TB10 GB/weekMedium, 16hrs+
Geth8 GB1.2 TB8 GB/weekFast, 8hrs+
Erigon 38 GB0.92 GB8 GB/weekMedium, 16hrs+
Reth10 GB1.2 TB4GB/weekMedium, 16hrs+

Notes:​

  • Time to sync to a state capable beginning attestations depends on the IOPs of your storage drive.
  • Initial sync is always resource intensive. Synced operation is relatively resource use light.
  • Nethermind, Besu, Geth have the capability to prune the database.