v2.3.3
v2.3.3 Release Notes - September 8, 2021
Improvements
peer - New configuration option to disable gossip block forwarding
If all peers in an organization explicitly set peer.deliveryclient.blockGossipEnabled
to false,
no peer in the organization gossips blocks to any other peer in that organization.
Use this setting when all peers pull blocks from ordering service. For more
information see deprecation announcement below: FAB-15317: Block dissemination via gossip is deprecated.
orderer - [FAB-18484] Return transaction forwarding result back to the client synchronously
With this improvement a Raft follower waits for the transaction to be forwarded to the Raft leader,
and returns the result (success or failure) back to the client accordingly.
Prior to this improvement, the Raft follower returned success after enqueueing it into the message queue,
which might have resulted in the transaction being dropped but a success being returned to the client.
Application clients should still monitor transaction commit events, since the Raft leader is not guaranteed
to deliver the transaction into a block in exception scenarios, but this improvement avoids
transactions from being dropped when there are connection issues between a Raft follower and Raft leader.
peer and orderer - Make gRPC maximum message size configurable
This improvement makes gRPC maximum message size configurable in peer and orderer.
Previously the maximum message size was hardcoded to 100 megabytes.
Since all nodes should be consistent it is recommended to keep
the default value of 100 megabytes for MaxRecvMsgSize & MaxSendMsgSize.
The value can be configured if needed however.
Configure in peer core.yaml with peer.maxRecvMsgSize
and peer.maxSendMsgSize
.
Configure in orderer orderer.yaml with General.MaxRecvMsgSize
and General.MaxSendMsgSize
.
Fixes
orderer - [FAB-18521] Consenters' metadata is not replicated while OSN catches up with snapshot
If an ordering service node crashes while replicating blocks from another ordering service,
the consenters metadata will not be available and the ordering service node will not be
able to reconnect to the consenter set upon restart. This fix ensures that an ordering
service node that is replicating blocks persists the consenters metadata so that it
can reconnect to the consenter set.
Dependencies
Fabric v2.3.3 has been tested with the following dependencies:
- Go 1.16.7
- 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:
- 9955302 Release commit for v2.3.3 (#2903)
- b5eb7f0 Fixed a typo in private_data_tutorial
- 5be686f Update Go to v1.16.7 and alpine to 3.14 (release-2.3) (#2874)
- 0ebd9cf platform/golang: loosen assertion for Go 1.16.2 (#2480)
- c5c1acc deps: bump testify (release-2.3) (#2885) [ #2336 ]
- cf3470b Update x509.CertPool equality checks (#2879)
- 67d3523 Clean up Go modules (#2875)
- 758735b Stop spamming for wait channel acquirement in orderer integration test
- 497d3ab Options for GRPC message size configurable
- cc88dfa Change name of comm msg size default consts
See More
- 8956c06 Refactor max message sizes in comm client config
- befdaee FAB18529 added nil check in channel header parsing
- c1b298d Fix small doc errors (#2816)
- 9815a7a Update private data docs - remove SDK reference (#2770)
- 1294920 Additional documentation for implicit private data collections
- b7463be [FAB-18521] Replicate block metadata with block while OSN catching up (#2762)
- 90673b7 Added a possibility to override chaincode.externalBuilders via env variable (#2643)
- 43ef319 [FAB-18509] Stop panic of collection index path is wrong (#2726) (#2745)
- 6727a63 Updated enrollUser function in write_first_app Doc (#2713)
- f0f16f4 Update docs to clarify that an implicit collection can not have an index
- 98b6523 docker network net_test -> fabric_test
- 56e2f83 Fixed grammatical errors
- ca1cf22 [Doc-Update] + What is a commercial paper section
- 5c5b7a5 Fix a typo in CouchDB tutorial
- f424e95 Fix typo
- c74cbb4 Fix peerchaincode.md as well
- a089501 Add explanation of
--ctor
JSON string - f20421a Clarify orderers seeing the transaction data
- 3f743a9 Mandate TLS 1.2 or higher in fabhttp package
- f7eefee Clarify "identity expired" error messages (#2685) (#2686)
- f91d82f Fix spelling mistakes in the Github Contributions page
- ef9b3f1 [FAB-18484] Return transaction forwarding result back to the client synchronously
- 981a4e8 Link fixes detailed in FAB-18494
- a07a105 Update ordererplan.md
- 6eccd4b Added RetrieveBlockByNumber into blockledger (#2635) (#2657)
- de353c4 Update peerchecklist.md (#2656)
- bd0c432 Clarify doc for readset validations (#2647) (#2654)
- 47fee09 Update secured_private_asset_transfer_tutorial.md
- 1c6b3a0 Added single quotation marks to mask json path for jq command
- 9a47410 Update create_channel_test_net.md
- a172a69 [FAB-18479] Log error if orderer can't forward SubmitRequest to Raft leader
- 9750fc3 fix duplicate entry in code snippet
- f7d2162 add 'be'
- 6e787c7 Update deploy_chaincode.md
- 38f4713 Optionally disable gossip block forwarding (#2606)
- dc454fb Update docs/source/upgrade_to_newest_version.md
- d1cd43f Govendor added to documentation
- 2c6e403 Improve error message for invalid consenter cert (#2587)
- 89c907e Removed early mentioning of organization R3
- 0022e8f v2.3.2 release commit
- 248a220 Improve snapshot dir error message (#2530)
- 25f6612 Document ledger.snapshots.rootDir
- ce16177 Cherry pick removing duplicate word (#2524)
- 5de1d02 Add Security Model topic to docs
- 13ef1e1 Fix link in
international_languages.md
- b2c8d23 Fix old or incorrect contents in the doc build instruction
- f246243 integration: PKCS#11 SKI to CKA_ID mapping test
- 871d325 pkcs11: Add SKI to CKA_ID mapping for BCCSP [ #11 ]
- 0fb8e5a This commit upgrades goleveldb. This upgraded version includes a fix for [ #2463 ]
- 70c1d11 Fix images in network concept and upload new diagrams power point
- 2e9e732 Prepare for next release v2.3.2
- fd84e78 Fix bug in snapshot request submission
- 90db11d Report correct reason of stream abort in orderer cluster
- 1524fc9 Log stream total lifetime
- 8543389 corrected organization labels
- c61883e corrected Org1 text in Org2 box to Org2
- b156d91 Update build to use Go 1.15
- c4d4f79 Implement legacy name constraints verification
- a873a87 Add test to assert on name constraint behavior
- 230aa0e deps: bump github.com/pkg/errors
- 15e3f94 Re-encode ECDSA CRL signature during MSP setup
- 4e91e45 Add test to exercise signature validation change
- 8fb1a81 Adjust etcdraft error assertions for go 1.15
- 47b0bb6 Replace test cert fixtures with generated certs
- ce2cf21 Set SKI, support multi hosts, add Signer to CA
- 932e077 Fix typos in a "Developing Applications" doc
- d19dd32 Update documentation to include Go SDK
- df59561 Fix broken link in orderer deployment guide
- b2d6db6 Test network works with Docker Desktop version 2.5.0.1
- 1562d7e Update AZP Service Connection Name
- 7ad69c7 Add Create a channel tutorial without a system channel and using test network
- 2f69b42 Release commit for v2.3.1
- 17b7e4f Add peer log message for failure to invoke chaincode (#2339)
- fc63fcd Test network does not work with latest Docker
- 8dc9930 Minor updates related to documentation for commands and more osnadmin updates (release-2.3) (#2322)
- c29420c Rename --channel-id to --channelID in osadmin
- 410ba71 Participation edits to network concept doc
- f682cad Fix the issue of Nil/Zero-length-byte-array value (#2309)
- 23b677c Remove system channel from Test Network tutorial
- 1dc0b47 [FAB-15648] document update: Non-TLS orderer with etcdraft usage (#1678)
- b144d49 cherry pick test network doc chaincode deployment
- 7996176 [FAB-18398] Added osnadmin binary to tools image (#2275)
- 7debdef Remove unreachable and unnecessary code in gossip membership (#2294)
- f99cff0 Orderer deployment tutorial update
- b4548dd [doc] fix broken link
- a4a86d6 Minor create channel doc typos
- c8d3e08 Even more edits to docs for participation API (#2208) (#2281)
- 06866fb Revert "Minor create channel doc typos" backport
- e24a05e Pass GO_TAGS to tools container (#2278)
- c2758ef Raft configuration doc issue after mergify backport (release-2.3)
- 157f556 [FAB-18170] Endorsement policy page discusses NodeSDK
- f3cb99e [FAB-18392] Clarify scope and limitations of test network
- d486efb [FAB-18252] Documentation should reference Java chaincode support
- 377290d Remove anchor peers from configtx.yaml tutorial (#2257)
- e6b55b1 Update "add an org" tutorial to not use CLI
- cd578f3 Split command in "add an org to network" tutorial
- 0b2c755 Add more details to logging specification examples
- 56a0861 Minor create channel doc typos
- c8cc666 Update image filter used by integration tests
- 4d213ba Add Language Argument to DeployCC Calls
- 9ab9368 Check correct error
- 06eb9b1 [FAB-18378] Log warning when peer is lagging behind and cannot catch up
- e5e858a Fix unusual dash character in channel participation tutorial
- 5da3b0f [FAB-17039] Skip retrieving pvtdata from transient store when txid is missing (#2183) (#2200)
- cc5a77c More doc edits for system channel removal
- 0e774df Remove Short Names and Replace With Full Path in Fabric
- c91961c Edits to orderer and capabilities concept for participation API
- eb22bbf [FAB-17954] Document CouchDB JSON determinism (#2187)
- b1fb856 Fix name of CHANNEL_CONFIG_BLOCK in the Channel participation API tutorial (#2186)
- bd49126 Update README.md to include link to Fabric v2.3 documentation
- 94fffbb Orderer deploy guide edits for participation API (#2148)
- a455146 Fixes Hardened to Hardware
- 537ef5c remove repeated the
- 4c67ed3 update private-data sample instruction for Asset owner string
- ef8ff19 Remove reference to first-network
- ec81f3e Release commit for v2.3.0 (#2144)
This list of changes was auto generated.