Key Characteristics
What is Hyperledger Besu?
Hyperledger 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, Sepolia and Görli. Hyperledger Besu includes several consensus algorithms including PoS, PoW, PoA, and IBFT, and has comprehensive permissioning schemes designed specifically for uses in a consortium environment.
What are Hyperledger Besu’s Features?
Hyperledger 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: Hyperledger 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: Hyperledger 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.
- Proof of Work (Ethash): Proof of Work is used for mining activities on Ethereum Classic.
- Storage: Hyperledger 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: Hyperledger Besu implements Ethereum’s devp2p network protocols for inter-client communication and an additional sub-protocol for IBFT2:
- Discovery: A UDP-based protocol for finding peers on the network
- RLPx: A TCP-based protocol for communication between peers via various “sub-protocols”:
- ETH Sub-protocol (Ethereum Wire Protocol): Used to synchronize blockchain state across the network and propagate new transactions.
- IBF Sub-protocol: Used by IBFT2 consensus protocol to facilitate consensus decisions.
- User-facing APIs: Hyperledger Besu provides mainnet Ethereum and EEA JSON-RPC APIs over HTTP and WebSocket protocols as well as a GraphQL API.
- JSON-RPC
- HTTP JSON-RPC Service
- WebSocket JSON-RPC Service
- GraphQL
- Monitoring: Hyperledger Besu allows you to monitor node and network performance.
- Node performance is monitored using Prometheus or the debug_metrics JSON-RPC API method. It can be visually monitored through Grafana.
- Network Performance is monitored with Grafana or the Quorum Explorer (part of the Developer Quickstart).
- Privacy: Privacy in Hyperledger Besu refers to the ability to keep transactions private between the involved parties. Other parties cannot access the transaction content, sending party, or list of participating parties. Besu uses a Private Transaction Manager to implement privacy.
- Permissioning: A permissioned network allows only specified nodes and accounts to participate by enabling node permissioning and/or account permissioning on the network.
Hyperledger Besu implements the Enterprise Ethereum Alliance (EEA) specification. The EEA specification was established to create common interfaces amongst the various open and closed source projects within Ethereum, to ensure users do not have vendor lock-in, and to create standard interfaces for teams building applications. Besu implements enterprise features in alignment with the EEA client specification.
Documentation
Documentation on Hyperledger Besu can be found here: https://besu.hyperledger.org/
Repositories
https://github.com/hyperledger/besu/
https://github.com/hyperledger/besu-docs
Get Started
Public Ethereum: Connect to a testnet
Private networks: Developer Quickstart
Want to contribute?
Have Java skills and/or a knack for Ethereum development? Reach out to us in our Discord! The #besu-contributors channel is a great way to speak with devs and find some good first issues!
More info at this page - Start Here
Check out the "good first issue" label on our Github!
Communication
Mailing List
Chat (for questions and ephemeral discussions)
Hyperledger uses Discord for chat channel discussions.
- Go to https://discord.com/invite/hyperledger
- Click Accept Invite!
- You’re In! Find the Besu team at #besu and #besu-contributors
Meeting
- Suspend APAC Contributor Call
- Notes
- 2020 Notes
- 2020-10-27 Office Hours Notes
- 2020-09-29 Besu Contributor Call Notes
- 2020-09-15 Contributor Call Notes
- 2020-09-01 Besu Contributor Call Notes
- 2020-08-18 Besu Contrubutor Call Notes
- 2020-08-04 Contributor Call Nodes
- 2020-07-21 Contributor Call Notes
- 2020-07-07 Contributor Call Notes
- 2020-06-23 Contributor Call Notes
- 2020-06-09 Contributor Call Notes
- 2020-05-26 Contributor Call Notes
- 2020-05-12 Contributor Call Notes
- 2020-04-28 Contributor Call Notes
- 2020-04-14 Contributor Call
- 2020-03-17 Contributor Call Notes
- 2020-02-18 Besu Contributor Call Notes
- 2020-02-04 Besu Contributor Call Notes
- 2020-01-21 Contributor Call
- 2020-01-07 Contributor Call
- 2022-1-31 Contributor Call notes
- 2021-01-19 Office Hours Notes
- 2019 Notes
- 2020 Notes
- Agendas
- 2024 Agendas
- 2024-07-09 Contributor Call
- 2024-06-11 Contributor Call - US/EMEA
- 2024-04-16 Contributor Call - US/EMEA Friendly Time
- 2024-03-26 Contributor Call - APAC Friendly Time
- 2024-03-19 Contributor Call - US/EMEA Friendly Time
- 2024-02-27 Contributor Call - APAC Friendly Time
- 2024-02-20 Contributor Call - US/EMEA Friendly Time
- 2024-01-30 Contributor Call - APAC Friendly Time
- 2024-01-23 Contributor Call - AMEA Friendly Time
- 2024-01-02 Contributor Call - APAC Friendly Time - CANCELLED
- 2023 Agendas
- 2023-12-05 Contributor Call - APAC Friendly Time
- 2023-11-28 Contributor Call
- 2023-11-07 Contributor Call - APAC Friendly Time
- 2023-10-31 Contributor Call
- 2023-10-10 Contributor Call - APAC Friendly Time
- 2023-10-02 Contributor Call - AMEA Friendly Time
- 2023-09-12 Contributor Call - APAC Friendly Time
- 2023-09-05 Contributor Call - EMEA Friendly Time
- 2023-08-15 Contributor Call - APAC Friendly Time
- 2023-08-01 Contributor Call
- 2023-07-18 Contributor Call - APAC Friendly Time - CANCELLED
- 2023-07-11 Contributor Call
- 2023-06-20 Contributor Call - APAC Friendly Time
- 2023-06-06 Contributor Call
- 2023-05-23 Contributor Call - APAC Friendly Time
- 2023-05-09 Contributor Call
- 2023-04-11 Contributor Call
- 2023-04-25 Contributor Call - APAC Friendly Time - CANCELLED
- 2023-03-28 Contributor Call - APAC Friendly Time
- 2023-03-14 Contributor Call
- 2023-02-28 Contributor Call - APAC Friendly Time
- 2023-02-14 Contributor Call
- 2023-01-31 Contributor Call - AMEA Reschedule
- 2023-01-31 Contributor Call - APAC Friendly Time
- 2023-01-17 Contributor Call
- 2023-01-03 Contributor Call - APAC Friendly Time
- 2022 Agendas
- 2022-12-20 Contributor Call
- 2022-12-06 Contributor Call - APAC Friendly Time
- 2022-11-22 Contributor Call
- 2022-11-08 Contributor Call - APAC Friendly Time
- 2022-10-25 Contributor Call
- 2022-10-11 Contributor Call - APAC Friendly Time
- 2022-09-27 Contributor Call
- 2022-09-13 Contributor Call - APAC
- 2022-08-30 Contributor Call
- 2022-08-16 Contributor Call - APAC Friendly Time
- 2022-08-02 Contributor Call
- 2022-07-19 Contributor Call - APAC Friendly Time
- 2022-07-05 Contributor Call
- 2022-06-21 Contributor Call - APAC Friendly Time
- 2022-05-24 Contributor Call
- 2022-06-07 Contributor Call
- 2022-05-10 Contributor Call
- 2022-04-26 Contributor Call
- 2022-03-29 Contributor Call
- 2022-04-12 Contributor Call
- 2022-03-15 Contributor Call
- 2022-03-01 Contributor Call
- 2022-02-15 Contributor Call
- 2022-01-31 Besu Contributor Call
- 2022-01-20 Besu Contributor Call
- 2022-01-11 Besu Contributor Call - Off-Cycle
- 2022-01-04 Besu Contributor Call
- 2021 Agendas
- 2021-12-30 Besu Contributor Call (off cycle)
- 2021-12-07 Besu Contributor Call
- 2021-12-21 Besu Contributor Call
- 2021-11-09 Besu Contributor Call
- 2021-11-23 Besu Contributor Call
- 2021-10-11 Besu Contributor Call
- 2021-10-26 Besu Contributor Call
- 2021-09-28 Besu Contributor Call
- 2021-09-13 Besu Contributor Call
- 2021-08-31 Besu Contributor Call
- 2021-08-16 Besu Contributor Call
- 2021-08-03 Besu Contributor Call
- 2021-07-19 Besu Contributor Call
- 2021-07-06 Besu Contributor Call
- 2021-06-21 Besu Contributor Call
- 2021-06-08 Besu Contributor Call
- 2021-05-24 Besu Contributor Call
- 2021-05-11 Besu Office Hours
- 2021-04-26 Besu Office Hours
- 2021-04-13 Besu Contributor Call
- 2021-03-30 Besu Office Hours
- 2021-03-16 Besu Office Hours
- 2021-03-02 Besu Contributor Call
- 2021-02-16 Office Hours
- 2021-02-02 Office Hours
- 2021-01-19 Office Hours
- 2020 Agendas
- 2020-11-24 Office Hours
- 2020-10-27 Office Hours
- 2020-10-13 Hyperledger Besu Contributor Call
- 2020-09-29 Besu Contributor Call
- 2020-09-15 Contributor Call
- 2020-09-01 Contributor Call
- 2020-08-18 Contributor Call Agenda
- 2020-08-04 Contributor Call Agenda
- 2020-07-21 Contributor Call Agenda
- 2020-07-07 Contributor Call
- 2020-06-23 Besu Contributor Call Agenda
- 2020-06-09 Besu Contributor Call Agenda
- 2020-05-26 Contributor Call
- 2020-05-12 Contributor Call
- 2020-04-28 Contributor call
- 2020-04-14 Besu Contributor Call
- 2020-03-31 Besu Contributor Call
- 2020-03-17 Besu Contributor Call
- 2020-02-18 Besu Contributor Call
- 2020-02-04 Besu Contributor Call
- 2020-01-21 Besu Contributor Call
- 2020-01-07 Besu Contributor Call
- 2019 Agendas
- 2024 Agendas
History
Recent space activity