Skip to content
You are reading Hyperledger Besu development version documentation and some displayed features may not be available in the stable release. You can switch to stable version using the version box at screen bottom.
Date of last update: November 1, 2022

Connect to Mainnet

Important

The Merge was executed on September 15, 2022. Ethereum is now a proof of stake network, and a full Ethereum node requires both an execution client and a consensus client.

Run Besu as an execution client with any consensus client on Ethereum Mainnet.

If you’re using Teku as a consensus client, you can follow the Besu and Teku Mainnet tutorial.

Prerequisites

Steps

1. Generate the shared secret

Run the following command:

openssl rand -hex 32 | tr -d "\n" > jwtsecret.hex

You will specify jwtsecret.hex when starting Besu and the consensus client. This is a shared JWT secret the clients use to authenticate each other when using the Engine API.

2. Start Besu

Run the following command or specify the options in a configuration file:

besu \
  --sync-mode=X_SNAP           \
  --data-storage-format=BONSAI \
  --rpc-http-enabled=true      \
  --rpc-http-host=0.0.0.0      \
  --rpc-ws-enabled=true        \
  --rpc-ws-host=0.0.0.0        \
  --host-allowlist=<IP of Besu node>,127.0.0.1,localhost        \
  --engine-host-allowlist=<IP of Besu node>,127.0.0.1,localhost \
  --engine-rpc-enabled        \
  --engine-jwt-secret=<path to jwtsecret.hex>

Specify:

Also, in the command:

You can modify the option values and add other command line options as needed.

Ensure Besu is fully synced before submitting your staking deposit in the next step. This can take several days.

3. Generate validator keys and stake ETH

If you’re running a beacon node only, skip to the next step.

If you’re also running a validator client, have a funded Ethereum address ready (32 ETH and gas fees for each validator).

Generate validator keys and stake your ETH for one or more validators using the Staking Launchpad.

Important

Save the password you use to generate each key pair in a .txt file. You should also have a .json file for each validator key pair.

Ensure your Besu node is fully synced before submitting your staking deposit. This can take several days.

4. Start the consensus client

Refer to your consensus client documentation to configure and start the consensus client.

Important

If you’re running a validator client, make sure you set a fee recipient address.

If you’re using Teku, follow the Besu and Teku Mainnet tutorial.

5. After starting the clients

After starting Besu and the consensus client, your node starts syncing and connecting to peers.

Example

2022-03-21 20:42:09.295-07:00 | EthScheduler-Timer-0 | INFO  | FullSyncTargetManager | No sync target, waiting for peers. Current peers: 0
2022-03-21 20:42:14.298-07:00 | EthScheduler-Timer-0 | INFO  | FullSyncTargetManager | No sync target, waiting for peers. Current peers: 0
2022-03-21 20:42:14.848-07:00 | nioEventLoopGroup-3-8 | INFO  | FullSyncTargetManager | No sync target, waiting for peers. Current peers: 4
2022-03-21 20:42:18.452-07:00 | nioEventLoopGroup-3-8 | INFO  | SyncTargetManager | Found common ancestor with peer Peer 0xab3a286b181721c794... at block 55127
2022-03-21 20:42:18.454-07:00 | nioEventLoopGroup-3-8 | INFO  | PipelineChainDownloader | PipelineChain download complete
2022-03-21 20:43:24.355 INFO  - Syncing     *** Target slot: 76092, Head slot: 2680, Remaining slots: 73412, Connected peers: 8
2022-03-21 20:43:36.363 INFO  - Syncing     *** Target slot: 76093, Head slot: 2879, Remaining slots: 73214, Connected peers: 10
2022-03-21 20:43:48.327 INFO  - Syncing     *** Target slot: 76094, Head slot: 3080, Remaining slots: 73014, Connected peers: 8
2022-03-21 20:44:00.339 INFO  - Syncing     *** Target slot: 76095, Head slot: 3317, Remaining slots: 72778, Connected peers: 6
2022-03-21 20:44:12.353 INFO  - Syncing     *** Target slot: 76096, Head slot: 3519, Remaining slots: 72577, Connected peers: 9

You can check your validator status by searching your Ethereum address on the Beacon Chain explorer. It may take up to multiple days for your validator to be activated and start proposing blocks.

Caution

If you restart your node before snap or checkpoint sync completes, syncing restarts from scratch.