ChainLaunch

Create Besu Nodes

This guide covers creating validator, bootnode, and fullnode instances for your Besu network.

This guide covers creating validator, bootnode, and fullnode instances for your Besu network.

Prerequisites

Node Types

Type Purpose Consensus Stores state
Validator Creates and validates blocks Yes Yes
Bootnode Peer discovery entry point No No
Fullnode Syncs chain, serves RPC queries No Yes

Create Nodes via UI

  1. Go to Nodes in the left sidebar
  2. Click Besu Node
  3. Fill in the configuration:
Field Description Example
Name Unique node name validator-0
Network Select your Besu network my-besu-network
Node Type Validator, Bootnode, or Fullnode Validator
P2P Port Peer-to-peer communication 30303
RPC HTTP Port JSON-RPC endpoint 8545
RPC WebSocket Port WebSocket endpoint 8546
Metrics Port Prometheus metrics 9545
  1. Click Create Node

The node starts automatically and connects to the network.

Create Nodes via CLI

# Create a Besu testnet with 4 validators in one command
chainlaunch testnet besu --name my-besu --nodes 4 --mode docker
 
# Individual node creation is done through the API (see below)

Create Nodes via CLI

Validator Node

chainlaunch besu create \
  --name validator-0 \
  --network-id 1 \
  --p2p-port 30303 \
  --rpc-port 8545 \
  --key-id 1

Bootnode

chainlaunch besu create \
  --name bootnode-0 \
  --network-id 1 \
  --p2p-port 30303 \
  --key-id 2 \
  --boot-nodes ""

Node Lifecycle

Start / Stop / Restart / Logs / Status

# Start / stop / restart (slug or numeric ID)
chainlaunch nodes start validator-0
chainlaunch nodes stop validator-0
chainlaunch nodes restart validator-0
 
# Logs (last 100 lines)
chainlaunch nodes logs validator-0 --tail 100
 
# Status
chainlaunch nodes get validator-0 | jq '.status'

Connecting to a Node

Once a validator or fullnode is running, connect to it via JSON-RPC:

# Get latest block number
curl -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
 
# Get peer count
curl -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}'
 
# Get sync status
curl -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}'

Resource Planning

Node Type CPU Memory Disk
Validator 2 cores 4 GB 20 GB+
Bootnode 1 core 1 GB 5 GB
Fullnode 2 cores 4 GB 50 GB+

Tip

For QBFT/IBFT consensus, you need at least 4 validators to tolerate 1 Byzantine fault (3f + 1 where f is the number of faulty nodes).

Next Steps