2021 Q3 Hyperledger Fabric

Created by David Enyeart, last modified by Gari Singh on Oct 16, 2021

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

Project Health

Hyperledger Fabric continues to mature, as evidenced by the following observations throughout this report:

  • LTS release available
  • Project developers have been spending a larger percentage of time on maintenance and support than in the past, given the increasing number of production deployments and LTS releases.
  • Lower commit velocity on new features in core Fabric, more activity around extensions in Hyperledger labs
  • Healthy RFC process with reviews in contributor meetings to drive consensus on new features.

The commit rate and mailing list activity were down compared to the same period last year. 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 repolinter.json in all your repos ? Not yet

Questions/Issues for the TSC

None

Releases

v2.2 is the current LTS releases with patch releases quarterly. v1.4 LTS went end of support in April 2021. Production users are encouraged to use v2.2, users who want to try new features are encouraged to use v2.3 and v2.4.0-alpha and provide feedback.

Releases past quarter:

  • v1.4.12 - April 23, 2021
  • v2.2.3 - April 23, 2021
  • v2.3.2 - April 23, 2021
  • v2.4.0-alpha - April 15, 2021

Upcoming releases planned this quarter:

  • v2.2.4
  • v2.3.3
  • v2.4.0-beta

v2.3 added two major features which are seeing encouraging adoption in the community:

  • Ledger snapshot enables a peer to take a snapshot of its state. This allows new peers to join a channel from an agreed upon snapshot, reducing the time to join a channel and the storage size required to maintain a ledger. In the future it will also be possible to prune/archive old blocks to bring the same benefit to existing peers.
  • The channel participation management feature improves the privacy and scalability of the ordering service since a global ‘system channel’ will no longer be needed for the creation and management of channels.

Overall Activity in the Past Quarter

The project was busy maintaining the releases and preparing for a v2.4.0-beta release with the new Fabric Gateway (details below).

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

RFCs merged this quarter:

  • Orderer ledger snapshots

RFCs in review this quarter:

  • WASM for smart contracts
  • BFT ordering service
  • Modular crypto service
  • OpenTelemetry

There has also been a significant amount of Fabric activity in Hyperledger Labs, a few highlights:

Current Plans

The largest item being worked in 2021 is the Fabric Gateway, a new component that will implement much of the high-level ‘gateway’ programming model. This 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. 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 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 expected to be function complete for a Q3 v2.4.0-beta release.

Other work items in plan or in progress:

  • A feature to purge private data stores, which will help solutions meet GDPR requirements. An RFC is expected so that we can gather additional feedback from the community.
  • A feature to unjoin a peer from a channel.
  • A more realistic Node.js SDK sample application demonstrating good practices (connection management, error handling, timeouts, retries, etc)
  • Guidance for kubernetes deployments

Additional discussion of Fabric roadmap can be found in this contributor meeting recording .

Maintainer Diversity

Two maintainers retired this quarter. 5 of 10 maintainers are from IBM.

Contributor Diversity

Year to year comparison, by commit:

  • Q2 2020 - 1140 commits. 67% from IBM.
  • Q2 2021 - 396 commits. 54% from IBM

Year to year comparison, by contributor:

  • Q2 2020 - 96 contributors. 38% from IBM.
  • Q2 2021 - 77 contributors. 22% from IBM.

Additional Information

Link to the Fabric dashboard: Q2 2021

Reviewed By

Comments:

One thing to pay attention to is the node sdk's docs and sample codes.

Currently, in the official doc website of  https://hyperledger.github.io/fabric-sdk-node , we can not find a single sample code to run directly.

There're tutorials on some functionalities (e.g.,  https://hyperledger.github.io/fabric-sdk-node/release-2.2/tutorial-commonconnectionprofile.html ), however, all given code is snippet, and cannot run end-to-end (e.g., reading local credential, and send request to the network). This will affect the user experience heavily.

Besides, the issue list of the node sdk's github repo is disabled, hence no one can report any issue there.

Posted by baohua at Jul 28, 2021 16:36

Thanks Baohua Yang , the https://hyperledger.github.io/fabric-sdk-node page has a Samples section at the bottom that links to the fabric-samples repository where the client samples can be found. It sounds like you didn't see this, so please let us know how we can make this link more clear.

BTW, Fabric is investigating shifting from Jira to GitHub for issue reporting. We have enabled GitHub issues on Fabric repository as a trial and will likely roll this out to all repositories and socialize on the mailing list.

Posted by denyeart at Jul 29, 2021 14:29

I did check the fabric-samples repo too. There're several code using sdk-node. I would say it's a little too complicated as a sample.

IMHO, it will be better provide a single and simple sample as a basic tutorial.

Using github issues is fine, let's enable it soon.

Thanks!

Posted by baohua at Jul 29, 2021 17:27

Ok, I've opened a PR against fabric-sdk-node to update the samples doc reference to be Asset Transfer in fabric-samples - https://github.com/hyperledger/fabric-samples/#asset-transfer-samples-and-tutorials

If you look at those samples, you'll see there are beginner samples starting with Basic asset transfer that has a corresponding tutorial that is meant as the single and simple starting point for newbies - https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html

The Fabric docs also point to this as the starting point.

Posted by denyeart at Jul 30, 2021 22:41