The Hyperledger Besu community would like to apply request graduation for the project to be moved from incubation to active status. Below outlines an assessment of the requirements of graduating from incubation status to active status and how Hyperledger Besu meets each requirement. From a high-level, we believe we believe the project is ready for active status because:
- Diversity of Community and Contributors: Besu has built an extensive and active community around its project. Some data points around the community include:
- There are 28 22 external contributors outside of the PegaSys team with 111 contributions (as of July 2019). Since Besu's submission and approval to Hyperledger, there have been 21 contributors from the PegaSys team and 8 contributors from outside of the PegaSys team.
- There have been over 100 120 community-raised issues on the project since November 2018, when the project was launched. This demonstrates the engagement and excitement around the project.
- Dozens of companies The project has a diverse maintainer group with 4 organizations being represented. They include, PegaSys (ConsenSys), Chainsafe, Web3Labs, and Machine Consultancy. These teams are major contributors using Besu and providing feedback on the codebase. Additionally, 50+ companies (that we know of) are building blockchain applications have tested out Besu, provided feedback, and demonstrated its usability for their application. There Additionally, there are several organizations that are deeply integrated in our stack, including web3 labs and iobuilders. These teams are major contributors using Besu and providing feedback on the codebase.
- four organizations as maintainers of the project currently.
- Besu has demonstrated success using Hyperledger tools and processes:
- Public / Community Driven Releases: Each release planning is done during bi-weekly contributor call. Additionally, all releases are announced in our contributors’ RocketChat channel.
- Bi-Weekly Contributor Calls: We have had bi-weekly contributor calls to discuss different bodies of work. We are focused on teh
- Public Issue Board: We have all issues published on Jira board (Hyperledger’s), but we have recently switched to GItHub issues (under Hyperledger’s account)
- RocketChat: While we have struggled with adoption of Ethereum community members on RocketChat, we have been operating successfully on RocketChat with public q&a, feedback, release annoucements, and general community engagement.
- Besu is Meant for Production: Several enterprises are building permissioned networks to use Besu in production. It is also a fully compatible client that runs in production in mainnet Ethereum with its 1.0 Release occurring in April 2020.
- The Besu Team Is Already Heavily Involved in the Hyperledger Community: Since being accepted as a project in August 2019, the Besu team has been participating in the following activities:
- Added support for Besu in Caliper (Oct. 20)
- Participated in the CI/CD working group conversations and sharing our project’s research and best practices (Sep .- Oct.)
- Attended the Maintainer summit in Minneapolis (Oct. 8-9)
- Presented a talk at the Hyperledger booth at Sibos (Sep.23-25)
- Submitted several talks for consideration for the Hyperledger Global Forum and participated in planning of agenda (Sep. - Oct.)
- Attended the Hyperledger meet-up at Devcon in Japan (Oct. 9)
- Presented privacy solution at Architecture WG - Privacy Confidentiality track (Sep. 20)
- Continuing to work on Besu’s support of Caliper (ongoing Oct. - March)
- Presented on supply chain SIG (Jan. 23)
- Attended the Hyperledger Global Forum and presented several talks (March 9-12)
- Attended Hyperledger meet-up in Phoenix (March 9)
- Presented at Hyperledger Korea meet-up (Jan. 16)
- Provided proposal on DCO process for Hyperledger
- Approved to be Co-mentor with Mark Wagner on Hyperledger mentorship project to implement OpenShift on Besu (Mar. 19th)
- Published a couple of blogs on Hyperledger’s site:
The assessment against the requirements can be found here:
...
Category | Requirement | Besu Community Response |
Legal | All code has been made available under the Apache License and is free of incompatible dependencies | Complete. |
Project name has been checked for trademark issues | Complete. | |
DCO check | Besu Repo: (lftools) user@dev > ~/Projects/besu > (master) $ git id Run by David Huseby | |
License check | Notes for besu scan 2019-10-24:
Scan report: | |
Community Support | The project must have an active and diverse set of contributing members representing various constituencies | Hyperledger Besu has active community. We have 217 users on RocketChat. There have been 38 non-PegaSys contributors since the projects’ acceptance into Hyperledger in September 2019 with 191 non-PegaSys contributions total. |
The project is not highly dependent on any single contributor (there are at least 3 legally independent committers and there is no single company or entity that is vital to the success of the project) | While PegaSys is the main organization that is contributing to Besu, there are several organizations and contributors contributing to Besu, including web3labs, Chainsafe Labs, and Machine Consultancy. We have maintainers from 4 organizations: PegaSys, Web3Labs, Chainsafe labs, and Machine Consultancy. The ETC Cooperative has also been funding major feature additions, namely Ethereum Classic Support and Keccak256 PoW support. | |
Release plans are developed and executed in public by the community. | The releases of Pantheon and now Besu have been in a public forum available on the GitHub and the Gitter channel, and RocketChat. We also have set up a bi-weekly contributor call in which release activities are discussed. Meeting minutes and agendas are posted publicly on the Besu Wiki. | |
Test | Sufficient test coverage | See below. |
The project must include a comprehensive unit and integration test suite and document its coverage. Additional performance and scale test capability is desirable. | Currently there are comprehensive unit, integration and acceptance tests with Besu. Merges to master are prevented if there are failing tests. Performance and scale testing is under development through a partnership with WhiteBlock. | |
Documentation | Sufficient user documentation | Hyperledger Besu team maintains a robust documentation site here. |
The project must include enough documentation for anyone to test or deploy any of the modules. | Done. See above. | |
Alignment | Requirements fulfillment | Hyperledger Besu team maintains a robust Documentation site that provides details on requirements, use cases, and other expectations for the project. |
The project must document what requirements and use cases it addresses. | Hyperledger Besu team maintains a robust Documentation site that provides details on requirements, use cases, and other expectations for the project. | |
The project must document how it fits within the Hyperledger Architecture | Besu’s architecture can be seen in this blog post. Because it's a mainnet Ethereum client, Besu represents some new considerations and opportunities for the Architecture Working group which require further discussion. | |
Compatibility with other Hyperledger projects | This is a work in progress that we are excited to continue to engage with the community on. Our team attended the maintainer summit Oct. 8-9 to begin exploring these options. | |
Where applicable, the project should be compatible with other active projects. | This is a work in progress that we are excited to continue to engage with the community on. | |
Alignment | Release numbering: the project should use the Hyperledger standard release taxonomy, once that is agreed upon. | Besu uses the appropriate naming taxonomy. |
Project must make a release, even a “developer preview”, before graduation. | The past releases and the respective documentation for Hyperledger Besu can be found here. | |
Infrastructure | Gerrit or Github repo has been created | Done and code has been moved. https://github.com/hyperledger/besu |
Mailing lists have been created and are archived | ||
Other communication means used, such as slack channels, are set up | Done: | |
Project is set up with Continuous Integration | Done | |
All information necessary for someone to join the community and be able to start contributing is duly documented (location of repo, list of maintainers, mailing lists addresses, slack channels if used, etc) following the Hyperledger Project standard practice (CONTRIBUTING.md, MAINTAINERS.txt, SECURITY.md, etc) | We currently have documentation in the current Docs and Wiki site referenced above. | |
CII Badge | A team seeking to graduate from incubation shall have started the CII Badge application and be nearly complete with incomplete badge requirements referenced in their graduation proposal. 100% of the applicable criteria for the CII Badge is a requirement for releasing a 1.0 of the project. That does not mean the project must have 100% of all criteria, just 100% of the applicable criteria. This is to allow for projects such as test harnesses, that have “N/A” answers for questions that don't offer that as an option. | CII Badge was completed. Seen here. |
Other Considerations | Sufficient real world use The project should be used in real applications and not just in demos. Because not all real applications may be discussed publicly, in such cases statements providing as much detail as possible should be made. Sufficient scalability The project must demonstrate sufficient scalability and document its scalability over various dimensions such as:
Minimum test code coverage expected, such as, for example:
| Besu has several real world use cases. There are several that are not public. Here are links to a couple of public real world applications being developed using Hyperledger Besu: There is also notable downstream use of Besu code:
Scalability - PegaSys has performed several monitoring and benchmarking assessments of Besu. PegaSys also has a research & development team fully dedicated to the long-term scalability of Ethereum and Hyperledger Besu. |
...