Besu

Overview

Hyperledger Besu is an open-source Ethereum client designed for demanding enterprise applications requiring secure, high-performance transaction processing in a private network. It's developed under the Apache 2.0 license and written in Java.

1. Initial configuration

Create a service user for the execution service, create data directory and assign ownership.

sudo adduser --system --no-create-home --group execution
sudo mkdir -p /var/lib/besu
sudo chown -R execution:execution /var/lib/besu

Install dependencies.

sudo apt install -y openjdk-21-jdk libjemalloc-dev jq

2. Install Binaries

  • Downloading binaries is often faster and more convenient.

  • Building from source code can offer better compatibility and is more aligned with the spirit of FOSS (free open source software).

Option 1 - Download binaries

Run the following to automatically download the latest linux release, un-tar and cleanup.

Install the binaries.

Option 2 - Build from source code

Build the binaries.

Verify Besu was properly built by checking the version.

Sample output of a compatible version.

Install the binaries.

3. Setup and configure systemd

Create a systemd unit file to define your execution.service configuration.

Paste the following configuration into the file.

Running less than 32GB of RAM? Deleting the flag, --Xplugin-rocksdb-high-spec-enabled is advisable.

To exit and save, press Ctrl + X, then Y, then Enter.

Run the following to enable auto-start at boot time.

Finally, start your execution layer client and check it's status.

Press Ctrl + C to exit the status.

4. Helpful execution client commands

A properly functioning Besu execution client will indicate "Fork-Choice-Updates". For example,

Now that your execution client is configured and started, proceed to the next step on setting up your consensus client.

Last updated