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
🛡️ Recommendation 🛡️: Nethermind or Besu
🛑Strongly discouraged 🛑: GETH can be hazardous to your all YOUR STAKE.
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
Client | RAM Use | Minimum Database Size | Database Growth | Time to sync |
---|---|---|---|---|
Nethermind | 8 GB | 0.95 TB | 18 GB/week | Fastest, 2hrs+ |
Besu | 12 GB | 1.2 TB | 10 GB/week | Medium, 16hrs+ |
Geth | 8 GB | 1.2 TB | 8 GB/week | Fast, 8hrs+ |
Erigon | 8 GB | 1.2 TB | 8 GB/week | Medium, 16hrs+ |
Reth | 10 GB | 1.2 TB | 4GB/week | Medium, 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.
Last updated