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.
Last update: February 4, 2022

Node types

Besu supports two node types, commonly referred to as full nodes and archive nodes.

Full nodes have the current state of the blockchain so cannot serve the network with all data requests (for example, the balance of an account at an old block). Full nodes can guarantee the latest state for the blockchain (and some older states, but not all). You can check current balances, sign and send transactions, and look at current dapp data.

Archive nodes have all of this and they also store the intermediary state of every account and contract for every block since the genesis block. An archive node can do everything a full node does, and it can access historical state data.

For Besu on Mainnet, archive nodes require significantly more disk space (approximately 3TB) than full nodes (approximately 750GB).

Note

Besu running on other public testnets, such as Ropsten, and other Ethereum clients have different disk space requirements.

Run a full node

To run a full node, enable fast synchronization using --sync-mode=FAST.

Fast synchronization downloads the block headers and transaction receipts, and verifies the chain of block headers from the genesis block.

When starting fast synchronization, Besu first downloads the world state for a recent block verified by its peers (referred to as a pivot block), and then begins fast synchronization from the genesis block.

Important

Fast synchronization is the default for named networks specified using the --network option, except for the dev development network. It’s also the default if connecting to Ethereum Mainnet by not specifying the --network and --genesis-file options.

Note

When fast synchronizing, block numbers increase until close to the head block, then the process pauses while the world state download completes. This may take a significant amount of time depending on world state size, during which the current head block doesn’t increase. For example, Mainnet may take several days or more to fast synchronize. Fast synchronization time may increase because Besu picks new pivot blocks, or because peers prune the world state before it completes downloading.

Tip

You can observe the besu_synchronizer_fast_sync_* and besu_synchronizer_world_state_* metrics to monitor fast synchronization.

Run an archive node

To run an archive node, enable full synchronization using --sync-mode=FULL.

Full synchronization starts from the genesis block and reprocesses all transactions.

Questions or feedback? You can discuss issues and obtain free support on Hyperledger Besu chat channel.
For Hyperledger Besu community support, contact the mailing list besu@lists.hyperledger.org