Hyperledger Fabric https://github.com/hyperledger/fabric

Project Health

Hyperledger Fabric is fairly mature and stable with a Long-term support (LTS) release and incremental new features being added in minor releases. There is less churn and fewer commits than in years past, with continued focus on quality and support. New features get proposed, approved, and implemented based on a community RFC process. Mailing list activity is down compared to prior years. PRs and mailing list questions are generally turned around quickly.

Required Information

  1. Have you switched from master to main in all your repos? Yes
  2. Have you implemented the Common Repository Structure in all your repos? Yes

Questions/Issues for the TSC

None.

Releases

v2.2 is the current LTS releases with patch releases approximately quarterly.

Releases past quarter:

  • v2.2.4 - September 8, 2021
  • v2.3.3 - September 8, 2021
  • v2.4.0 - November 29, 2021
  • v2.4.1 - December 17, 2021

Additionally, SDKs are regularly patched, most notably Java SDK v2.2.11 to update log4j and address the log4j December vulnerability.

Upcoming releases:

  • v2.2.5 - Update to Go 1.17
  • v2.4.2 - Update to Go 1.17
  • v2.5.0 - Expected to be next LTS release


Overall Activity in the Past Quarter

The project delivered v2.4.0 with two significant new features:

  • Fabric Gateway - The Fabric Gateway will remove much of the transaction submission and query logic from the client application and shift it to a common gateway running within the Fabric peer, enabling each of the various client SDKs to be slimmer, more consistent, and require less maintenance. Applications will interact with a trusted peer (e.g. at their organization) and the peer will coordinate endorsements from other peers and submission to the ordering service. It will also simplify the administrative overhead of running a Fabric network because client applications will be able to connect and submit transactions via a single network port at their organization rather than the current situation where ports have to be opened from a client application to multiple peers across potentially multiple organizations. The Fabric Gateway is delivered along with slim SDKs in the https://github.com/hyperledger/fabric-gateway repository.
  • Peer unjoin - The new command "peer node unjoin" enables an administrator to remove (unjoin) a channel from a peer.
    The peer must be stopped when the command is executed so that channel artifacts can be cleaned up.
    The channel's blockchain, state database, and associated entries will be removed from the peer.
    When the peer is restarted it will no longer receive blocks for the channel.

v2.4.1 also added an external builder for 'chaincode as a service' to the fabric-peer docker image that makes deployment to Kubernetes environments simpler.

For more details on v2.4 see the What's New documentation.

Additionally the project has been planning future work through the RFC process.

RFCs merged this quarter:

  • Purge Private Data

Other RFCs are in review with recent discussions surrounding SmartBFT, OpenTelemetry tracing, and module crypto service.

Finally, new project samples have been added to help users get up to speed and deploy Fabric:

Current Plans

Releases

The project is working on a v2.5.0 release with a feature to Purge the history of private data. The feature may help organizations meet GDPR requirements with the ability to delete private data while preserving a hash of the data on the blockchain.

Discussion about a future Fabric v3.0 release was kicked off at the January 5th contributor meeting. The proposal is to refactor some Fabric components so that new features can be more easily added on top, most notably a proposed BFT ordering service. For more details see the recording at Contributor Meetings 2022.

Documentation

We plan to resume the Fabric community documentation meetings and update Fabric documentation in the following areas:

  • Developing Applications with new Gateway SDKs
  • Certificate management (expirations, renewals)

Performance

Update Caliper client for Fabric.

Maintainer Diversity

No changes. 6 of 11 maintainers of core Fabric from IBM.

Contributor Diversity

Year to year comparison, by commit:

  • Q4 2020 - 674 commits. 71% from IBM.
  • Q4 2021 - 361 commits. 80% from IBM

Year to year comparison, by contributor:

  • Q4 2020 - 94 contributors. 38% from IBM.
  • Q4 2021 - 45 contributors. 42% from IBM.

Additional Information

Link to the Fabric dashboard: Q4 2021

Reviewed By

Submission date

$action.dateFormatter.formatGivenString("dd-MMM-yyyy", $content.getCreationDate())


3 Comments

  1. By "We plan to resume the Fabric community documentation meetings and update Fabric documentation in the following areas", are you saying that these would be done via new contributors from the community? If yes, that's an excellent initiative. Given that Fabric being one of the widely looked up projects under the Hyperledger Foundation, you could consider asking the community to write sample applications that makes use of Gateway SDKs. Also completes the feedback circle.

  2. David Enyeart From the RFC https://github.com/hyperledger/fabric-rfcs/blob/main/text/0005-lts-release-strategy.md I see that upon every new LTS release, the previous releases would get deprecated in 9 months. I see in the next quarter a new LTS release (v2.5) is planned. How is this information conveyed to consumers of the project? There could be an opportunity for us to improve how these are handled, not only for Fabric but for other projects too.

  3. Arun S M Apologies, I missed the comments previously...

    In terms of documentation, we have resumed monthly documentation community meetings to discuss doc priorities, solicit volunteers, and coordinate content.

    In terms of samples, the first priority is to ensure we update the showcase samples for Gateway SDKs, that effort is half done and community members can sign up for any of the remaining samples in the GitHub issue that tracks it - https://github.com/hyperledger/fabric-gateway/issues/190 , it is also tagged as a Good First Issue to help people find it.

    In terms of LTS releases, we communicate updates in the Fabric contributor meeting and on the Fabric mailing list.