Nethermind

Installing and configuring Nethermind as a systemd service.

Nethermind

Nethermind is a high-performance Ethereum execution client built on the .NET core. It is highly favored by validators and MEV searchers due to its optimized execution speeds and flexible configuration.

🛡️ Role: Nethermind serves as a direct alternative to Geth. It contributes to Client Diversity, protecting your node (and the network) from potential bugs in the Go-Ethereum codebase.


1. Install Dependencies

Nethermind requires the .NET runtime libraries and a few system utilities to run efficiently on Linux.

Bash

# Update repositories
sudo apt update

# Install required libraries (Snappy compression & libc)
sudo apt install -y libsnappy-dev libc6-dev libc6

2. Download & Install

Unlike Geth (which is a single binary), Nethermind consists of a suite of libraries. We will download the latest release and extract it to a dedicated directory.

A. Create the Application Directory

Bash

B. Set Permissions Ensure the ethereum user can execute the runner.

Bash


3. Configure Systemd Service

We will configure Nethermind to run as a background service, utilizing the data directories we created in Step 2.

Create the service file:

Bash

Paste the following configuration:

Ini, TOML

🔍 Flag Explanation:

  • --config mainnet: Loads the default mainnet presets (Snap Sync, etc.).

  • --JsonRpc.JwtSecretFile: The shared secret for the Engine API (Connection to Consensus Client).

  • --JsonRpc.Host 0.0.0.0: Allows external access (protected by Firewall).


4. Start the Service

Reload the systemd daemon and start the node.

Bash


5. Verify Status

Check the logs to ensure Nethermind is running and attempting to peer.

Bash

Expected Output:

  1. Old Blocks: You might see it quickly importing "Old Headers" or "State" via Snap Sync.

  2. Waiting for CL: You will see messages like Waiting for Consensus Client... or Engine API: New Payload. This confirms it is ready for Step 4.

⚡ Performance Note: Nethermind is very fast at syncing but consumes significant RAM during the initial sync. Ensure your machine has at least 32GB RAM.

Last updated