Skip to content
Choose a tag to compare


Choose a tag to compare

v2.0.1 Release Notes - February 26, 2020


FAB-17458: Rolling upgrade: Different endorsement results on v1.4.x and v2.0.0 peers

In a rolling upgrade scenario where V2_0 channel application capability is not yet set,
and proposals are sent to v1.4.x peers and v2.0.0 peers,
the endorsed read sets did not exactly match in the proposal response between
the v1.4.x peers and v2.0.0 peers. A client would therefore have to get
endorsements from only v1.4.x peers, or only from v2.0.0 peers, making it difficult
to get sufficient number of matching endorsements to meet the endorsement policy.
If a transaction is submitted with insufficient matching endorsements, the
transaction will be invalidated at commit time with error message
"marked as invalid by committer. Reason code [ENDORSEMENT_POLICY_FAILURE]".
The proposal response is fixed in v2.0.1 so that the read sets will exactly
match read sets on v1.4.x peers, enabling transactions to be endorsed across
peers of different versions.

FAB-17479: Migrated Kafka cluster can be safely expanded later

When a new ordering service node was added to a migrated Kafka cluster,
but was not added to all channels, the ordering service node would crash.
The fix ensures that new ordering nodes can be added to a subset of channels.

FAB-17453: 'peer lifecycle chaincode package' required an MSP configured

'peer lifecycle chaincode package' is for local packaging of chaincode only,
and therefore no longer requires a MSP to be configured.

FAB-17059: Change collection membership eligibility checks to only compare mspID

When a new CA root cert was added to an organization in the channel configuration,
new peers with an identity from the new CA would not receive private data for
blocks prior to the channel configuration change. This is because the peer didn't
realize it was a member of the private data collection, even though it was
based on the collection's mspid. The fix ensures that the peer evaluates
private data collection membership based on its mspid. The fix is important
when rotating CA root or intermediate certs, for example in a side-by-side
migration scenario that uses new CA certs and new peers.

FAB-17519: Improve Discovery endorsement policy performance

Fix peer CPU spikes during evaluation of endorsement policy
combinations, due to expensive reflection.

FAB-17523: Endorsing peer was not honoring private data RequiredPeerCount

If there were not enough known eligible peers to meet the private data collection RequiredPeerCount
dissemination requirement, endorsement was succeeding rather than returning an error.

[FAB-17491] Do not disseminate private data for other organization's implicit collection

When using the new implicit private data collections in v2.0.0, in some use cases
private data needs to be written to each of multiple organization's implicit
private data collections in the same transaction. In these cases the endorsing peers were
disseminating the private data to each of the respective organization's peers.
Although not a security problem (each organization is authorized to receive its
own implicit collection private data), dissemination should be managed by the endorsing
peers of the implicit collection organization only. This fix ensures that only peers
of the implicit collection organization disseminate the private data to their own
organization's other peers.

[FAB-17515] Support configuring BlockValidation policy for orderer group

Prior to the fix, a configured BlockValidation policy (e.g. defined in configtx.yaml)
would be ignored. The policy is now applied in the channel creation transaction, and
must be specified.

Known Issues and Workarounds

FAB-12134: Same chaincode source receiving fingerprint mismatch error

When using the legacy chaincode lifecycle, chaincode installed in different
ways may result in "chaincode fingerprint mismatch data mismatch" error
upon instantiation. This may happen when installing chaincode by using
different SDKs. To workaround the problem, package the chaincode prior to
installation and instantiation, by using the "peer chaincode package" command.

Known Vulnerabilities

FAB-8664: Peer should detect and react when its org has been removed

This is a relatively low severity problem, because it requires a significant
conspiracy of network admins, but it will be addressed in a future release.

Resolved Vulnerabilities


