Besu
Project | |
Status | |
CII Badge | |
Community | |
Working group | |
Description | Besu is an Ethereum client designed to be enterprise-friendly for both public and private permissioned network use cases, with an extractable EVM implementation. It can also be run on test networks such as Holesky and Sepolia. Besu includes several consensus algorithms including Proof of Stake and Proof of Authority (IBFT 2.0, QBFT, and Clique). Its comprehensive plugin scheme is designed for modularity. |
Key Characteristics
What is Besu?
Besu is an open source Ethereum client developed under the Apache 2.0 license and written in Java. It can be run on the Ethereum public network or on private permissioned networks, as well as test networks such as Holesky and Sepolia. Besu includes several consensus algorithms including PoS, PoA, and IBFT, and has a plugin scheme designed for modularity.
What are Besu’s Features?
Besu’s features include:
The Ethereum Virtual Machine (EVM) : The EVM is the Turing complete virtual machine that allows the deployment and execution of smart contracts via transactions within an Ethereum blockchain. It is used in conjunction with the rest of the Besu client or as a standalone library.
Consensus Algorithms: Besu implements various consensus algorithms which are involved in transaction validation, block validation, and block production (i.e., mining in Proof of Work). They include:
Proof of Stake: Alongside a consensus client, Besu can be used to connect to and participate in Ethereum Mainnet proof-of-stake.
Proof of Authority: Besu implements several Proof of Authority protocols. Proof of Authority consensus protocols are used when participants are known to each other and there is a level of trust between them––in a permissioned consortium network, for example.
QBFT: QBFT is the recommended enterprise-grade consensus protocol for private networks. In QBFT networks, approved accounts, known as validators, validate transactions and blocks. Validators take turns to create the next block. Before inserting the block onto the chain, a super-majority (greater than or equal to ⅔) of validators must first sign the block.
IBFT 2.0: In IBFT 2.0 networks, transactions and blocks are validated by approved accounts, known as validators. Validators take turns creating the next block. Existing validators propose and vote to add or remove validators. IBFT 2.0 has immediate finality. When using IBFT 2.0, there are no forks and all valid blocks are included in the main chain.
Clique: Clique is more fault-tolerant than IBFT 2.0. Clique tolerates up to half of the validators failing. IBFT 2.0 networks require greater than or equal to ⅔ of validators to be operating to create blocks. Clique does not have immediate finality. Implementations using Clique must be aware of forks and chain reorganizations occurring.
(Deprecated) Proof of Work (Ethash): Proof of Work is used for mining activities on Ethereum Classic.
Storage: Besu uses a RocksDB key-value database to persist chain data locally. This data is divided into a few sub-categories:
Blockchain: Blockchain data is composed of block headers that form the “chain” of data that is used to cryptographically verify blockchain state; block bodies that contain the list of ordered transactions included in each block; and transaction receipts that contain metadata related to transaction execution including transaction logs.
World State: Every block header references a world state via a stateRoot hash. The world state is a mapping from addresses to accounts. Externally owned accounts contain an ether balance, while smart contract accounts additionally contain executable code and storage.
Bonsai: Bonsai storage is a novel paradigm for storing Ethereum state, built specifically for keeping Ethereum Mainnet storage requirements low. Bonsai organizes states into a new structure, to provide implicit pruning and low requirements. More details here.
Forest: A traditional trie structure, suitable for private networks and archival nodes.
P2P networking: Besu implement