BESU
Project
Hyperledger Besu
Current Plans
- Migration to Java 17
In the 22.7.x cycle Besu will move to Java 17 as the required JVM. - Paris Upgrade
Paris will ship when it's ready, but final preparations are at hand. - Shanghai Fork
The first fork after The Merge is expected to add some long overdue EVM improvements, such as the Ethereum Object Format. - Developer experience
Planning to add a work stream to specifically focus on developer experience, allowing prioritization of issues alongside feature work.
Current Plans
- "The Merge"
Ethereum Mainnet expects to merge the current mainnet chain into the Beacon chain in an event called "Docking" or "The Merge." This is expected to occur in the first half of 2022. Principal work is mostly done and is expected to finish in Q1. - Shanghai Fork
The first fork after The Merge is expected to add some long overdue EVM improvements, such as the Ethereum Object Format. - Developer experience
Planning to add a workstream to specifically focus on developer experience, allowing prioritization of issues alongside feature work. - Tracing APIs
Q3
Project Health
Hyperledger Besu remains a strong project with a growing community network of contributors. This quarter the team has focused on Ethereum protocol improvements, including EIP-1559, which went live on August 5th, as well as many performance improvements, included in the Hyperledger Besu 21.10.0 Release, which will be launched on October 26th.
Required Information
- Have you switched from master to main in all your repos? Yes, this is complete.
- Have you implemented the Common Repository Structure in all your repos? Yes, via GitHub actions
Questions/Issues for the TSC
None, at this time. DCO sign off remains a challenge, but we are aware that this request is being considered by Linux Foundation's Legal team.
Releases
Hyperledger Besu has completed five releases. We are currently preparing for the 21.10.0 Quarterly Release.
- 21.7.0 RC 1 - 2021 Jun 15
- 21.7.0 RC 2 - 2021 June 22
- 21.7.0 (full release) - 2021 Jul 6
- 21.7.1 - 2021 Jul 14
- 21.7.2 - 2021 Aug 4
- 21.7.3 - 2021 Sep 2
- 21.7.4 - 2021 Sep 16
Functional improvements included in these releases:
London Hard Fork - Launched on August 5th
The team has been preparing Hyperledger Besu to be compatible with the next Ethereum hard fork, London. The London Hard Fork included:
- EIP-1559: Fee market change for ETH 1.0 chain
- EIP-3198: BASEFEE opcode
- EIP-3529: Reduction in refunds
- EIP-3541: Reject new contracts starting with the 0xEF byte
- EIP-3554: Difficulty Bomb Delay to December 1st 2021
EthStats Support
Previously, we launched EthStats support as an experimental feature. We are pleased to share that it is now a stable feature generally available for use within Hyperledger Besu. EthStats provides insight into network health by displaying real time and historical statistics about the network and nodes on public mainnets, testnets and permissioned networks.
QBFT: The New Byzantine Fault Tolerant Consensus Algorithm
The team has released QBFT, a Byzantine Fault Tolerant consensus algorithm, building on the capabilities of IBFT and IBFT 2.0. In addition to the benefits of earlier BFT consensus mechanisms, such as stability and reliability, QBFT aims to provide performance improvements in cases of excess round change. QBFT is interoperable between the GoQuorum Ethereum client and Hyperledger Besu and supports networks with both GoQuorum and Hyperledger Besu nodes.
Overall Activity in the Past Quarter
Many of the maintainers have been focusing on continuing mainnet compatibility work and adding cross-client support for GoQuorum within the Besu codebase. Specifically, the team was dedicated towards the London Hard Fork. Significant contributions have come from Hedera Hashgraph, who are working on integrating the Besu EVM into future releases of Hedera's network. Hedera's focus is on performance and utility.
Current Plans
- 21.10.0 Release: The project team remains currently working towards its 21.10.0 Release, scheduled for October 2021. The 21.10.0 Release is expected to include the following features:
- Performance improvements to prepare for the Merge
- Optimistic Besu: The team will be exploring different options for supporting use of the Besu EVM for Optimistic Rollups
- Permissioning features will be extended to include more granular account permissioning for different transaction and interaction types.
- EVM Library: the core EVM component will be separated as a stand alone library, suitable for use outside of an integrated mainnet client.
- Eth 1 to Eth 2 Merge: Some of the Besu team is participating in a Eth1 and Eth2 contributor meet-up the week of October 2nd to discuss in detail the plans for the Eth 1 to Eth2 Merge, which moves Ethereum from Proof of Work to Proof of Stake. We anticipate this body of work to take up a significant amount of the team's time in the coming months.
- Grace Hopper Open Source Day: The Besu project is participating in the Grace Hopper Open Source Day and we are excited to share our project with new joiners there.
- Community Engagement: Similar previous quarters, Besu is also continuing to engage with its community and grow the diversity and decentralization of its maintainer and contributor base. We have added about 15 new good first issues so we encourage the community to give them a try.
Maintainer Diversity
There four organizations who are maintainers include:
- ConsenSys Quorum (FKA PegaSys)
- Chainsafe
- Hedera Hashgraph
- Splunk
The maintainers breakdown is:
- 16% non-ConsenSys (4 of 25) - This is a slight improvement from prior quarters.
Q2Current Plans
- The project team remains currently working towards its 21.7.0 Release, scheduled for July of 2021. The 21.7 Release is expected to include the following features:
- London network upgrade
- EIP-1559
- Besu working with Tessera
- Similar to last quarter, Besu is also continuing to engage with its community and grow the diversity and decentralization of its maintainer and contributor base.
Maintainer Diversity
Our maintainer decentralization had a small decrease from the prior quarter.
The three organizations include:
- ConsenSys Quorum (FKA PegaSys)
- Chainsafe
- Splunk
Functional improvements in these releases include:
Berlin Network Upgrade - Released
The team completed work to ensure Hyperledger Besu was compatible with the Ethereum hard fork, Berlin, which occurred on April 15th. The Berlin Network upgrade included several improvements to the Ethereum mainnet, such as the addition of subroutines to the EVM, the introduction of “transaction envelopes”; which make it easier for Ethereum to support several different kinds of transactions, and changes in gas costs to increase the security of the network.
London Hard Fork - Scheduled for July 14th
The team has been preparing Hyperledger Besu to be compatible with the next Ethereum hard fork, London. The London Hard Fork includes:
- EIP-1559: Fee market change for ETH 1.0 chain
- EIP-3198: BASEFEE opcode
- EIP-3529: Reduction in refunds
- EIP-3541: Reject new contracts starting with the 0xEF byte
- EIP-3554: Difficulty Bomb Delay to December 1st 2021
Besu on Tessera
Besu is now compatible with and can be run with Tessera, the Apache 2.0 licensed private transaction manager written in Java. If you have previously used Orion as a privacy transaction manager of choice, it will be deprecated in November 2021. Tessera is a drop in replacement for Orion.
12/9
|
---|
11/17
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 Rinkeby, Ropsten, and Görli. Hyperledger Besu includes several consensus algorithms including 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 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.
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.
- 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 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.
- 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 mainnet Ethereum.
- 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.
- 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.
- Network Performance is monitored with Alethio tools such as Block Explorer and EthStats Network Monitor.
- 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.
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
Communication
Mailing List