Hyperledger Fabric Versions Save

Hyperledger Fabric is an enterprise-grade permissioned distributed ledger framework for developing solutions and applications. Its modular and versatile design satisfies a broad range of industry use cases. It offers a unique approach to consensus that enables performance at scale while preserving privacy.

v3.0.0-beta

2 weeks ago

v3.0.0-beta Release Notes - March 14, 2024

The v3.0.0-beta release is an early release of Fabric v3.0, specifically to demonstrate and get feedback on the new Byzantine Fault Tolerant (BFT) ordering service.

v3.0.0-beta is not intended to be used in production and is not intended as an upgrade target from prior versions. It can however be used to test the process for migrating from Raft to SmartBFT consensus.

New features

Byzantine Fault Tolerant (BFT) ordering service

Hyperledger Fabric has utilized a Raft crash fault tolerant (CFT) ordering service since version v1.4.1. A Byzantine Fault Tolerant (BFT) ordering service can withstand not only crash failures, but also a subset of nodes behaving maliciously. Fabric v3.0.0-beta provides a BFT ordering service based on the SmartBFT consensus library. Consider using the BFT orderer if true decentralization is required, where up to and not including a third of the parties running the orderers may not be trusted due to malicious intent or being compromised. For more details of the BFT ordering service and other recent features, see the What's New documentation.

The v3.0.0-beta release differs from the v3.0.0-preview release by making the peer and orderer block replication resistant to block withholding. Block withholding is when an orderer receives a request for blocks it possesses, but it delays sending the blocks and by doing so, slows down the requester's block reception. As described in the RFC, block withholding resistance incurs a bandwidth and CPU cost, and therefore an operator of an orderer may opt out and use the standard mechanism by specifying ReplicationPolicy: simple in the local configuration.

Query all approved chaincodes on a channel

The updated peer lifecycle chaincode queryapproved command allows you to pass only a channel name. The command will return all approved chaincodes on the channel.

Improvements and Fixes

All improvements and fixes as of v2.5.6 have also been included in v3.0.0-beta.

Dependencies

Fabric v3.0.0-beta has been tested with the following dependencies:

  • Go 1.21.8
  • CouchDB v3.3.3

Fabric docker images on dockerhub utilize Ubuntu 20.04.

Changes

peer.gossip.pvtData.transientstoreMaxBlockRetention default value increased from 1000 to 20000

peer.gossip.pvtData.transientstoreMaxBlockRetention specifies the number of blocks to keep uncommitted private data in the transient store before it is purged. Increasing the value provides more tolerance for delayed commits before the data is purged.

Removals

Support for ordering service system channel has been removed

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 system channel is removed in Fabric v3.0, as well as the concept of a 'consortium' of organizations that can create channels. If you used the system channel in prior releases, you must remove the system channel and migrate to the channel participation API before upgrading to v3.x. For information about removal of the system channel, see the Create a channel without system channel documentation.

Support for 'Solo' consensus ordering service has been removed

The 'Solo' consensus type was intended for test environments only in prior releases and has never been supported for production environments. Support for 'Solo' consensus has been removed in Fabric v3.0. For trial environments you can utilize a single node Raft ordering service as demonstrated in the test network tutorial.

Support for 'Kafka' consensus ordering service has been removed

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred production consensus type. Support for 'Kafka' consensus has been removed in Fabric v3.0. If you used Kafka consensus in prior releases, you must migrate to Raft consensus prior to upgrading to v3.x. For details about the migration process, see the Migrating from Kafka to Raft documentation.

Legacy chaincode lifecycle has been removed

The legacy chaincode lifecycle from v1.x is removed in v3.x. Prior to upgrading peers to v3.x, you must update all channels to utilize the v2.x lifecycle by setting the channel application capability to either V2_0 or V2_5, 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.

Deprecated features

Support for specifying orderer endpoints at the global level in channel configuration is deprecated and may be removed.

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.

Support for configtxgen flag --outputAnchorPeersUpdate is deprecated and may be removed.

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 channel configuration updates.

The fabric-tools docker image is deprecated and may be removed

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.

Block dissemination via gossip is deprecated and may be removed

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

v2.5.6

1 month ago

v2.5.6 Release Notes - February 19, 2024

v2.5.6 updates code dependencies.

Dependencies

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

  • Go 1.21.6
  • CouchDB v3.3.3

Fabric docker images on dockerhub utilize Ubuntu 20.04.

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 the 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 channel configuration updates.

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.

v2.2.15

1 month ago

v2.2.15 Release Notes - February 19, 2024

v2.2.15 updates code dependencies.

Dependencies

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

  • Go 1.21.6
  • CouchDB v3.3.3

Fabric docker images on dockerhub utilize Alpine 3.18.

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.

v2.5.5

4 months ago

v2.5.5 Release Notes - October 31, 2023

Fixes

Verify transactions in a block are well formed

Verify that transactions in blocks appear exactly as their marshaled form after unmarshaling. #4503

Dependencies

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

  • Go 1.21.3
  • CouchDB v3.3.2

Fabric docker images on dockerhub utilize Ubuntu 20.04.

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 the 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 channel configuration updates.

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.

v2.2.14

4 months ago

v2.2.14 Release Notes - October 31, 2023

Fixes

Verify transactions in a block are well formed

Verify that transactions in blocks appear exactly as their marshaled form after unmarshaling. #4504

Dependencies

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

  • Go 1.21.3
  • CouchDB v3.3.2

Fabric docker images on dockerhub utilize Alpine 3.18.

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.

v3.0.0-preview

