Contributor Meetings 2024
January 17, 2024 (recording)
Fabric v3.0 work items
RFC to extend queryapproved function for all chaincodes - Completed (thank you Tatsuya Sato)
Finalize SmartBFT for eventual production GA release
Byzantine block puller for the peer (merged) and the orderer (in progress) - Yoav
Improved transaction pool for SmartBFT - Hagar
Unit test coverage for SmartBFT chain - Emil
Integration test coverage for SmartBFT orderer - May, Arkadi
Migration from Raft to SmartBFT - Yacov, May, Yoav
Inversion of control - one binary per consensus algorithm - Deferred from v3.0
Removal of old lifecycle - Artem
Removal of gossiping of blocks (likely deferred)
CI - Azure Pipelines migration to GitHub Actions
Complete for most fabric repositories
Subset of fabric-test tests moved to GitHub actions (HSM test)
Retire SDK and Chaincode interop tests in fabric-test in favor of scheduled testing in SDK and Chaincode repositories (test against Fabric v2.5 and v3.0?)
Switch fabric development docker images from jfrog artifactory to github package registry
Admin sdk
3.0 bft preview supported
Create feature branch for CLI use of admin SDK - Dave
February 21, 2024 (recording)
Recent Fabric releases
Fabric v2.2.15, v2.5.6, CA v1.5.9
Dependency updates
Remove dependency between Fabric CA and Fabric (common code pushed down to fabric-lib-go)
Fabric v3.0 work items
Finalize SmartBFT for eventual production GA release
Byzantine block puller for the peer (merged) and the orderer (in progress) - Yoav
Improved transaction pool for SmartBFT - defer based on performance trial
Unit test coverage for SmartBFT chain - in progress - Emil
Integration test coverage for SmartBFT orderer - in progress - May, Arkadi
Migration from Raft to SmartBFT - done
March 20, 2024 (recording)
- Fabric v3.0.0-beta (announcement) - March 14
- Logo update (charts)
- Remaining items for production v3.0 release
Already removed features
system channel
solo ordering
kafka ordering
Need to finish
Finish SmartBFT tests, SmartBFT library moved to hyperledger-labs already
Finish v1 chaincode lifecycle removal - keep external APIs but just return an error message - Artem finishing it out
Deprecated features in v2 that could potentially be removed in v3
Specifying orderer endpoints at the global level in channel configuration (instead, utilize v2 'OrdererEndpoints' in org config) - let's remove it, Yacov will find someone
configtxgen flag
--outputAnchorPeersUpdateflag (instead, utilize channel config updates) - let's remove it, Tatsuya will take itfabric-tools image (instead, utilize client connection to network), note fabric-tools still used by fabric-samples as a convenience for jq commands - Sam will assess
Block dissemination via gossip (instead, configure all peers as org leaders to receive blocks from ordering service). Minimally, let's set blockGossipEnabled default to false.
#3663 Fabric v3 epic misc items
#3306 new channel config for CouchDB max_document_size, use during validation to prevent transactions too large to persist, along with application capability - Dave will assess
#3650 fabric-protos Go bindings based on protocol buffer APIv2 (v1 protobuf is deprecated) - potential deferral
#3704 older v3 ideas from Jira - e.g. Remove support for remaining Go plugins (endorsement and validation plugins) - potential deferral
#3343 ed25519 support
Identity Mixer replacement proposal from Ale
Update Idemix to use the aries-provided, standard-draft-compatible implementation as opposed to the legacy implementation used in Fabric v2. Fabric v2 would still uses the legacy implementation of idemix, which is still available. For v3 switch fabric to use the new implementation. The change will not be backward-compatible so existing networks that use the legacy fabric implementation will need to remain on Fabric v2.
The new idemix implementation would no longer be supported by fabric-ca. Idemixgen would be the default issuance tool. Users could build customised issuing services using idemixgen as a library.
April 17, 2024 (recording)
Recent Fabric releases
Fabric v2.5.7, CA v1.5.10
Dependency updates
Note that v2.2 is no longer being maintained, users are encouraged to upgrade to v2.5 LTS release
Fabric v3
See prior meeting for notes on remaining items.
Progress has been made on removing --outputAnchorPeersUpdate flag, removing global orderer endpoints, and removing fabric-tools image.
Still need to complete:
SmartBFT final tests
v1 lifecycle removal
channel config for CouchDB max_document_size
Identity Mixer update - current thinking is to defer any changes from v3.
Chaincode builders/launchers and k8s builder - James Taylor
fabric-admin-sdk - Sam Yuan
May 15, 2024 (recording)
- Remaining items for production v3.0 release
Previously deprecated features that have already been removed in v3 main branch
system channel
solo ordering (instead, utilize single node Raft)
kafka ordering (instead, utilize Raft)
configtxgen flag
--outputAnchorPeersUpdateflag (instead, utilize channel config updates)fabric-tools image (instead, utilize client connections into Fabric networks)
Need to finish
Finish SmartBFT
Finish tests
Fix frequent test failures in SmartBFT unit tests and integration test
Allow the peer delivery client to select between Deliverer or BFTDeliverer - PR #4856
Finish v1 chaincode lifecycle removal - keep external APIs but just return an error message - Tatsuya can help Artem
Remove ability to specify orderer endpoints in channel configuration at global level 'Orderer.Addresses' as deprecated in v2 (instead, utilize v2 'OrdererEndpoints' in org config) - PR #4800
Change peer property blockGossipEnabled default to false - Block dissemination via gossip already deprecated in v2 (recommendation is to configure all peers as org leaders to receive blocks from ordering service).
#3663 Fabric v3 epic misc items
#3306 new channel config MaxWriteSize, prevents large writes that potentially exceeds CouchDB max_document_size
#3343 ed25519 support
#3650 fabric-protos Go bindings based on protocol buffer APIv2 (v1 protobuf is deprecated) - potential deferral
#3704 older v3 ideas from Jira - e.g. Remove support for remaining Go plugins (endorsement and validation plugins) - potential deferral
June 19, 2024 (recording)
- Recent Fabric releases
Fabric v2.5.9, CA v1.5.12 - June 18
Dependency updates
- Remaining items for production v3.0 release
Previously deprecated features that have already been removed in v3 main branch
system channel
solo ordering (instead, utilize single node Raft)
kafka ordering (instead, utilize Raft)
Remove ability to specify orderer endpoints in channel configuration at global level 'Orderer.Addresses' as deprecated in v2 (instead, utilize v2 'OrdererEndpoints' in org config, enforced when channel capability at V3_0 )
configtxgen flag
--outputAnchorPeersUpdateflag (instead, utilize channel config updates)fabric-tools image (instead, utilize client connections into Fabric networks)
Need to finish
Finish SmartBFT
Finish tests
Fix frequent test failures in SmartBFT unit tests and integration test
Finish v1 chaincode lifecycle removal - keep external APIs but just return an error message - Tatsuya can help Artem
Legacy lifecycle has been removed from integration test and peer cli, meaning no one could use it.
Updated tests and removed logic that relied on legacy LCC.
What is still to be done?
Need to remove the initialization of the LSCC code as a chaincode (in progress)
Need to ensure peers won't crash in case we get connected to the legacy system, meaning the system is probably being upgraded. We need to ensure newly joined peers won't crash on instantiate transactions; the validation part should still be aware of these updates.
The last thing is mostly cosmetics to refactor the code to move or fuse legacy validation logic with new _lifecycle.
Ensure all documentation is updated
Change peer property blockGossipEnabled default to false - Block dissemination via gossip already deprecated in v2 (recommendation is to configure all peers as org leaders to receive blocks from ordering service) - https://github.com/hyperledger/fabric/pull/4911
#3663 Fabric v3 epic misc items
July 17, 2024 (recording)
Release update
Remaining v3 release work item - finish v1 chaincode lifecycle removal (see June update above for details)
Creating a project charter for Fabric - Sean Bohan (Linux Foundation)
The goal of having project charters is to follow open source best practices and to make the governance of Hyperledger projects more clear, transparent, and easily discoverable
Please review by July 31 and make any edits if needed on the doc in suggestion mode so we can see what changes you are proposing
If you have any questions about this, let us know and we can help
v2 Go chaincode API (using v2 protocol buffers) - Mark Lewis
August 21, 2024 (recording)
v3 release preparation
remove v1 capabilities? No...see https://github.com/hyperledger/fabric/pull/4954
blog post
documentation
Fabric project charter
September 18, 2024 (recording)
v3.0.0 release
release candidate - https://github.com/hyperledger/fabric/releases/tag/v3.0.0-rc1
upgrade documentation - https://hyperledger-fabric.readthedocs.io/en/latest/upgrade.html
recent updates
ubuntu 20.04 → 22.04
utilize fabric-protos-go-apiv2 protocol buffer bindings (using new protocol buffers API, wire compatible with v2.5.x nodes)
continue to utilize existing node chaincode and java chaincode images with fabric v3.0 (fabric-nodeenv:2.5 and fabric-javaenv:2.5)
November 20, 2024 (recording)
Fabric v3.0.0 released September 20th - Feedback welcome on SmartBFT ordering feature
Fabric v2.5.10 released September 20th - Current LTS release
Call for contributors and maintainers
December 18, 2024 - Cancelled