2021 Q3 Hyperledger Fabric
Created by David Enyeart, last modified by Gari Singh on Oct 16, 2021
Hyperledger Fabric https://github.com/hyperledger/fabric
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.
- Have you switched from master to main in all your repos ? Yes
- Have you implemented repolinter.json in all your repos ? Not yet
Questions/Issues for the TSC
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.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
There has also been a significant amount of Fabric activity in Hyperledger Labs, a few highlights:
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 .
Two maintainers retired this quarter. 5 of 10 maintainers are from IBM.
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.
Link to the Fabric dashboard: Q2 2021
- ✅ Angelo De Caro
- ✅ Arnaud J Le Hors
- ✅ Arun S M
- ✅ Baohua Yang
- ✅ Bobbi Muscara
- ✅ Danno Ferrin
- ✅ David Enyeart
- ✅ Gari Singh
- 🔲 Grace Hartley
- ✅ Hart Montgomery
- ✅ Maria Teresa Nieto
- ✅ Mark Wagner
- ✅ Nathan George
- ✅ Tracy Kuhrt
- ✅ Troy Ronda
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.
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