diff --git a/Makefile b/Makefile index f6e23bdfcfe..5463426ed52 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ # - verify - runs unit tests for only the changed package tree UBUNTU_VER ?= 20.04 -FABRIC_VER ?= 2.5.0-beta +FABRIC_VER ?= 2.5.0-beta2 # 3rd party image version # These versions are also set in the runners in ./integration/runners/ diff --git a/docs/source/install.md b/docs/source/install.md index ea2bf934f8c..a5307990aec 100644 --- a/docs/source/install.md +++ b/docs/source/install.md @@ -43,7 +43,7 @@ Run the script with the `-h` option to see the options: ./install-fabric.sh -h Usage: ./install-fabric.sh [-f|--fabric-version ] [-c|--ca-version ] [] ... [] ... : Component to install one or more of d[ocker]|b[inary]|s[amples]. If none specified, all will be installed - -f, --fabric-version: FabricVersion (default: '2.4.8') + -f, --fabric-version: FabricVersion (default: '2.4.9') -c, --ca-version: Fabric CA Version (default: '1.5.5') ``` diff --git a/docs/source/whatsnew.rst b/docs/source/whatsnew.rst index 06d5ec612cd..aa4e3e6c438 100644 --- a/docs/source/whatsnew.rst +++ b/docs/source/whatsnew.rst @@ -334,6 +334,7 @@ The release notes provide more details for users moving to the new release. Specifically, take a look at the changes and deprecations. * `Fabric v2.5.0-beta release notes `_. +* `Fabric v2.5.0-beta2 release notes `_. .. Licensed under Creative Commons Attribution 4.0 International License https://creativecommons.org/licenses/by/4.0/ diff --git a/release_notes/v2.5.0-beta2.md b/release_notes/v2.5.0-beta2.md new file mode 100644 index 00000000000..59fad6520b1 --- /dev/null +++ b/release_notes/v2.5.0-beta2.md @@ -0,0 +1,131 @@ +v2.5.0-beta2 Release Notes - March 14, 2023 +=========================================== + +New features +------------ + +**Purge history of private data** + +While it has always been possible to delete private data from current state, this new feature enables purging the history of private data from a peer while preserving a hash of the private data as immutable evidence on the blockchain. +* Useful for purging private data on demand for privacy reasons or to adhere to government regulations. +* Deletes private data from state and from peer’s private data history so that it can no longer be queried from block events or from other peers. +* Available as a new chaincode API `PurgePrivateData()`. +* Requires setting application capability to `V2_5` in channel configuration + +For more details, see the [Private data documentation](https://hyperledger-fabric.readthedocs.io/en/release-2.5/private-data/private-data.html#purging-private-data). + + +Improvements +------------ +**Multi-architecture binaries and docker images are now available** + +The release binaries and docker images have been updated as follows: +* Support for amd64 and arm64. +* Release binaries are statically linked for maximum portability. +* Docker images utilize dynamically linked binaries and are now based on Ubuntu (rather than Alpine) to make them more consistent with typical production runtime environments (production runtime environments are typically based on glibc and often require dynamic linking of HSM modules). + +**Orderer configuration SendBufferSize now defaults to 100** + +Orderer configuration SendBufferSize default has changed from `10` to `100` to improve performance of large workloads. + +**Peer gateway service now supports seamless resumption of chaincode event listening** + +Client applications can now resume chaincode event listening after a disconnect and reconnect without receiving any duplicate or missing events. +The client must specify an AfterTransactionId property in addition to a start block number when requesting chaincode events in order to ensure no duplicate or missing events are returned. + + +Fixes +----- +All fixes as of v2.4.9 are also included in v2.5.0-beta2. + + +Dependencies +------------ +Fabric v2.5.0-beta2 has been tested with the following dependencies: +* Go 1.18.10 +* CouchDB v3.2.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](https://hyperledger-fabric.readthedocs.io/en/release-2.3/create_channel/create_channel_participation.html). + +**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](https://hyperledger-fabric.readthedocs.io/en/v2.2.0/couchdb_as_state_database.html#couchdb-configuration) +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](https://hyperledger-fabric.readthedocs.io/en/release-2.2/enable_cc_lifecycle.html). diff --git a/scripts/bootstrap.sh b/scripts/bootstrap.sh index 3e7395a6771..f5982640f71 100755 --- a/scripts/bootstrap.sh +++ b/scripts/bootstrap.sh @@ -6,7 +6,7 @@ # # if version not passed in, default to latest released version -VERSION=2.4.8 +VERSION=2.4.9 # if ca version not passed in, default to latest released version CA_VERSION=1.5.5 ARCH=$(echo "$(uname -s|tr '[:upper:]' '[:lower:]'|sed 's/mingw64_nt.*/windows/')-$(uname -m |sed 's/x86_64/amd64/g')" |sed 's/darwin-arm64/darwin-amd64/g') @@ -21,8 +21,8 @@ printHelp() { echo "-s : bypass fabric-samples repo clone" echo "-b : bypass download of platform-specific binaries" echo - echo "e.g. bootstrap.sh 2.4.8 1.5.5 -s" - echo "will download docker images and binaries for Fabric v2.4.8 and Fabric CA v1.5.5" + echo "e.g. bootstrap.sh 2.4.9 1.5.5 -s" + echo "will download docker images and binaries for Fabric v2.4.9 and Fabric CA v1.5.5" } # dockerPull() pulls docker images from fabric and chaincode repositories diff --git a/scripts/install-fabric.sh b/scripts/install-fabric.sh index d2193370f41..0a75dce36d2 100755 --- a/scripts/install-fabric.sh +++ b/scripts/install-fabric.sh @@ -21,7 +21,7 @@ _arg_comp=('' ) # if version not passed in, default to latest released version # if ca version not passed in, default to latest released version -_arg_fabric_version="2.4.8" +_arg_fabric_version="2.4.9" _arg_ca_version="1.5.5" REGISTRY=${FABRIC_DOCKER_REGISTRY:-docker.io/hyperledger} @@ -50,7 +50,7 @@ print_help() { printf 'Usage: %s [-f|--fabric-version ] [-c|--ca-version ] [] ... [] ...\n' "$0" printf '\t%s\n' " Component to install, one or more of docker | binary | samples | podman First letter of component also accepted; If none specified docker | binary | samples is assumed" - printf '\t%s\n' "-f, --fabric-version: FabricVersion (default: '2.4.8')" + printf '\t%s\n' "-f, --fabric-version: FabricVersion (default: '2.4.9')" printf '\t%s\n' "-c, --ca-version: Fabric CA Version (default: '1.5.5')" }