|  | 
|  | 1 | +v2.5.1 Release Notes - May 1, 2023 | 
|  | 2 | +================================== | 
|  | 3 | + | 
|  | 4 | +Fixes | 
|  | 5 | +----- | 
|  | 6 | + | 
|  | 7 | +**Add go binary to fabric-tools docker image** | 
|  | 8 | + | 
|  | 9 | +Since the docker images are based on ubuntu rather than golang alpine image starting in v2.5, | 
|  | 10 | +the go binary did not exist on the fabric-tools image as it did in prior releases. | 
|  | 11 | +This change re-adds the go binary to the fabric-tools image, | 
|  | 12 | +which is required if using the fabric-tools image to build and package go chaincodes. | 
|  | 13 | +[#4177](https://github.com/hyperledger/fabric/pull/4177) | 
|  | 14 | + | 
|  | 15 | + | 
|  | 16 | +Dependencies | 
|  | 17 | +------------ | 
|  | 18 | +Fabric v2.5.1 has been tested with the following dependencies: | 
|  | 19 | +* Go 1.20.3 | 
|  | 20 | +* CouchDB v3.3.2 | 
|  | 21 | + | 
|  | 22 | +Fabric docker images on dockerhub utilize Ubuntu 20.04. | 
|  | 23 | + | 
|  | 24 | + | 
|  | 25 | +Deprecations (existing) | 
|  | 26 | +----------------------- | 
|  | 27 | + | 
|  | 28 | +**Ordering service system channel is deprecated** | 
|  | 29 | + | 
|  | 30 | +v2.3 introduced the ability to manage an ordering service without a system channel. | 
|  | 31 | +Managing an ordering service without a system channel has privacy, scalability, | 
|  | 32 | +and operational benefits. The use of a system channel is deprecated and may be removed in a future release. | 
|  | 33 | +For information about removal of the system channel, see the [Create a channel without system channel documentation](https://hyperledger-fabric.readthedocs.io/en/release-2.3/create_channel/create_channel_participation.html). | 
|  | 34 | + | 
|  | 35 | +**FAB-15754: The 'Solo' consensus type is deprecated.** | 
|  | 36 | + | 
|  | 37 | +The 'Solo' consensus type has always been marked non-production and should be in | 
|  | 38 | +use only in test environments; however, for compatibility it is still available, | 
|  | 39 | +but may be removed entirely in a future release. | 
|  | 40 | + | 
|  | 41 | +**FAB-16408: The 'Kafka' consensus type is deprecated.** | 
|  | 42 | + | 
|  | 43 | +The 'Raft' consensus type was introduced in v1.4.1 and has become the preferred | 
|  | 44 | +production consensus type.  There is a documented and tested migration path from | 
|  | 45 | +Kafka to Raft, and existing users should migrate to the newer Raft consensus type. | 
|  | 46 | +For compatibility with existing deployments, Kafka is still supported, | 
|  | 47 | +but may be removed entirely in a future release. | 
|  | 48 | +Additionally, the fabric-kafka and fabric-zookeeper docker images are no longer updated, maintained, or published. | 
|  | 49 | + | 
|  | 50 | +**Fabric CouchDB image is deprecated** | 
|  | 51 | + | 
|  | 52 | +v2.2.0 added support for CouchDB 3.1.0 as the recommended and tested version of CouchDB. | 
|  | 53 | +If prior versions are utilized, a Warning will appear in the peer log. | 
|  | 54 | +Note that CouchDB 3.1.0 requires that an admin username and password be set, | 
|  | 55 | +while this was optional in CouchDB v2.x. See the | 
|  | 56 | +[Fabric CouchDB documentation](https://hyperledger-fabric.readthedocs.io/en/v2.2.0/couchdb_as_state_database.html#couchdb-configuration) | 
|  | 57 | +for configuration details. | 
|  | 58 | +Also note that CouchDB 3.1.0 default max_document_size is reduced to 8MB. Set a higher value if needed in your environment. | 
|  | 59 | +Finally, the fabric-couchdb docker image will not be updated to v3.1.0 and will no longer be updated, maintained, or published. | 
|  | 60 | +Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead. | 
|  | 61 | + | 
|  | 62 | +**FAB-7559: Support for specifying orderer endpoints at the global level in channel configuration is deprecated.** | 
|  | 63 | + | 
|  | 64 | +Utilize the new 'OrdererEndpoints' stanza within the channel configuration of an organization instead. | 
|  | 65 | +Configuring orderer endpoints at the organization level accommodates | 
|  | 66 | +scenarios where orderers are run by different organizations. Using | 
|  | 67 | +this configuration ensures that only the TLS CA certificates of that organization | 
|  | 68 | +are used for orderer communications; in contrast to the global channel level endpoints which | 
|  | 69 | +would cause an aggregation of all orderer TLS CA certificates across | 
|  | 70 | +all orderer organizations to be used for orderer communications. | 
|  | 71 | + | 
|  | 72 | +**FAB-17428: Support for configtxgen flag `--outputAnchorPeersUpdate` is deprecated.** | 
|  | 73 | + | 
|  | 74 | +The `--outputAnchorPeersUpdate` mechanism for updating anchor peers has always had | 
|  | 75 | +limitations (for instance, it only works the first time anchor peers are updated). | 
|  | 76 | +Instead, anchor peer updates should be performed through channel configuration updates. | 
|  | 77 | + | 
|  | 78 | +**FAB-15406: The fabric-tools docker image is deprecated** | 
|  | 79 | + | 
|  | 80 | +The fabric-tools docker image will not be published in future Fabric releases. | 
|  | 81 | +Instead of using the fabric-tools docker image, users should utilize the | 
|  | 82 | +published Fabric binaries. The Fabric binaries can be used to make client calls | 
|  | 83 | +to Fabric runtime components, regardless of where the Fabric components are running. | 
|  | 84 | + | 
|  | 85 | +**FAB-15317: Block dissemination via gossip is deprecated** | 
|  | 86 | + | 
|  | 87 | +Block dissemination via gossip is deprecated and may be removed in a future release. | 
|  | 88 | +Fabric peers can be configured to receive blocks directly from an ordering service | 
|  | 89 | +node, and not gossip blocks, by using the following configuration: | 
|  | 90 | +``` | 
|  | 91 | +peer.gossip.orgLeader: true | 
|  | 92 | +peer.gossip.useLeaderElection: false | 
|  | 93 | +peer.gossip.state.enabled: false | 
|  | 94 | +peer.deliveryclient.blockGossipEnabled: false | 
|  | 95 | +``` | 
|  | 96 | + | 
|  | 97 | +**FAB-15061: Legacy chaincode lifecycle is deprecated** | 
|  | 98 | + | 
|  | 99 | +The legacy chaincode lifecycle from v1.x is deprecated and will be removed | 
|  | 100 | +in a future release. To prepare for the eventual removal, utilize the v2.x | 
|  | 101 | +chaincode lifecycle instead, by enabling V2_0 application capability on all | 
|  | 102 | +channels, and redeploying all chaincodes using the v2.x lifecycle. The new | 
|  | 103 | +chaincode lifecycle provides a more flexible and robust governance model | 
|  | 104 | +for chaincodes. For more details see the | 
|  | 105 | +[documentation for enabling the new lifecycle](https://hyperledger-fabric.readthedocs.io/en/release-2.2/enable_cc_lifecycle.html). | 
0 commit comments