Skip to content

Releases: hyperledger/fabric

v2.4.6

08 Aug 22:06
Compare
Choose a tag to compare

v2.4.6 Release Notes - August 8, 2022

Fixes

orderer - Fix active nodes metric

Fix active nodes metrics for etcdraft ordering service when a node is evicted.

peer - Handle malformed gateway request

If a gateway client sends a malformed request to a peer it may crash the peer node.
This fix checks for the malformed request and returns an error to the gateway client.

Improvements

Make chaincode-as-a-service (ccaas) builder available in all release distributions

The chaincode-as-a-service (ccaas) builder executables for build, detect, and release are now available in the Fabric release tar at builders/ccaas/bin.

Dependencies

Fabric v2.4.6 has been tested with the following dependencies:

  • Go 1.18.2
  • CouchDB v3.2.2

Fabric docker images on dockerhub utilize Alpine 3.16.

Deprecations (existing)

Ordering service system channel is deprecated

v2.3 introduced the ability to manage an ordering service without a system channel.
Managing an ordering service without a system channel has privacy, scalability,
and operational benefits. The use of a system channel is deprecated and may be removed in a future release.
For information about removal of the system channel, see the Create a channel without system channel documentation.

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node and not gossip blocks by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

  • 8359607 Fix binary package creation
  • c9c60fd Release commit for v2.4.6.
  • 468332c Prevent peer from failure on malformed proposal
  • 7c12fa6 Extra checks for invalid args in gateway api
  • 84e8b3b fix path for make dir CCAAS Builders
  • eb6b172 Add -buildvcs=false for ccaasbuilder (#3556) [ #3315 ]
  • aa2aaa6 CCAAS Builders
  • 0d584c4 Fixed active nodes metrics for etcdraft when a node is evicted. Instead of being frozen we set it to 0 once halt is called. Tests. (#3536)
  • 7e2a6b9 Release commit for v2.4.5 (#3505)
  • 0f18359 Check if inner consensus message is missing
See More
Read more

v2.2.8

08 Aug 20:05
Compare
Choose a tag to compare

v2.2.8 Release Notes - August 8, 2022

Improvements

peer - Ability to override core.yaml chaincode.externalBuilders via environment variable

Since chaincode.externalBuilders is an array, it previously was not possible to set via environment variable override.
It is now possible to override chaincode.externalBuilders using an environment variable
using the format CORE_CHAINCODE_EXTERNALBUILDERS=[{name: x, path: dir1}, {name: y, path: dir2}].

Dependencies

Fabric v2.2.8 has been tested with the following dependencies:

  • Go 1.18.2
  • CouchDB v3.2.2

Fabric docker images on dockerhub utilize Alpine 3.16.

Deprecations (existing)

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

  • 5b59831 Release commit for v2.2.8
  • 5f30d58 marshal ExternalBuilders into yaml and use as strings in tests. Cover cases when value is a string(from env var) or a map(generic structure after unmarshal)
  • cdc9051 Fixed a few tests that where using viper.Set("chaincode.externalBuilders", VARIABLE) instead of stringified data
  • 52247b3 Backport FAB-18482 into 2.2. Ability to specify chaincode's external builders via env var. Added example on how to override the list of system chaincodes using env var due to bugs in viper.
  • fb9551d Update gateway.md (#3516)
  • b1664bc Update commercial_paper.md
  • 7f22e99 Release commit for v2.2.7 (#3504)
  • 80bcc18 Check if inner consensus message is missing
  • e7dc57d Release commit for v2.2.6 (#3488)
  • 862ab4d Add logging for identity, policy, and signature troubleshooting (release-2.2) (#3483) [ #3006 ]
See More
  • b7aaeb8 Fix gossip unit test flake (#3215)
  • 2dc7d5c Bump Alpine to 3.16 (release-2.2) (#3473)
  • 2d286f1 Fixed Found Typos
  • b24f2c0 Add -buildvcs=false for building binaries
  • dd3e96e Update 'Using Private Data in Fabric' tutorial (Backport #1875)
  • 61561dd bump Go to 1.18.2 (release-2.2)
  • b17d01a bump golang.org/x/crypto and golang.org/x/tools (release-2.2) (#3436)
  • 21e522b bump go-dockerclient (release-2.2) (#3435) [ #2338 ]
  • df783d6 Remove duplicated line
  • eabe68b Fix some errors in the tutorial
  • 4f61890 Bump CouchDB to 3.2.2 (release-2.2)
  • 8be2067 Fix mistake change 'curl' to 'git'
  • 2deacba Fix doc to handle $PWD containing whitepaces
  • 6a1071e Update README build badge link
  • fa43e61 Update links for Jira to GitHub issue transition in README
  • 4b1bfbf Update boostrap.sh for test network
  • e728001 Update documentation to include Go SDK
  • 449ef0a Fix link to security bug reporting process (#2160)
  • 2f4eb7f Update "master" branch references to "main".
  • 09393f6 Update chaincode language parameter name
  • ed67dbe Fix hyperlink
  • 61d5840 Fix warning log printing
  • 578a648 Properly handle concurrent building of chaincode packages
  • cfbb980 Documentation: Update network (Key Concepts) page
  • 0d79dd2 certs mgmt guide (#3307)
  • 0132f2a Additional TLS troubleshooting information (#3346)
  • 4ab9059 Ignore channel double creation during replication. [ #2931 ]
  • e2f05e6 Ignore expired CA/TLS CA certs on msp init (#3238) (#3249) (#3255)
  • 68b6b90 Fix FAB-18528: remove panic in ifConfig func (#2828)
  • f7318ff Release commit for v2.2.5
  • c04cd7d Bump Go to 1.17.5 (release-2.2) (#3186)
  • 4996e82 - Fix failure to generate all possible combinations (backport #3132) (#3150)
  • 162f867 Add Information about AWS HSM
  • fcdc0b5 Backport setEvent information to 2.2 [ #2958 ]
  • acf88a0 [Backport] #2936 to release-2.2 (#2953)
  • eddb470 Unit test flake when rpc server stream not closed (backport #2935) (#2942)
  • 19a137b Fix broken links for international workgroups (#2920)
  • 2088b5f Update docs for Jira to GitHub issue transition
  • 263ca9e Release commit for v2.2.4 (#2901)
  • 029e6ed Fixed a typo in private_data_tutorial
  • 1eedcff Update Go to v1.16.7 and alpine to 3.14 (release-2.2)
  • 851f838 Fix process termination waits in health tests (#2889)
  • e6a6a61 platform/golang: loosen assertion for Go 1.16.2 (release-2.2)
  • ba2a9f1 deps: bump ...
Read more

v2.4.5

01 Jul 21:11
7e2a6b9
Compare
Choose a tag to compare

v2.4.5 Release Notes - July 1, 2022

Fixes

orderer - Handle malformed consensus request

If a consensus client sends a malformed consensus request to an orderer it may crash the orderer node.
This fix checks for the malformed consensus request and returns an error to the consensus client.

Dependencies

Fabric v2.4.4 has been tested with the following dependencies:

  • Go 1.18.2
  • CouchDB v3.2.2

Fabric docker images on dockerhub utilize Alpine 3.16.

Deprecations (existing)

Ordering service system channel is deprecated

v2.3 introduced the ability to manage an ordering service without a system channel.
Managing an ordering service without a system channel has privacy, scalability,
and operational benefits. The use of a system channel is deprecated and may be removed in a future release.
For information about removal of the system channel, see the Create a channel without system channel documentation.

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node and not gossip blocks by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

  • 7e2a6b9 Release commit for v2.4.5 (#3505)
  • 0f18359 Check if inner consensus message is missing

This list of changes was auto generated.

v2.2.7

01 Jul 21:11
7f22e99
Compare
Choose a tag to compare

v2.2.7 Release Notes - July 1, 2022

Fixes

orderer - Handle malformed consensus request

If a consensus client sends a malformed consensus request to an orderer it may crash the orderer node.
This fix checks for the malformed consensus request and returns an error to the consensus client.

Dependencies

Fabric v2.2.7 has been tested with the following dependencies:

  • Go 1.18.2
  • CouchDB v3.2.2

Fabric docker images on dockerhub utilize Alpine 3.16.

Deprecations (existing)

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

See More
  • b17d01a bump golang.org/x/crypto and golang.org/x/tools (release-2.2) (#3436)
  • 21e522b bump go-dockerclient (release-2.2) (#3435) [ #2338 ]
  • df783d6 Remove duplicated line
  • eabe68b Fix some errors in the tutorial
  • 4f61890 Bump CouchDB to 3.2.2 (release-2.2)
  • 8be2067 Fix mistake change 'curl' to 'git'
  • 2deacba Fix doc to handle $PWD containing whitepaces
  • 6a1071e Update README build badge link
  • fa43e61 Update links for Jira to GitHub issue transition in README
  • 4b1bfbf Update boostrap.sh for test network
  • e728001 Update documentation to include Go SDK
  • 449ef0a Fix link to security bug reporting process (#2160)
  • 2f4eb7f Update "master" branch references to "main".
  • 09393f6 Update chaincode language parameter name
  • ed67dbe Fix hyperlink
  • 61d5840 Fix warning log printing
  • 578a648 Properly handle concurrent building of chaincode packages
  • cfbb980 Documentation: Update network (Key Concepts) page
  • 0d79dd2 certs mgmt guide (#3307)
  • 0132f2a Additional TLS troubleshooting information (#3346)
  • 4ab9059 Ignore channel double creation during replication. [ #2931 ]
  • e2f05e6 Ignore expired CA/TLS CA certs on msp init (#3238) (#3249) (#3255)
  • 68b6b90 Fix FAB-18528: remove panic in ifConfig func (#2828)
  • f7318ff Release commit for v2.2.5
  • c04cd7d Bump Go to 1.17.5 (release-2.2) (#3186)
  • 4996e82 - Fix failure to generate all possible combinations (backport #3132) (#3150)
  • 162f867 Add Information about AWS HSM
  • fcdc0b5 Backport setEvent information to 2.2 [ #2958 ]
  • acf88a0 [Backport] #2936 to release-2.2 (#2953)
  • eddb470 Unit test flake when rpc server stream not closed (backport #2935) (#2942)
  • 19a137b Fix broken links for international workgroups (#2920)
  • 2088b5f Update docs for Jira to GitHub issue transition
  • 263ca9e Release commit for v2.2.4 (#2901)
  • 029e6ed Fixed a typo in private_data_tutorial
  • 1eedcff Update Go to v1.16.7 and alpine to 3.14 (release-2.2)
  • 851f838 Fix process termination waits in health tests (#2889)
  • e6a6a61 platform/golang: loosen assertion for Go 1.16.2 (release-2.2)
  • ba2a9f1 deps: bump testify (release-2.2) (#2886) [ #2336 ]
  • 50064c8 Update x509.CertPool equality checks (#2880)
  • f441ba2 Change name of test network docker network in 2.2
  • 859c7d5 Clean up Go modules (release-2.2) (#2876)
  • 07ac9f5 Stop spamming for wait channel acquirement in orderer integration test
  • b076bd7 Options for GRPC message size configurable
  • c91b546 Change name of comm msg size default consts
  • da9e1bd Refactor max message sizes in comm client config
  • fbf7b93 FAB18529 added nil check in channel header parsing
  • 9a6b351 Additional documentation for implicit private data collections
  • 8fd2ad8 [FAB-18509] Stop panic of coll...
Read more

v2.4.4

17 Jun 15:35
1473eca
Compare
Choose a tag to compare

v2.4.4 Release Notes - June 17, 2022

Improvements

peer - Add a "gateway.responsechecker" logger for logging endorsement response differences

To assist with troubleshooting when endorsement responses are different across multiple peers, the new "gateway.responsechecker" logger will log warnings indicating which parts of endorsement responses are different.

peer - Enable gateway service to invoke system chaincodes

The gateway service can now invoke system chaincodes such as QSCC when requested by a client application.

peer - Enable resume of chaincode event listening

Enables the client to (optionally) specify an AfterTransactionId property in addition to a start block number when requesting chaincode events, which causes chaincode events up to that transaction ID (inclusive) to be ignored and not returned to the client.
This supports resume of chaincode event listening on client reconnect without duplicating or missing any events.

Dependencies

Fabric v2.4.4 has been tested with the following dependencies:

  • Go 1.18.2
  • CouchDB v3.2.2

Fabric docker images on dockerhub utilize Alpine 3.16.

Deprecations (existing)

Ordering service system channel is deprecated

v2.3 introduced the ability to manage an ordering service without a system channel.
Managing an ordering service without a system channel has privacy, scalability,
and operational benefits. The use of a system channel is deprecated and may be removed in a future release.
For information about removal of the system channel, see the Create a channel without system channel documentation.

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node and not gossip blocks by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

  • 1473eca Release commit for v2.4.4 (#3487)
  • 6f4282b Fix gossip unit test flake (#3215)
  • a914ec3 Bump Alpine to 3.16 (release-2.4) (#3472)
  • 8ffd334 Locate correct block number for transaction ID in ChaincodeEvents (#3289)
  • f64eea2 Refactor of ChaincodeEvents service implementation to support resume (#3283)
  • 02d63c3 Add -buildvcs=false for building binaries
  • 60638b5 Improved gateway error for transient data failure [ #3328 ]
  • a6947fa Use any peer to evaluate system chaincode transactions (#3447)
  • 135c268 Improve response mismatch logging
  • 29fea4f Log proposal response differences (backport #3420)
See More

This list of changes was auto generated.

v2.2.6

17 Jun 15:54
e7dc57d
Compare
Choose a tag to compare

v2.2.6 Release Notes - June 17, 2022

Fixes

peer and orderer - Handle TLS CA certificate expiry

When any TLS CA certificate configured on a channel expired, peer and orderer nodes fail to start due to MSP initialization error "setting up the MSP manager failed: CA Certificate is not valid: certificate has expired or is not yet valid". MSP initialization now ignores TLS CA certificate expiration so that the peer or orderer can start up and receive channel configuration updates with renewed TLS CA certificates.

Dependencies

Fabric v2.2.6 has been tested with the following dependencies:

  • Go 1.18.2
  • CouchDB v3.2.2

Fabric docker images on dockerhub utilize Alpine 3.16.

Deprecations (existing)

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

See More
  • df783d6 Remove duplicated line
  • eabe68b Fix some errors in the tutorial
  • 4f61890 Bump CouchDB to 3.2.2 (release-2.2)
  • 8be2067 Fix mistake change 'curl' to 'git'
  • 2deacba Fix doc to handle $PWD containing whitepaces
  • 6a1071e Update README build badge link
  • fa43e61 Update links for Jira to GitHub issue transition in README
  • 4b1bfbf Update boostrap.sh for test network
  • e728001 Update documentation to include Go SDK
  • 449ef0a Fix link to security bug reporting process (#2160)
  • 2f4eb7f Update "master" branch references to "main".
  • 09393f6 Update chaincode language parameter name
  • ed67dbe Fix hyperlink
  • 61d5840 Fix warning log printing
  • 578a648 Properly handle concurrent building of chaincode packages
  • cfbb980 Documentation: Update network (Key Concepts) page
  • 0d79dd2 certs mgmt guide (#3307)
  • 0132f2a Additional TLS troubleshooting information (#3346)
  • 4ab9059 Ignore channel double creation during replication. [ #2931 ]
  • e2f05e6 Ignore expired CA/TLS CA certs on msp init (#3238) (#3249) (#3255)
  • 68b6b90 Fix FAB-18528: remove panic in ifConfig func (#2828)
  • f7318ff Release commit for v2.2.5
  • c04cd7d Bump Go to 1.17.5 (release-2.2) (#3186)
  • 4996e82 - Fix failure to generate all possible combinations (backport #3132) (#3150)
  • 162f867 Add Information about AWS HSM
  • fcdc0b5 Backport setEvent information to 2.2 [ #2958 ]
  • acf88a0 [Backport] #2936 to release-2.2 (#2953)
  • eddb470 Unit test flake when rpc server stream not closed (backport #2935) (#2942)
  • 19a137b Fix broken links for international workgroups (#2920)
  • 2088b5f Update docs for Jira to GitHub issue transition
  • 263ca9e Release commit for v2.2.4 (#2901)
  • 029e6ed Fixed a typo in private_data_tutorial
  • 1eedcff Update Go to v1.16.7 and alpine to 3.14 (release-2.2)
  • 851f838 Fix process termination waits in health tests (#2889)
  • e6a6a61 platform/golang: loosen assertion for Go 1.16.2 (release-2.2)
  • ba2a9f1 deps: bump testify (release-2.2) (#2886) [ #2336 ]
  • 50064c8 Update x509.CertPool equality checks (#2880)
  • f441ba2 Change name of test network docker network in 2.2
  • 859c7d5 Clean up Go modules (release-2.2) (#2876)
  • 07ac9f5 Stop spamming for wait channel acquirement in orderer integration test
  • b076bd7 Options for GRPC message size configurable
  • c91b546 Change name of comm msg size default consts
  • da9e1bd Refactor max message sizes in comm client config
  • fbf7b93 FAB18529 added nil check in channel header parsing
  • 9a6b351 Additional documentation for implicit private data collections
  • 8fd2ad8...
Read more

v2.4.3

25 Feb 17:39
Compare
Choose a tag to compare

v2.4.3 Release Notes - February 25, 2022

Fixes

peer - Add Intermediate CA certificates to gateway dial options

The gateway service was not including TLS intermediate certificates in the dial options when connecting to other nodes,
resulting in TLS handshake errors between the gateway peer and other nodes.
The gateway service now includes TLS root certificates and intermediate certificates when connecting to other nodes.

peer - Gateway support for mutual TLS

The gateway service was not passing the peer's client certificate when connecting to other nodes.
To support TLS client authentication (mutual authentication), the gateway service now passes the peer's
client certificate (if one is configured) when connecting to other nodes.

peer and orderer - Handle TLS CA certificate expiry

When any TLS CA certificate configured on a channel expired,
peer and orderer nodes fail to start due to MSP initialization error
"setting up the MSP manager failed: CA Certificate is not valid: certificate has expired or is not yet valid".
MSP initialization now ignores TLS CA certificate expiration so that the peer
or orderer can start up and receive channel configuration updates with renewed TLS CA certificates.

Dependencies

Fabric v2.4.3 has been tested with the following dependencies:

  • Go 1.17.5
  • CouchDB v3.1.1

Fabric docker images on dockerhub utilize Alpine 3.14.

Deprecations (existing)

Ordering service system channel is deprecated

v2.3 introduced the ability to manage an ordering service without a system channel.
Managing an ordering service without a system channel has privacy, scalability,
and operational benefits. The use of a system channel is deprecated and may be removed in a future release.
For information about removal of the system channel, see the Create a channel without system channel documentation.

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node and not gossip blocks by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

This list of changes was auto generated.

v2.4.2

28 Jan 13:20
Compare
Choose a tag to compare

v2.4.2 Release Notes - January 28, 2022

Fixes

peer - Discovery service does not consider full set of endorsement options

Due to a bug in the permutation logic, the discovery service may not consider the
full set of endorsement options for a given endorsement policy, potentially resulting in the following error:
"no peer combination can satisfy the endorsement policy".
The fix ensures that all endorsement options are considered for a given endorsement policy and set of peers.

peer - Peer gateway does not close connections to orderers that are removed from channel configuration

The peer gateway service now closes connections to ordering service nodes when they are no longer part of any channel configuration.

Dependencies

Fabric v2.4.2 has been tested with the following dependencies:

  • Go 1.17.5
  • CouchDB v3.1.1

Fabric docker images on dockerhub utilize Alpine 3.14.

Deprecations (existing)

Ordering service system channel is deprecated

v2.3 introduced the ability to manage an ordering service without a system channel.
Managing an ordering service without a system channel has privacy, scalability,
and operational benefits. The use of a system channel is deprecated and may be removed in a future release.
For information about removal of the system channel, see the Create a channel without system channel documentation.

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node and not gossip blocks by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

  • fad7f69 Release commit for v2.4.2
  • 0e9cdb2 Address windows platform in documentation [ #2993 ]
  • 63a7779 Bump Go to 1.17.5 (release-2.4) (#3182) [ #3114 ]
  • e24c332 Refactor gateway Endorse() method
  • e7cb726 Close connections to stale ordering nodes
  • e1ed78f - Fix failure to generate all possible combinations (#3132)
  • af5d5df v2.4.1 release commit
  • ef5ac00 Update 'Running a Fabric Application' tutorial for Fabric Gateway
  • 3580b4e Reduce CPU&memory cost of collecting endorsements
  • fbfdc1d Enable gateway concurrency limits
See More
  • 1f87709 Remove discovery.acl principal warning [ #3006 ]
  • e0bb139 Adding a dedicated external builder
  • 654a02b Fix channel config callback in gateway
  • abf5d30 Final peer for gateway (#3091) (#3095)
  • 2d8d7f4 Randomize endorsement layouts
  • 29d1e21 Network and Orderers for gateway
  • a95a8e7 latest PR review comments
  • 41b6586 v2.4.0 release commit (#3078)
  • 4f4e096 Update v2.4.0 release notes
  • f15b4ee Add command reference doc for ledgerutil
  • 45707ac Add read version to the example in read-write set
  • b0de139 Add logging for identity, policy, and signature troubleshooting
  • 1266978 Clarify v2.x upgrade docs (#3083)
  • 6a7cdd0 Refine Gateway gRPC error status codes (#3075)
  • 40fea67 goimports updates to prepare for Go 1.17 (#3070)
  • c14239c Add gateway ref to private data doc topic
  • a6a9fde EndorsementTimeout should apply to each endorser
  • bd1aaae Reference current application APIs in peer event service docs
  • 91951d0 Log the transactionID in all log messages
  • 2abb074 Remove redundant SDK documentation page
  • a1c13d8 Updates to endorser and gateway logging
  • 34dcb8d Update protobuf definitions
  • 5c2e358 Enhance gateway error logic
  • 5014709 docs: fixing some typos
  • dee44d9 Don't use EndorseResponse.Result field (#3051)
  • c463b32 Fix CI script syntax
  • 44faa13 Enable unaware threshold signature endorsement
  • 8a4c7f3 Update Contract and Application API docs for Fabric Gateway (#3048)
  • 91d7b7c Updates to Gateway doc topic (#3047)
  • 6a415ee collection singular
  • e3abd66 use member of a collection
  • da935d7 Gateway overview edited
  • 9c5e1df Clarify ProcessProposal error handling (#3044)
  • f089b24 Reword evaluate() error message
  • 688d4d2 Add extra info to error message
  • 6926cc1 no gateway via cli - tutorials (#3037)
  • cdc342e Add gateway architecture page to docs
  • 534b1c1 Use correct timeout option (#3032)
  • d67d421 Show what do not match (#3012)
  • 5113aa9 Better gRPC error on context error from CommitStatus serv...
Read more

v2.2.5

28 Jan 12:53
Compare
Choose a tag to compare

v2.2.5 Release Notes - January 28, 2022

Fixes

orderer - Fix bug when an orderer crashes at channel creation

This fix handles a scenario where an ordering service node crashes during channel creation.
Previously the ordering service node would attempt to re-create the channel upon next startup,
resulting in a panic with the following error:
"Error creating chain support: error creating consenter for channel: failed to restore persisted raft data: failed to create or read WAL: failed to open WAL: fileutil: file already locked".

peer - Discovery service does not consider full set of endorsement options

Due to a bug in the permutation logic, the discovery service may not consider the
full set of endorsement options for a given endorsement policy, potentially resulting in the following error:
"no peer combination can satisfy the endorsement policy".
The fix ensures that all endorsement options are considered for a given endorsement policy and set of peers.

Dependencies

Fabric v2.2.5 has been tested with the following dependencies:

  • Go 1.17.5
  • CouchDB v3.1.1

Deprecations (existing)

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

See More
  • 029e6ed Fixed a typo in private_data_tutorial
  • 1eedcff Update Go to v1.16.7 and alpine to 3.14 (release-2.2)
  • 851f838 Fix process termination waits in health tests (#2889)
  • e6a6a61 platform/golang: loosen assertion for Go 1.16.2 (release-2.2)
  • ba2a9f1 deps: bump testify (release-2.2) (#2886) [ #2336 ]
  • 50064c8 Update x509.CertPool equality checks (#2880)
  • f441ba2 Change name of test network docker network in 2.2
  • 859c7d5 Clean up Go modules (release-2.2) (#2876)
  • 07ac9f5 Stop spamming for wait channel acquirement in orderer integration test
  • b076bd7 Options for GRPC message size configurable
  • c91b546 Change name of comm msg size default consts
  • da9e1bd Refactor max message sizes in comm client config
  • fbf7b93 FAB18529 added nil check in channel header parsing
  • 9a6b351 Additional documentation for implicit private data collections
  • 8fd2ad8 [FAB-18509] Stop panic of collection index path is wrong (#2726) (#2744)
  • 62c68d1 Updated enrollUser function in write_first_app Doc (#2713)
  • a0dcb5c Update docs to clarify that an implicit collection can not have an index
  • 2f7fd17 Fixed grammatical errors
  • f36fe03 [Doc-Update] + What is a commercial paper section
  • 8b1d355 Fix a typo in CouchDB tutorial
  • 4c77749 Fix typo
  • f3f170f Fix peerchaincode.md as well
  • 30a0931 Add explanation of --ctor JSON string
  • b926247 Clarify orderers seeing the transaction data
  • f4feedb Cherry pick deploy CC fixes into release-2.2
  • 68bc522 Clarify "identity expired" error messages (#2685) (#2688)
  • 3a69034 Fix spelling mistakes in the Github Contributions page
  • ccecf10 [FAB-18484] Return transaction forwarding result back to the client synchronously
  • 7e61944 [FAB-18487] Update broken link in 2.2 branch
  • 186d9bf Typo fix in peer deployment guide in main (#2660)
  • 31e41ce Update private_data_tutorial.rst
  • 4cb453e Fix jq commands in create channel tutorial (#2662)
  • 8851da3 Back port 2023 - skip empty ledge and 2635 - RetrieveBlockByNumber (#2648) [ #2023, #2635 ]
  • cc50451 Clarify doc for readset validations (#2647) (#2655)
  • 3548215 Update secured_private_asset_transfer_tutorial.md
  • 56b3689 [FAB-18479] Log error if orderer can't forward SubmitRequest to Raft leader
  • dd7e921 fix duplicate entry in code snippet
  • 7871c26 Optionally disable gossip block forwarding (#2606)
  • bce75cf Update docs/sourc...
Read more

v2.4.1

17 Dec 13:08
Compare
Choose a tag to compare

v2.4.1 Release Notes - December 17, 2021

Improvements

peer - Chaincode as a service builder delivered with Fabric release artifacts and in fabric-peer docker image

Starting in v2.0 chaincode can be run as a service by utilizing the external builder pattern for chaincodes.
Running 'chaincode as a service' has advantages in Kubernetes and other deployment environments since the chaincode can be managed independently rather than requiring the peer to build chaincode images and start chaincode containers at runtime.
The external builder pattern required you to deliver a builder script or program alongside the peer.
Starting in v2.4.1 an external builder for 'chaincode as a service' is available in the Fabric release artifacts and is pre-configured with the fabric-peer docker image,
removing the need to build your own external builder and repackage and configure the peer.

peer - Gateway service now randomizes endorsement layouts

For improved load balancing of endorsement requests and fairer workload distribution across organizations,
the gateway service now randomizes the peers it connects to for every transaction.

peer - Gateway service concurrency limits

Add support for setting gateway service concurrency limits, similar to how concurrency limits are
set for the existing endorser and deliver services.
Concurrency limits ensure that a peer does not process more than the configured number of requests,
reducing the chance of a peer getting overloaded with more requests than it can process.
The peer's core.yaml 'peer.limits.concurrency.gatewayService' setting defaults to 500.

Fixes

peer - Fix for orderer endpoint updates in channel configuration transactions

When processing a channel configuration transaction, the gateway service was setting orderer endpoints based on the
prior configuration and therefore the gateway may attempt to submit transactions to outdated orderer endpoints.
A peer restart was required to refresh the orderer endpoints.
The gateway now sets the orderer endpoints based on the updated channel configuration without a peer restart required.

peer - Extraneous warnings logged for service discovery endorsers requests

The 'discovery.acl' logger was logging an unexpected "identity does not satisfy principal" warning message.
The message has now been removed.

peer - Improve gateway service memory garbage collection

Remove duplicate proposal responses from gateway service memory to improve garbage collection and peer process memory footprint.

peer - Reduce the size of gateway service gRPC error responses for non-matching endorsements

The gateway service was returning error responses with full payloads to clients when it received non-matching endorsements from peers.
Large error responses in gRPC can cause loss of connection between client and server.
A shorter error message is now returned to the client, while the full payloads are reported in the peer log as a warning.

Dependencies

Fabric v2.4.1 has been tested with the following dependencies:

  • Go 1.16.7
  • CouchDB v3.1.1

Fabric docker images on dockerhub utilize Alpine 3.14.

Deprecations (existing)

Ordering service system channel is deprecated

v2.3 introduced the ability to manage an ordering service without a system channel.
Managing an ordering service without a system channel has privacy, scalability,
and operational benefits. The use of a system channel is deprecated and may be removed in a future release.
For information about removal of the system channel, see the Create a channel without system channel documentation.

FAB-15754: The 'Solo' consensus type is deprecated.

The 'Solo' consensus type has always been marked non-production and should be in
use only in test environments, however for compatibility it is still available,
but may be removed entirely in a future release.

FAB-16408: The 'Kafka' consensus type is deprecated.

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred
production consensus type. There is a documented and tested migration path from
Kafka to Raft, and existing users should migrate to the newer Raft consensus type.
For compatibility with existing deployments, Kafka is still supported,
but may be removed entirely in a future release.
Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published.

Fabric CouchDB image is deprecated

v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB.
If prior versions are utilized, a Warning will appear in peer log.
Note that CouchDB 3.1.0 requires that an admin username and password be set,
while this was optional in CouchDB v2.x. See the
Fabric CouchDB documentation
for configuration details.
Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment.
Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.

FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.

Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead.
Configuring orderer endpoints at the organization level accommodates
scenarios where orderers are run by different organizations. Using
this configuration ensures that only the TLS CA certificates of that organization
are used for orderer communications, in contrast to the global channel level endpoints which
would cause an aggregation of all orderer TLS CA certificates across
all orderer organizations to be used for orderer communications.

FAB-17428: Support for configtxgen flag --outputAnchorPeersUpdate is deprecated.

The --outputAnchorPeersUpdate mechanism for updating anchor peers has always had
limitations (for instance, it only works the first time anchor peers are updated).
Instead, anchor peer updates should be performed through the normal config update flow.

FAB-15406: The fabric-tools docker image is deprecated

The fabric-tools docker image will not be published in future Fabric releases.
Instead of using the fabric-tools docker image, users should utilize the
published Fabric binaries. The Fabric binaries can be used to make client calls
to Fabric runtime components, regardless of where the Fabric components are running.

FAB-15317: Block dissemination via gossip is deprecated

Block dissemination via gossip is deprecated and may be removed in a future release.
Fabric peers can be configured to receive blocks directly from an ordering service
node and not gossip blocks by using the following configuration:

peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.deliveryclient.blockGossipEnabled: false

FAB-15061: Legacy chaincode lifecycle is deprecated

The legacy chaincode lifecycle from v1.x is deprecated and will be removed
in a future release. To prepare for the eventual removal, utilize the v2.x
chaincode lifecycle instead, by enabling V2_0 application capability on all
channels, and redeploying all chaincodes using the v2.x lifecycle. The new
chaincode lifecycle provides a more flexible and robust governance model
for chaincodes. For more details see the
documentation for enabling the new lifecycle.

Changes:

  • af5d5df v2.4.1 release commit
  • ef5ac00 Update 'Running a Fabric Application' tutorial for Fabric Gateway
  • 3580b4e Reduce CPU&memory cost of collecting endorsements
  • fbfdc1d Enable gateway concurrency limits
  • 1f87709 Remove discovery.acl principal warning [ #3006 ]
  • e0bb139 Adding a dedicated external builder
  • 654a02b Fix channel config callback in gateway
  • abf5d30 Final peer for gateway (#3091) (#3095)
  • 2d8d7f4 Randomize endorsement layouts
  • 29d1e21 Network and Orderers for gateway
See More
  • a95a8e7 latest PR review comments

This list of changes was auto generated.