Nodes

System Requirements and Prerequisites

Before starting, ensure you have the following (recommended):

  • Hyperledger Besu installed on your machine. Installation Guide.

  • Java 17 or higher.

  • RAM: 8GB

  • Storage: 750GB

Install Besu

Prerequisites

There are multiple methods for installing Hyperledger Besu ( from source binary or Docker image).

Install java JDK 17+ (If not installed, check: `java -version`).

apt install openjdk-17-jre-headless
apt install libjemalloc-dev unzip
Download Besu

You can download the latest version of Hyperledger Besu from the official releases page : packaged binaries.

wget https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.1/besu-24.1.1.zip

Once downloaded, extract the archive to a directory.

unzip besu-24.1.1.zip

Change into the besu- directory.

cd besu-24.1.1/

To confirm installation:

bin/besu --help
bin/besu --version

To run besu as a command go to .bashrc.

nano .bashrc

Add this line:

export PATH=$PATH:/pathTO/besu-24.1.1/bin
source .bashrc

Verify:

besu --help
besu --version

Get Started

Initialize Node Directories
  1. Create a directory

  1. Generate a Node Key for the New Node

Copy the Genesis File

The new node needs to be initialized with the same genesis file as the rest of the network. Copy the genesis.json file.

Download the Testnet genesis.json file.

826B
Open
Testnet Genesis

Create config.toml Configuration Files

Configuration with static-nodes.json

Sync your node using static-nodes

Uncomment in the configuration file the following line :

Create a static-nodes.json file with the following content :

Start Node

Run as a Service

Simple service

Create a service file for each node in /etc/systemd/system/.

Reload the systemd daemon:

Start and enable the service:

Verify the status service:

If the ports are already used on the local machine.

Check:

Stop them if you can:

And restart the service:

Confirm the node is running

We can call the JSON-RPC API methods to confirm the node is running. eth_syncing return the synchronization status : returns the starting, current, and highest block, or false if not synchronizing (or if the head of the chain has been reached).

Last updated