Step 3: Installing execution client

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

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

Overview of Execution Clients

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

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.

Last updated