v2.2.0
v2.2.0 Release Notes - July 9, 2020
v2.2 is the first long-term support (LTS) release of Fabric v2.x. Fixes will be provided on the v2.2.x release stream until after the next LTS release is announced.
What's New in Hyperledger Fabric v2.2
FAB-13460: Add Support for TLS 1.3
TLS 1.3 is now supported and will be utilized automatically if client supports TLS 1.3.
FAB-17401: Add function to query the details of the approved chaincode definition
Add support to query an organization's approved chaincode definition from its peer.
The function is available by using peer CLI command peer lifecycle chaincode queryapproved
.
Fixes
Return Error From PKCS11 CreateSession
The prior implementation of BCCSP performed a fatal
logging function in the event it could not open a session
with the HSM. It was possible for the fatal log to occur when an expected error
occurred, i.e., the HSM had reached its maximum session handles.
Instead of issuing a fatal log call, an error is returned so that
the error can be properly handled.
FAB-17819: Discovery returns user friendly errors
Service discovery endorsement service error message "cannot satisfy any principal combination" is
improved to return a more specific message, either "no peer combination can satisfy the endorsement policy"
or "required chaincodes are not installed on sufficient peers".
FAB-17774: Support orderer restart without system channel genesis block
When BootstrapMethod was set to 'file', the system channel genesis block
was required to be passed for every orderer service start. The system
channel genesis block is now only required for the initial orderer start.
FAB-17844: External builder fails to copy symlinks from build output into persistent directory
Previously, the external builder code did not check for symlinks in build output when copying them.
This resulted in the resolved files being copied as files instead of symlinks. The external builder
now copies them as symlinks instead of copying them as files into the destination directory.
Errors should be checked when orderer gRPC server is serving requests
gRPC errors are now checked when servicing the orderer atomic broadcast gRPC service.
FAB-17900: Fix environment variable override bug
Integer config values for peer and orderer could not be overridden with environment variables.
FAB-17951: Fetch correct node id for orderer consenter validation
Config update validator may incorrectly reject updates if some nodes are inactive.
FAB-17875: Fix ordering service node leader election failure
Previously with Raft consensus, when one ordering service node was deleted
from a channel and rejoined later, it would be assigned a new Raft id.
However, in some cases the ordering service node still used the old Raft
id. Other ordering service nodes including the leader are using the latest view and believe
that the rejoined node would use a new Raft id. This may result in leader election failure and no new
transactions would be accepted. The fix ensures the correct Raft id is used after tracking the latest config block.
Private data performance optimization: purge transient store in background
Private data performance is improved by purging entries present in the transient store in the background.
FAB-17933: Fix cache update logic for installed chaincode info when an empty or uninstalled package ID is specified
Previous cache update logic for install chaincode info did not work properly when an empty or uninstalled package ID was specified.
FAB-17539: Always remember gossip anchor peers in membership
Gossip removes a peer from its membership cache if no new heartbeats are received from the peer within a timely manner.
If a network partition persists for too long, peers of different organizations never re-establish communication because all membership is purged.
With the fix, anchor peers are no longer removed from the membership cache even if they are offline.
Therefore, after the network partition is healed, peers among different organizations can reestablish communication as long as anchor peers are reachable.
Note: Fixes included in v2.1.1 release notes are also included in v2.2.
Changes
FAB-17786: upgrade_dbs peer command now drops state CouchDB databases
Previously the upgrade_dbs command did not automatically drop state CouchDB
databases and therefore a separate step was required to drop CouchDB data
when upgrading to v2.x. upgrade_dbs command now automatically drops
state CouchDB databases. CouchDB state database will get rebuilt on the first
peer start after the upgrade to v2.x. CouchDB database service
must be available when running upgrade_dbs command. Similarly,
rebuild-dbs also drops state CouchDB data now, so that state database
can be rebuilt on the next peer start.
FAB-17869: Allow TLS CAs with overlapping issuers
The client root TLS CA certificate pool construction didn't allow different issuers
with the same subject name to exist in the CA cert pool. Different issuers with
the same subject name are now allowed.
Fabric CouchDB tests have been updated from CouchDB 2.3.1 to CouchDB 3.1.0
Support is added 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-17917: Peer CouchDB default maxRetriesOnStartup
property has been updated
Peer property peer.ledger.state.couchDBConfig.maxRetriesOnStartup
default has
changed from 12 to 10. The time between retries doubles after each attempt.
Therefore if CouchDB is not yet started, the peer start will now retry
for about 2 minutes rather than 16 minutes before retries are exhausted.
FAB-16435: Peer gossip defaults have been updated
Block dissemination via gossip may be removed in a future release,
since it is more straightforward for peers to simply pull blocks from ordering service.
The gossip defaults have been updated to prepare users for this possible change, so that peers by default
pull blocks from ordering service, do not use leader election, and do not use block transfer across peers.
Additionally, two block cache default sizes have been lowered to reduce the memory
used by a peer when it has joined many channels.
The new defaults are as follows:
peer.gossip.orgLeader: true
peer.gossip.useLeaderElection: false
peer.gossip.state.enabled: false
peer.gossip.maxBlockCountToStore: 10
peer.gossip.state.blockBufferSize: 20
Default configuration values are included in the peer docker image, therefore if you apply
the new peer image the new defaults will be effective unless you specifically override them
in your configuration.
Build Your First Network sample and tutorial has been removed
Users are recommended to use the test network introduced in v2.0 instead,
and to review the new deployment guides.
FAB-18028: Replace environmentWhiteList
peer property with propagateEnvironment
Peer configuration property peer.chaincode.externalBuilders.environmentWhiteList
has been replaced with peer.chaincode.externalBuilders.propagateEnvironment
.
environmentWhiteList
continues to work but is deprecated.
Dependency updates
Fabric project now uses Go modules for vendoring code dependencies.
Bump Go gRPC to 1.29.1.
Bump Go to 1.14.4.
Bump Alpine to 3.12 in Fabric images.
CouchDB 3.1.0 is now the tested CouchDB version.
Deprecations
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.
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
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.
Change log
For the full list of changes, refer to the release change log:
https://github.com/hyperledger/fabric/blob/release-2.2/CHANGELOG.md#v220
Changes:
- 5ea85bc Fabric v2.2.0 release commit
- 7b1a1a2 Add release notes for v2.2
- d2dfc63 Improve peer CLI error message when no orderer address passed (#1555)
- 9c3c599 [FAB-18054] Remove default value for top level orderer addresses if (#1550)
- ff00d9b Improve private data logging (#1545)
- 62dfb2d Add org name to consortium error message
- 0de7fc1 Restore couchdb logger (#1532)
- 2169710 Use tcp for statsd and poll for metric arrival
- 568d346 Fix chaincode package example path
- ac3f596 Remove Thirdparty Images From Bootstrap Script
See More
- 9b187f5 Edits to style guide
- a6ad407 Upgrade updates
- 8fd785a Deploy Chaincode Doc
- 4591d52 Add Check For CouchDB 3.1 (#1491)
- 529a931 Only canonize ECDSA signatures in MSP:IsWellFormed (#1498)
- 3d305f7 Disable channel participation API in release-2.2
- a7dc1d4 [FAB-18028] Create new PropagateEnvironment key
- c44e603 Remove BYFN
- da4f52f Remove BYFN from the toc
- 19d79a4 [FAB-18034] Fixed FabCar docs formatting.
- 3ee83a7 [FAB-18034] Improve FabCar docs , Fix queryAllCars description
- f743289 [FAB-18034] Improve FabCar docs with better context, Fix queryAllCars description
- b99f6ae Eliminate warnings when building documents
- f0285ca DOC fixed broken hyperlinks fabric doc, updated old output in go.mod
- 580f90a [FAB-16435] Improve gossip defaults - disable state transfer (#1478)
- ec42cbd [FAB-16435] Improve defaults - maxBlockCountToStore & blockBufferSize (#1477)
- 325b762 import collection configs from snapshot (#1460)
- 327765d Remove DocBuild Job From CI
- c222790 [FAB-16435] Improve gossip defaults - Peers to be leaders by default
- dd13262 [FAB-18030] Discover all peers first before testing gossip membership to avoid flakes
- 09de0b8 Fix unsupported syntax for policy in the documents
- bc3c63e check iter error (#1468)
- 701bf56 [FAB-16789] per PR feedback, fixed sentence about peer pulling block from orderer on joining channel
- 34cea91 check leveldb iterator error (#1428)
- 68f68ca Revert "rm old proto related code from transient store (#1464)" (#1467)
- c712090 rm old proto related code from transient store (#1464)
- 02f0569 [FAB-17992] Remove ledger blockstore data for a channel (#1423)
- ef97677 Update configtx library dependency to v0.0.5
- a9d25f0 Remove references to blacklist and whitelist
- 3e29ecd Fix logging of recovered in NewPublicNymFromBytes
- 52436d3 rm interface from confighistory store
- afc2720 Remove whitelist comment from core.yaml
- d91de16 [FAB-16789] per PR feedback, fixed sentence about peer pulling block from orderer on joining channel
- c59d45e [FAB-16789] removed sentence about P1 peer using orderer, per PR comment.
- 0670442 [FAB-16789] Fix peer join description in network key concept
- d728cd6 Restore assertions related to peer address config
- 193a7de [FAB-17539] Always remember anchor peers in membership (#1422)
- 65345cf Explicitly set gossip.endpoint in integration test (#1455)
- f29b7f1 validation (occ) pkg -- consistently use testify/require (#1454)
- 2b408a6 txmgr pkg -- consistently use testify/require (#1453)
- fb97505 statecouchdb pkg -- consistently use testify/require (#1449)
- 5f098ec statedb pkg -- consistently use testify/require (#1450)
- 98f1858 rwsetutil pkg -- consistently use testify/require (#1452)
- 2188eba queryutil pkg -- consistently use testify/require (#1451)
- 65e88bc [FAB-18021] Improve log messages in
msp/configbuilder.go
- 841e7f0 ledgermgmt pkg -- consistently use testify/require (#1445)
- 341fa8c privacyenabledstate pkg -- consistently use testify/require (#1447)
- 8f7cef3 cceventmgmt pkg -- consistently use testify/require (#1443)
- 9f18781 confighistory pkg -- consistently use testify/require (#1444)
- def99d1 pvtstatepurgemgmt pkg -- consistently use testify/require (#1448)
- fe7fd6c pvtdatapolicy pkg -- consistently use testify/require (#1446)
- 833438f kvledger pkg -- consistently use testify/require (#1440)
- 0c67955 pvtstore pkg -- consistently use testify/require (#1439)
- d74a116 stateleveldb pkg -- consistently use testify/require (#1438)
- 7548f29 replace testify/assert with testify/require (#1437)
- 87409f0 Remove call to couchdb API _ensure_full_commit (#1435)
- afabe64 Channel participation api - redirect from base V1 URL (#1433)
- 091c821 Set Cache-Control no-store for channel participation list (#1421)
- f1154ee [FAB-17993] Skip modifying _users security object (#1430)
- 06ddfbc FAB-17910 Ch.Pat.API: join member w/o onboarding (#1431)
- 3bb28dd [FAB-17963] Ch.Part.API: Validate join block (#1393)
- 68e363d Rename variables in blocksotre code for readability
- 571ef21 Integration test for channel participation API list (#1391)
- 9043107 Remove testingInfo from the root of the project
- c4d3802 Break UT into sub-tests for easy maintenance (#1424)
- da0c6ef [FAB-17897] Document /version endpoint (#1396)
- cff2f18 Bootstrap blockstore from snapshotted TxIDs (#1413)
- a6ad9d8 [FAB-17270] Create a channel tutorial (#1105)
- c15d254 FAB-18013 Ch.Part.API: orderer main.go code hygiene (#1416)
- 865a1ce [FAB-17933] Fix cache update logic for installed chaincode info when an empty or uninstalled package ID is specified
- 17a825a Set http header entries before writing header
- a5411a1 run transient store purge in background (#1411)
- f1fb1a1 Ch. Part. API: etcdraft consenter w/o system channel (#1376)
- 2fdbafb use iter.Seek() instead of creating new iterator (#1397)
- 3a2ab64 Remove dead/accidental QueryInstalledNoReferences helper func
- 95fb8dd Add go plugin note to pluggable {e,v}scc doc
- 376923b Nominate Senthilnathan Natarajan as Fabric Maintainer
- 0d5e664 [FAB-8443] Update sampleconfig chaincodeAddress comments (#1386)
- 5037efc FAB-17985 Registrar newChain not to copy chains map
- 04c2a96 [FAB-17875] Fix OSN leader election failure
- 946016f Fixed a typo (that that)
- 83b039e add iter.Seek() in leveldb wrapper (#1390)
- 95f87c8 Update Pipfile to support localization
- fcf9194 FAB-17951 fetch correct node id for validation (#1367)
- 1d4ec99 Bump Go Version in Vagrant
- 54549c6 Bump Go and Alpine Version
- 32fc629 add rlock to IsEmpty() in leveldb wrapper (#1388)
- c9cf352 Fix the constructor message in complex queries
- 5172ec4 Regenerate proto to sync the go code
- 6c27f01 [FAB-17795] Build channel metadata retroactively if not present (#1369)
- efa5a72 Update private data tutorial for contract api
- e137a20 Update fabric-config dep to v0.0.4 and associated int. test (#1378)
- fe6fbb4 FAB-17967 Updates for new language contributors
- 3d38abe FAB-17912 Ch.Part.API: reject joins (#1375)
- 6598f88 Add FullScanIterator to export channel's data present in the CouchDB (#1348)
- 071a613 [FAB-17958] Delete
--tls
extra arguments from documents - 0dd6b68 Add negative tests for channel info provider (#1371)
- cc0f781 Update vendored fabric-config dependency to v0.0.2 (#1368)
- a699578 FAB-17955 Ch.Part.API: Safe access to system channel (#1365)
- 444f29a [FAB-17942] Add channel info provider to enable ledger to query all channel configs (#1352)
- f8f6457 Add ExtractMSPIDsForApplicationOrgs util method to channelconfig (#1363)
- fcf1615 Add generateSnapshot function on kvledger
- d1ee202 FABG-943 Docs: Go SDK adds new programming model
- 450ba3a FAB-17890 Ch.Part.API: allow registrar to list a single channel (#1349)
- 17f5c7f handle empty namespace in FullScanIter - levedb (#1360)
- ab88de1 Updates in master for v2.1.1 release
- 90a4665 Backfill test for BCCSP environment overrides...
- 330da90 Remove s390x, powerpc64le from RELEASE_PLATFORMS
- adf7436 [FAB-17900] Fixes numeric env variable override bug
- 7199378 [FAB-17900] Update BCCSP.PKCS11.Pin in examples
- 4862f56 [FAB-17935] Change unnecessary warning log line to debug in gossip (#1350)
- 55308c7 Remove unnecessary extension of osn (#1351)
- 4d8b3cc fix infinite loop during full range query (#1347)
- 251e989 fsync and do not generate empty files in snapshots (#1345)
- 41f8b0a [FAB-17059] Add missing mspID when init MembershipProvider.
- 5b036f1 [FAB-17471] Fix OrdererType key to correct line
- 6be8c09 [FAB-17927] Add AllChaincodesInfo to DeployedChaincodeInfoProvider (#1331)
- d71767c _lifecycle ignore previous build failure during install (#1280)
- c428e2a Revert "Bump viper version to the last working commit"
- 2689ed2 Use protolator from fabric-config
- 7fa9da9 Update commercial paper doc to use enrollUser.js
- cc75716 FAB-17841: Ch.Part.API: Remove channel REST handler (#1330)
- d8eb093 Remove txmgr interface
- 19b76b1 Fix some typo in docs
- 3a30ba7 add NOTICE file
- 83f884f Add NOTICE to license ignore list
- 90442af Retire dormant Fabric maintainers
- 1bebd00 Spelling: s/chainocde/chaincode/g
- 853d555 FAB-17840 Ch.Part.API: Join channel REST handler (#1305)
- 019cecc Fixed write_first_app.rst typo
- 445b8f6 Address more concerns highlighted by linters
- c799dcc Address remaining 'gosimple' linter issues
- 0d1c494 Fix spelling errors identified by misspell
- 0e21590 Refactor resetLoop to range instead of for/select
- 07a7112 Apply gosimple checks to consensus/kafka
- 95e1abc Remove unused mockReceiver, add error checks
- b73f95c Remove unused MockPolicyCheckerFactory from policy
- 7e15769 Address ineffectual assigns in protoutil tests
- 3c87a12 Remove unused struct from protoutil tests
- 79d9584 Remove unused rwsetScanner from endorser tests
- 315dd45 Remove dead mockBuilder from dockercontroller
- 36f2c62 Remove unused helpers from raft suite
- b47f547 Remove dead code from txvalidator/v{14,20}
- 39bd29a Remove dead struct from blockindex_test
- b53ac0a Remove unused variable from flogging package
- b382384 Use correct file permissions in cft_test
- b7060f7 Remove unused structure from statecouchdb
- 640dce3 Add error checks to cryptogen/ca/ca_test
- 4a5238c Remove dead struct, add err check to int/ledger
- a613dae Remove unnecessary returns and use sort.Strings
- e8727c5 Remove dead code from etcdraft/blockcreator_test
- 27560df Add error checks in deliverservice/config_test
- 8c57842 Simplify append loop, add err check to discovery
- 600ce8a Remove dead code from internal/pkg/comm tests
- 7fde3f6 Cleanup error handling in orderer/common/bootstrap
- 8b0c0e4 Remove dead code: getCryptoHashIndex
- 451fe05 Minor refactor of gossip integration test
- b969b28 Address linter issues in integration/chaincode
- 9606553 Use Errorf instead of errors.New(fmt.Sprintf(...
- e402b0d Remove dead code from pkg/comm/connection_test
- 88f19f9 Add error checks to integration/{raft,sbe}
- 4f3146e Remove dead code, add error checks to common
- 4e9790a Simplify extractOrdererConsensusType
- 22c280e Add error checks, remove printf for static strings
- 34b3e34 Silence usage and errors during cli tests
- 5ad0a4f Bump viper version to the last working commit
- 7861a4d Remove short test checks, fix broken bccsp tests
- e5634e0 Pass HashProvider to ledger instead of Hasher
- bdfe1af Update images/peer/Dockerfile
- e622699 Add nsswitch.conf to the orderer and peer docker images
- 8559997 Contain the dependency on bccsp
- 839a4fa Update Prereqs for Fabric users
- 50f8ee2 Provide more context in identity deserialization warning msg (#1256)
- 955882e [FAB-17436] Add documents for
queryapproved
command (#1310) - 49613fe [FAB-17435] Add integration tests for
queryapproved
command (#1309) - 4118e9f Generate statedb snapshot files
- 6e243ad Improve error message when CLI cannot send to orderer (#1308)
- 4454188 [FAB-17434] Add
queryapproved
command to query the details of the approved chaincode definition (#1243) - 48768be Add ExportConfigHistory() API to confighistoryDB (#1288)
- 2e6860e Errors should be checked when orderer grpc server is serving requests
- c571271 Fix Second-Chance Algorithm issue.
- 93b8bd2 Fix script help text in the test network document
- 1184ac7 Change default CouchDB maxRetriesOnStartup to 10
- 69a567d fix test network docs typo
- a4df4c3 FAB-17889 Ch.Part.API: Registrar channel list (#1290)
- e9c4f28 Fix the installed binary list in the document
- 59bdd85 [FAB-17844] Copy symlinks as-is in external builder output
- d638b02 [FAB-17793] Generate db name to namespace mapping for state couchdb (#1268)
- 80e1fa1 [DocUpdate] chaincode package tutorial
- 05491f2 Add integration-test-prereqs target and update doc
- d8b52ed Address issues flagged by shellcheck
- 663a9bf FAB-17839 Ch.Part.API: List channels REST handler (#1232)
- 0defb0e Add export to deploy CC tutorial
- a332029 Should use Debugf instead of Debug
- 921a4e7 cleanup code
- 9524f0b [FAB-17865] Update Fabric upgrade doc for dropping CouchDB
- e461141 Remove adding PWD to path in tutorials
- 746111d [DocUpdate]configtxlator decode/common.ConfigUpdate
- 132c80b Clarify error message when lscc chaincode install fails during build (#1276)
- 02702b6 Merge first component of create channel tutorial
- 9715155 minor refactoring of pvtstatepurgemgmt (#1252)
- 49f1ade Update master references for v1.4.7
- f067987 Replace link to removed topic with link to relavent image
- 6bc8159 Enable stateleveldb for scanning for snapshot files generation
- fad602d Update vendored fabric-config version and associated integration test (#1265)
- fc64269 Reset golang.org/x/sys to commit ef0ce1748380
- bcc031a Fix some typos
- 6316b46 rm DB interface from privacyenabledstate pkg (#1242)
- 3271b6d [FAB-17886] Fix default value of
sequence
parameter to empty (#1262) - f7dc712 Cleanup macOS prerequisites and instructions
- 027cab2 Remove references to libtool
- ee0cd00 FAB-17874 serialize message delivery in raft UTs
- 51ed7af Fix misleading doc statement
- 244951e [FAB-17438] Add links to CA deployment Guide from Fabric Deployment Guide
- 398401d Correct HSM environment variables
- c6e5840 Remove launchDir from session and cleanup test
- 33a864d Externally built and launched chaincodes cleanup on signal
- f8654e2 [FAB-17846] Add clear statements indicating that external chaincode builder will likely require custom packaging of peer image
- 9277b0e [FAB-17433] Add _lifecycle function for querying approved chaincode (#1220)
- 6d7a21b Use snapshot file creator in blockstorage
- e12530c Add snapshot file creator and reader functions
- cc92b8d test for commit hash computation's backward compatibility (#1240)
- 42d6581 Improve test coverege for errors (#1068)
- 14e5f8a [FAB-17862] Allow upgrade-dbs to drop all dbs in multiple runs (#1236)
- 299e170 tests for commit hashes with rollback and reset (#1221)
- 3034976 [FAB-17863] Enhance rebuild-dbs to drop CouchDB state database (#1235)
- 5cae0f5 [FAB-17864] DropApplicationDBs should return error when createCouchInstance fails (#1230)
- 5b63cef [FAB-17869] Allow TLS CAs with overlapping issuers (#1229)
- a0e979b Update CONTRIBUTING guide
- 27d1beb [FAB-17640] Remove pkg/configtx and import as hyperledger/fabric-config
- e4c1fcc Validate TLS certs during raft consenter addition (#1223)
- fcbc3f3 Clarify the deliver access denied message (#1224)
- 25e5c3e reduce #arguments in a few kvledger methods (#1210)
- 5b4f9e6 Add function in blockstore to export TxIDs
- b049276 Update the vagrant dev environment
- 56642ec FAB-15710 Ch.Part.API: orderer config & hook into http server (#1218)
- c221a97 [LEDGER] rm interface from pvtdatastorage pkg (#1217)
- 0b695e1 [FAB-17831] Use generic constant/var names in dataformat.go (#1212)
- 74c1cdb Update grpc-go to v1.29.1 (#1213)
- 7778c49 [LEDGER] Move UpdatesBytesBuilder to txmgr pkg (#1209)
This list of changes was auto generated.