For the full list of changes, refer to the release change log:


  • 1cfa5da Updates for fabric release v2.0.1
  • 7282895 [FAB-17515] Support configuring BlockValidation policy for orderer group
  • 618a4ce [FAB-17491] Do not disseminate pvtdata for other org's implicit collection
  • 727327d [FAB-17523] Endorsing peer was not honoring RequiredPeerCount (#716) (#729)
  • 371c435 Optimize inquire.IsSubset (#714)
  • bb46909 [FAB-17059] Extend private data integration tests to cover case when a
  • 0885c2f [FAB-17059] Change collection membership eligibility checks to
  • f4e4a95 [FAB-17472] Clarify doc and samples for NodeOU Certificate
  • c742dd6 [FAB-17453] 'peer lifecycle chaincode package' mandates does not need to init crypto
  • 4665ec5 [FAB-17479] Migrated Kafka cluster can be safely expanded later (#645)
See More
  • 61f5706 [FAB-14679] Update commercial paper tutorial for new
  • c63e674 Explicitly enumerate orderer and peer metrics
  • 2daa2b0 Add link to policies topic to chaincode for operators (#659) (#660)
  • dc8071c Update Copyright for 2020
  • f8b21b1 fix typo
  • 4961395 Fix typo in package error message
  • 993b7a0 [FAB-17458] check LifecycleV20 capability before getting cc info (#608)
  • 7a1d517 Remove 1.x video from 2.0 docs
  • 5bf6583 Remove Fabric functionalities doc
  • 361edb6 [FAB-17267] Move add an org to a channel tutorial to test network
  • b96f178 [FAB-17381] Update policy concept for test network
  • c987e77 Update branch to dynamic variable
  • 5fe6530 Add support for placeholder replacement in doc builds
  • 13d12e5 [FABCN-378] Update links to chaincode JSDoc
  • 721a6e7 Remove link for node SDK tutorial
  • 913d770 [FAB-17424] Fix broken link in DevApps connection profile
  • a521d2a Fix conditional_packages processing in UT script
  • 0432c3e Add changelog for v2.0.0
  • 77ff3d2 Install doc and script updates for v2.0.0
  • 324d2d1 Add release notes for v2.0.0
  • 5eec23d What's New updates for v2.0.0 release
  • 7f772f9 Add Core Maintainers to /docs in CODEOWNERS
  • 63228ea Revert "FAB-14693 Vendor updated fabric-amcl package"
  • a04d430 [FAB-17439] Add integration test for verifying fabric-chaincode-go
  • ac2f490 [FAB-17421] Reword links to contract APIs and documentation
  • 94eeecf Enable service discovery querying _lifecycle endorsers
  • 3777652 Validate label when packaging _lifecycle chaincode
  • 419690a [FAB-17431] Use two digit version for chaincode images
  • d25d2a5 Create a new Documentation Maintainers sub-group
  • e7fb9c7 [FAB-17303] Set RequiredPeerCount and MaxPeerCount defaults for implicit
  • 9bd0a95 [FAB-17439] Expose peer's MSPID to chaincode as an env var (#549)
  • be23695 Bump fabric-chaincode-go (#564)
  • 666a5b7 FAB-17410 Updated doc links to latest levels
  • 2777611 [FAB-17428] Deprecate --outputAnchorPeersUpdate flag in configtxgen
  • ded1729 Updating chaincode document.
  • da131ec Stop _lifecycle ccs that are no longer referenced
  • 5c6bdda No need to explicitly deregister handler from registry
  • 0f18fc9 FAB-16033 Update channel_artifacts location in doc.
  • 0da8233 Update resources in enable _lifecycle doc
  • 5131473 Update _lifecycle resources in configtx.yaml
  • 868da99 Improve chaincode lifecycle peer log messages (#530)
  • dbac8a5 Add disclaimer for commercial paper tutorial
  • f94d3b1 Remove references to instantiating a chaincode
  • 5cadc61 [FAB-17411] Update Fabric versions where necessary
  • 8556a43 [FAB-17265] Move private data tutorial to use test network
  • 1462df9 [FAB-16895] Move ledger benchmark tests
  • 22a0d2c Documentation update: external chaincode and index for db
  • b6a2325 Documentation update: external chaincode and index for db
  • 04e5312 Documentation update: external chaincode and index for db
  • fc16896 Documentation update: external chaincode and index for db
  • 03d8a85 [FAB-17400] Improve log message for approved definition
  • ca35d68 [FAB-17402] Test network doc user feedback fix
  • 9c6021d Add orderer.yaml BootstrapFile usage and default comments (#514)
  • 3b8224e Remove reference to First Network in network concept doc
  • 11358a4 FAB-17287: Update wallet description
  • b1260cb Fix integration test for static leader (#513)
  • c7d595a [FAB-17169] Add AZP Status Badge (#510)
  • 470f133 Static leader should not give up on retrieving blocks (#507)
  • 2d6becc [FAB-17266] Move CouchDB tutorial to test network
  • af66ef8 [FAB-17379] Fix print format for querycommitted
  • 3a66888 [FAB-15198] Document peer crash scenario when indexes are not installed
  • 21fc6f6 [FAB-17339] Refactor couchDB unit test (#482)
  • c491d69 Fix go routine leak in core/scc tests (#502)
  • 8aab447 Implement stop for runtime launcher
  • b578a96 Chaincode persistence uses period separator (#492)
  • 143d2e9 lifecycle cache should remove stale cc def references
  • 0bd45e5 [FAB-17173] Document that CouchDB indexes may not get applied in crash scenarios
  • 73303a5 Remove BYFN reference from private data architecture doc
  • 7d56fac [FAB-4955] Update doc for building on Windows
  • 0df1557 FAB-17315 english colon illegal filename problem on windows when lifecycle chaincode install
  • d0d935a Log message should start with upper case.
  • 58af762 Reject re-defining identical uncommitted cc def
  • ac9f694 Bump hyperledger/fabric-chaincode-go
  • 803434a Bump hyperledger/fabric-protos-go
  • dcdd599 [FAB-17370] Delete old info about shim’s Logger (#489)
  • 8318470 Reduce the number of peers in test networks
  • d80c5f5 Fixing Number in Chaincode for Operators topic
  • f101cab Remove t.Parallel from common/cluster tests
  • 83dacb4 Fix and chaincode label regexp and Backfill tests
  • 4549cfb Ensure we capture final line of chaincode output
  • 5d2cb8f Add channel name to blockpuller logger
  • 02f85b4 [FAB-17317] Add code to stop init_public container
  • 69ecb07 [FAB-17307] InitRequired param check for ApproveForMyorg (#462)
  • 04c1f85 Fix CODEOWNERS group name
  • f1c6d88 Small edits to upgrade docs
  • 80febba Fix Broken link in cc as a service doc
  • 9b25eab FAB-13625 Add memberOnlyWrite integration test
  • 2f80112 make correction of the docker-compose command in build_network.rst
  • 6ac19e5 Range query UT for keys with special or non-English characters
  • e4f00b9 Cleanup packaging utilities chaincode/platforms
  • 42606a5 Use go list -json to build go cc dependencies
  • 571842f Wait for orderer to terminate before restarting (#460)
  • 92af234 [FAB-17263] Update upgrade doc with peer docker command
  • f26c2b4 FAB-15817 Prefer last config in signatures metadata field (#363)
  • 269cb04 external chaincode service doc update
  • 12a2fd3 Remove gerrit specific .gitreview
  • 9e59923 Remove CAP theorem information from first network tutorial
  • bfc762b [FAB-17184] Skip pulling from remote peers if all remaining missing rwsets (#365)
  • ff7c083 [FAB-17301] Add documentation build instructions to contribution guide
  • d35acaa FAB-16120 Adding IT for MSP inconsistence (#305)
  • c939f45 Fabcar uses first-network instead basic-network
  • 2e2506d Point CODEOWNERS to group
  • 2dae4c0 Remove Gerrit reference (#453)
  • d89b9a6 Test Network tutorial header fix (#452)
  • c34eae3 [FAB-17262] Fix instructions in build_network
  • 2a39779 [FAB-17279] Discovery supports collection level endorsement policies (#445)
  • 65f8a01 [FAB-17297] Use wget in
  • 74345be FABN-1428: Relocate Node SDK documentation
  • f20eeb4 [FAB-17231] Update externalBuilders description in sampleconfig (#443)
  • c54b8c0 [DOC] Standardize orderer address env var
  • 9495e67 Remove CKA_PRIVATE from pubkeyT to broaden compatibility with HSMs
  • 0b5923b [FAB-17238] Refactor couchdb test in ./core/ledger/
  • de14789 FGJ-67: Relocate Java SDK docs
  • fa0f68c Increase open file limit to address Gossip flakes (#430)
  • ca905ee fix wrong protobuf import in mgr_test.go
  • 2fbd83d [FAB-17176] Make decode hooks consistent in viperutil (#424)
  • 28c6efd define couchDB connection pool size
  • c25924a [DOC] Mention deprecatation of Kafka and Solo (#425)
  • 2902908 [FAB-17272] Fix Docker Build Context
  • f0ef0b5 FAB-17228 External cc clients/servers use consistent key/cert model (#407)
  • b3ac630 Fixing operations guide toc for new cclauncher materia
  • c80d1c0 FAB-17233 Update chaincode package comment
  • fcfe51a [FAB-17248] Prepare for fabric next rel (v2.0.0)
  • 21594ac Getting started link fix
  • 977ed80 Fix
  • 242b1e3 [FAB-17247] Release fabric v2.0.0-beta
  • 16d8436 Update byfn download command
  • 6de9dc2 Change 'node' language to 'javascript'
  • 7cd1eda Add release notes for v2.0.0-beta
  • 5deab9a Merge pull request #399 from pamandrejko/FAB-14083
  • 402a077 [FAB-17199] Add new test network tutorial
  • 2420fa5 Merge branch 'master' into FAB-14083
  • 1432b66 [FAB-14083] Chaincode as an external service documentation
  • f93acfa [FAB-17239] What's new links 2.0 beta
  • c37f8cf [FAB-17240] Small fix to upgrade doc
  • 2e44a2a [FAB-16906] Chaincode launcher doc
  • 79a4e8c Modified doc links and a few edits
  • e73407f [FAB-14086] Chaincode launcher doc
  • c3a3723 Merge pull request #384 from wlahti/FAB-17160
  • 5e4ede7 [FAB-16754] Upgrade doc
  • 339e682 Add two digit release variable
  • 7d91ef4 What's New in Fabric v2.0 Beta
  • a4bf700 Update prereq doc for Go 1.13.x
  • cce46ac Add an instantiation policy cache layer
  • 6f32be4 FAB-17160 Ensure peer can be started without any docker requirements
  • c2c5183 FAB-17170 externalbuilder pass metadata unmangled
  • e7f5ab8 FAB-16731 Use org1peer0 in lifecycle test
  • 5b722b5 Merge pull request #385 from jyellick/FAB-17170-lowercase-json
  • 84845ff FAB-17170 Peer CLI should encode mdata lowercase
  • b1d37c6 Attempt to fix flaky integration ApproveForMyOrg
  • 206795d Merge pull request #377 from satota2/FAB-17196
  • 77de117 Merge pull request #381 from idiota101/gossipUpdate
  • b430f81 [FAB-16125] fix allow ledger test to succeed when no tests are run
  • 76765db Copy if rename fails during external build
  • 49ed882 [FAB-17196] Fix broken md structures in docs
  • 3e3b0fc [FAB-17135] Document private data enhancements in v2.0
  • 96fefd0 FAB-17222 updating go version to go1.13.4 in vagrant dev_env
  • 00eecd1 Fix incorrect block metadata documentation (#378)
  • 4149c6d Merge pull request #376 from yacovm/tlsRotate
  • 3cce10a [FAB-17220] Dynamically build TLS config in Raft client handshake
  • f5799c0 FAB-17057 Generate crypto during orderer/common/server UT (#373)
  • c3720b4 Fix for FAB-16996, Removed solo and kafka refference in BYNF doc
  • 05706bb Merge pull request #370 from mastersingh24/fab-14693
  • 46ccaf0 [FAB-15035] Remove couchdb HTTP Request headers from debug log
  • bf085a2 FAB-14693 Vendor updated fabric-amcl package
  • 1b8be06 [FAB-16937] complete by hooking CC fwork with ext. CC
  • 4bde8c4 [FAB-17141] Update fabric docs for updated go programming model
  • 0b4ca1c [FAB-17116] Add orderer config change to release note
  • 09ad9dc [FAB-17188] unit test for couchDB revision fetching functions
  • 64c888f Bump IT pull retry threshold to 7s
  • 31a2d51 FAB-16437 Remove common mocks
  • 2402250 FAB-16437 Remove unused common/mocks
  • 6de732f FAB-16437 Remove common/mocks/config
  • a1f2794 FAB-16437 Remove common/mocks/peer
  • 5025cad [FAB-17150] Clean up temp dir on configure_test
  • 0bfcd36 Merge pull request #357 from nikhil550/FAB-16157
  • 169fc51 [FAB-15724] Improve migration integration test
  • f84b1f0 Merge pull request #352 from mastersingh24/kill-common-mocks2
  • f02440d Merge pull request #348 from caod123/fix-it-flake
  • 0999e0e [FAB-16157] Remove references to alpha and disclaimers
  • fc0a9e9 [FAB-17165] Reduce pvtdata pull-retry threshold to 3s in IT core_template
  • 9dcb65e FAB-17177] Config block shouldn't verify itself in block replication (#355)
  • 9fa8172 Merge pull request #333 from fnlctrl/patch-1
  • c0f019e Merge pull request #323 from Shubham-koli/patch-1
  • 03576df fixed typo.
  • e6a9bde FAB-16437 Remove common/mocks from v20 validator
  • b8aaafc FAB-16408 Deprecate the Kafka based orderer
  • 6e52f56 FAB-16437 Remove common/mocks from v13 validator
  • b6830f1 FAB-15343 Document removal of SCC Plugins
  • 24d1954 replace http with https in install.rst
  • f2dbb66 Merge pull request #321 from guoger/err-msg-improvement
  • e3188cf FAB-16437 Remove common/mocks from v12 validator
  • 6044822 FAB-16687 reduce mutex contention in validator
  • 151ea02 [FAB-17133] Add branch to AZP trigger
  • da8b99c Amend GitHub workflow guidance
  • 94c3a09 Merge pull request #337 from btl5037/azp_gate
  • 29dd911 fix for FAB-17156, clean up main_test folder by defer
  • 7a309c7 FAB-17161 improve error message
  • f0422d6 [FAB-17166] Gate UT, IT and DocBuild
  • 4947729 fix FAB-17153, change temp folder mode to remove
  • 0264eb6 fix FAB-17148 defer to delete 'bccsp-sw' directory (#328)
  • ab4d595 [FAB-17132] Add Parallel Strategy to Integration Tests
  • ea93b8f Merge pull request #325 from guoger/FAB-17158-ignore-test
  • e779196 [FAB-17135] Private data sharing doc
  • db73af2 fix FAB-17146
  • 027d751 FAB-17158 ignore util test using build tag
  • 4cec60e Merge pull request #327 from yacovm/golintgossip
  • 01d1eb4 Golint gossip/gossip/
  • c5d4087 FAB-17157 rm createTempDir method
  • e939f9c [FAB-17116] Use bootstrapmethod for raft consensus
  • dd26403 Merge pull request #313 from btl5037/action_trigger
  • 7f30434 [FAB-17136] Fix the typo error (#318)
  • 543e38c FAB-16393 Cleanup endorser logging
  • 24afa12 [FAB-11241] Move Profiling init Service external
  • cfae78e [FAB-17133] Add Action to Trigger CI
  • db3b1cc Remove read-only note and Gerrit reference
  • 8e33173 FAB-17105 - Fixing broken links
  • 87f6240 Merge pull request #301 from maniankara/master
  • d00b96e Merge "[FAB-16117] Add test to kill cc container in IT"
  • c18a194 docs/source/channel_update_tutorial.rst: CHANNEL_NAME variable missing in 2 places in channel update tutorial
  • fb56820 [FAB-17123] Update dep for fabric-protos-go
  • 8d073c1 [FAB-17123] Revert FAB-17038
  • fc86d1a Add
  • ef4b79f Merge "FAB-16812 Update bootstrap script"
  • 2869d92 Merge "[FAB-16376] MSP_1.4.3: support for admincerts"
  • 71f40ed Merge "[FAB-17115] Update doc for GitHub migration"
  • 07b2f14 Merge "[FAB-15900] Add pkcs11 section to orderer.yaml"
  • 75e51fb Merge "[FAB-16890] move build out of container runtime"
  • 78471de Merge "[FAB-16842] prep for for ext CC config"
  • 603dbf7 [FAB-16117] Add test to kill cc container in IT
  • 01a80e4 Merge "FAB-16477 Fix regression in orderer bootstrap"
  • ecec58b [FAB-15900] Add pkcs11 section to orderer.yaml
  • 6d98cac [FAB-17115] Update doc for GitHub migration
  • 4a75c13 Merge "[FAB-16118] Add IT for MSP unauthorized Peer"
  • a1b83d4 FAB-16477 Fix regression in orderer bootstrap
  • 8105eff FAB-16812 Update bootstrap script
  • 061ef6a [FAB-16118] Add IT for MSP unauthorized Peer
  • fc53b9d Merge "[FAB-17086] Update references in master for v1.4.4"
  • 4a3c65c Merge "[FAB-16574] Cache results of msp.Validate function"
  • 0ae7c3d Merge "Add rebuild test with real ledger data"

This list of changes was auto generated.