Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 4.51 KB

File metadata and controls

71 lines (49 loc) · 4.51 KB

Step 3: Installing execution client

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

{% hint style="warning" %} Only one execution client is required per node. {% endhint %}

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

Sept 2023 Client Diversity

Overview of Execution Clients

{% hint style="info" %} :shield: Recommendation 🛡️: Nethermind or Besu {% endhint %}

{% hint style="danger" %} :octagonal_sign:Strongly discouraged :octagonal_sign:: GETH can be hazardous to your all YOUR STAKE. {% endhint %}

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+
Erigon8 GB1.2 TB8 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.