Nethermind Documentation
website·Indexed 37 days ago
https://docs.nethermind.io/Developer documentation for Nethermind version 2.0.0, an Ethereum client. Includes guides on building from source, running nodes on L2 networks like OP Stack, configuration via CLI and environment variables, state pruning, and detailed JSON-RPC namespace references for eth, web3, admin, net, and debug.
What's inside Nethermind
- Since the Merge, running an Ethereum node requires two clients working in tandem: an execution client (such as Nethermind) and a consensus client (which runs the Proof-of-Stake algorithm and connects to the Beacon Chain). For a simplified setup on Linux or macOS, the Sedge tool can be used to run both clients.
Overview of Nethermind 2.0 Archive Functionality
Nethermind 2.0 implements archive functionality using a flat database that captures per-block state changesets during ordinary syncing. This removes the need for a separate archive database or a specialized sync mode. Archive capabilities are achieved either via a full sync from genesis or a snap sync to the tip that captures history from the pivot onwards. Configuration is split into two groups:FlatDb.History*for historical state (e.g.,eth_call,eth_getBalance) andHistory.*for historical blocks and receipts (e.g.,eth_getBlockBy*,eth_getLogs).Overview of Ethereum Node Client Requirements
Since the Merge, running an Ethereum node requires two clients working in tandem: an execution client (such as Nethermind) and a consensus client (which handles the Proof-of-Stake algorithm and the Beacon Chain). For a simplified setup on Linux or macOS, the Sedge tool can be used to run both clients.Overview of Nethermind State Pruning
Pruning in Nethermind optimizes disk space by removing obsolete historical data while maintaining the current world state (accounts, contracts, etc.). This is the opposite of an archive node, which retains all history. Nethermind uses a 'hybrid pruning' approach by default, combining two methods:
- In-memory pruning: A continuous process that keeps state changes in memory until a threshold is reached, reducing disk writes and improving block processing performance.
- Full pruning: A thorough examination of the state tree that identifies and removes historical data, duplicating the current state to a new database and then replacing the old one. This significantly reduces database size back toward its initial state.
Overview of Nethermind Ethereum Execution Client
Nethermind is a high-performance Ethereum execution client built on .NET, operational since 2017. It supports Linux, Windows, and macOS. Key features include fast sync, high-throughput JSON-RPC, and a modular plugin system for extending client functionality without forking the codebase.Overview of Nethermind Ethereum Execution Client
Nethermind is a high-performance Ethereum execution client built on .NET, operational since 2017. It supports Linux, Windows, and macOS. Key features include fast sync, high-throughput JSON-RPC, and a modular plugin system that allows extending the client without forking the codebase.Overview of Nethermind 2.0 Archive Node Architecture
Starting with Nethermind 2.0, archive functionality is integrated into the flat database. Historical queries are answered using per-block state changesets captured during ordinary syncing. This removes the need for a separate archive database or a specialized sync mode. Archive nodes can be established either via a full sync from genesis or a snap sync to the tip that captures history from the pivot onwards.
Archive configuration is split into two independent groups:
FlatDb.History*settings: Govern historical state (used foreth_call,eth_getBalance, andeth_getStorageAtat historical blocks).History.*settings: Govern historical blocks and receipts (used foreth_getBlockBy*,eth_getTransactionReceipt, andeth_getLogs).
Overview of Ethereum Node Client Requirements
Since the Merge, an Ethereum node requires two clients working in tandem: an execution client (such as Nethermind) and a consensus client (Beacon Chain). The consensus client handles the Proof-of-Stake (PoS) algorithm and coordinates block production. For a simplified setup on Linux or macOS, the Sedge tool can be used to run both clients.Overview of Nethermind Ethereum Execution Client
Nethermind is a high-performance Ethereum execution client built on .NET, compatible with Linux, Windows, and macOS. It features fast sync (Snap sync enabled by default), high-throughput JSON-RPC support via HTTP, WebSocket, and IPC, and integrated monitoring through a built-in UI and Prometheus metrics.Overview of Ethereum Consensus Clients for Nethermind
To run an Ethereum node, you need both an execution client (such as Nethermind) and a consensus client (Beacon Chain) that work together. The consensus client handles the Proof-of-Stake (PoS) algorithm and coordinates block production. For a simplified setup on Linux or macOS, the Sedge tool can be used to run both clients.Overview of Nethermind JSON-RPC Transports
Nethermind uses the JSON-RPC 2.0 protocol for interaction. It supports three primary transports, each suited for different use cases:
- HTTP: Idempotent, closes connections between requests; ideal for a low volume of requests with lower overall overhead.
- WebSocket: Continuous open channel; supports event subscriptions, streaming, and high volumes of requests with low per-message overhead.
- IPC (Unix domain socket): Most secure as it is limited to local interactions and cannot be exposed to external traffic; supports event subscriptions.
Overview of Ethereum Node Client Requirements
Since the Merge, an Ethereum node requires two clients working in tandem: an execution client (such as Nethermind) and a consensus client (which runs the Proof-of-Stake algorithm and connects to the Beacon Chain). For a simplified setup on Linux or macOS, the Sedge tool can be used to run both clients.