6 months ago

v3.0.0-preview Release Notes - September 1, 2023

The v3.0.0-preview release is an early preview of Fabric v3.0, specifically to demonstrate and get feedback on the new Byzantine Fault Tolerant (BFT) ordering service.

v3.0.0-preview is not intended to be used in production and is not intended as an upgrade target from prior versions.

New features

Byzantine Fault Tolerant (BFT) ordering service

Hyperledger Fabric has utilized a Raft crash fault tolerant (CFT) ordering service since version v1.4.1. A Byzantine Fault Tolerant (BFT) ordering service can withstand not only crash failures, but also a subset of nodes behaving maliciously. Fabric v3.0.0-preview is the first release to provide a BFT ordering service based on the SmartBFT consensus library. Consider using the BFT orderer if true decentralization is required, where up to and not including a third of the parties running the orderers may not be trusted due to malicious intent or being compromised. For more details of the BFT ordering service and other recent features, see the What's New documentation.

Improvements and Fixes

All improvements and fixes as of v2.5.4 have also been included in v3.0.0-preview.

Dependencies

Fabric v3.0.0-preview has been tested with the following dependencies:

  • Go 1.20.7
  • CouchDB v3.3.2

Fabric docker images on dockerhub utilize Ubuntu 20.04.

Changes

Support for ordering service system channel has been removed

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 system channel is removed in Fabric v3.0, as well as the concept of a 'consortium' of organizations that can create channels. If you used the system channel in prior releases, you must remove the system channel and migrate to the channel participation API before upgrading to v3.x. For information about removal of the system channel, see the Create a channel without system channel documentation.

Support for 'Solo' consensus ordering service has been removed

The 'Solo' consensus type was intended for test environments only in prior releases and has never been supported for production environments. Support for 'Solo' consensus has been removed in Fabric v3.0. For trial environments you can utilize a single node Raft ordering service as demonstrated in the test network tutorial.

Support for 'Kafka' consensus ordering service has been removed

The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred production consensus type. Support for 'Kafka' consensus has been removed in Fabric v3.0. If you used Kafka consensus in prior releases, you must migrate to Raft consensus prior to upgrading to v3.x. For details about the migration process, see the Migrating from Kafka to Raft documentation.

Other changes planned for v3.0

Support for specifying orderer endpoints at the global level in channel configuration is deprecated and may be removed.

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.

Support for configtxgen flag --outputAnchorPeersUpdate is deprecated and may be removed.

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 channel configuration updates.

The fabric-tools docker image is deprecated and may be removed

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.

Block dissemination via gossip is deprecated and may be removed

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

Legacy chaincode lifecycle is deprecated and may be removed

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.

v2.2.13

7 months ago

v2.2.13 Release Notes - August 2, 2023

Fixes

Misconfigured certificate can cause a peer or orderer node to fail

A misconfigured certificate can cause a peer or ordering service node to fail with error: runtime error: index out of range [1] with length 1. Additional handling of certificates in Go 1.19 and above did not handle an error condition correctly. The fix will now log an error failed to traverse certificate verification chain instead of failing the peer or orderer node. #4324

Dependencies

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

  • Go 1.20.6
  • CouchDB v3.3.2

Fabric docker images on dockerhub utilize Alpine 3.18.

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.

v2.5.4

7 months ago

v2.5.4 Release Notes - August 2, 2023

Fixes

Misconfigured certificate can cause a peer or orderer node to fail

A misconfigured certificate can cause a peer or ordering service node to fail with error: runtime error: index out of range [1] with length 1. Additional handling of certificates in Go 1.19 and above did not handle an error condition correctly. The fix will now log an error failed to traverse certificate verification chain instead of failing the peer or orderer node. #4320

Orderer startup may fail due to max entry size limit exceeded

An ordering service node with large blocks may fail to start with error: Failed to create chain support for channel, error: error creating consenter for channel: failed to restore persisted raft data: failed to create or read WAL: failed to read WAL and cannot repair: wal: max entry size limit exceeded. The version of etcd raft included in Fabric v2.5 had a maximum wal (write-ahead log) entry size of 10MB. The issue has been fixed in later versions of etcd raft. Fabric v2.5.4 updates etcd raft to v3.5.9 which includes the fix. #4343

Dependencies

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

  • Go 1.20.6
  • CouchDB v3.3.2

Fabric docker images on dockerhub utilize Ubuntu 20.04.

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 the 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 channel configuration updates.

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.

v2.5.3

9 months ago

v2.5.3 Release Notes - June 14, 2023

Fixes

Deadlock can occur on orderer startup while applying raft configuration changes from previous blocks

An ordering service node may get into a deadlock state after startup while applying raft configuration changes from previous blocks. The ordering service node would need to be restarted in order to make forward progress processing blocks. This fix ensures that the ordering service node doesn't get into a deadlock state. #4267

Dependencies

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

  • Go 1.20.5
  • CouchDB v3.3.2

Fabric docker images on dockerhub utilize Ubuntu 20.04.

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 the 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 channel configuration updates.

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.

v2.2.12

9 months ago

v2.2.12 Release Notes - June 2, 2023

Fixes

peer - Fix private data collection update during state database rebuild

The peer may panic if processing a private data collection membership update while rebuilding state database. This may happen when upgrading from v1.x to v2.x since the state database is rebuilt during the upgrade process. It may also happen upon restart if the peer has stopped while committing a block to the state database. The fix ensures that the private data collection update can be processed during state database rebuild. #4248

Dependencies

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

  • Go 1.20.4
  • CouchDB v3.3.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.