v1.4.10 Release Notes - January 27, 2021
Fixes
peer and orderer PKCS#11 - Always Finalize the PKCS#11 FindObject Operation
In certain error paths, a PKCS#11 session was not finalized, leaving the session
in a locked state so that it could not be reused.
This fix finalizes session handles even in error paths, so that the session can be reused
by subsequent calls.
orderer - Allow tick interval override via orderer.yaml
If a raft network becomes unstable, sometimes, adjusting the tick
interval duration can be effective to restore it. However, the tick interval is
stored in the channel configuration, so if the network is not operational,
modifying it is very challenging. This fix adds Consensus.TickIntervalOverride
option to orderer.yaml configuration, allowing the channel configuration parameter
to be overridden from the local configuration.
FAB-18244: orderer - Single node orderer will not start due to inconsistent state
If using a single node orderer, it was possible to get into an inconsistent state where
a Raft WAL snapshot was taken but an in-flight block at the associated height is not yet written.
This fix resolves the inconsistent state by writing the last block, so that the
single node orderer can start.
orderer - Remove duplicate orderer server TLS root CAs
This fix reduces processing overhead when an ordering service node participates
in many channels.
peer - incorrect handling of values set to empty byte array in node chaincode
Peer should handle key values set to nil or empty byte arrays as a delete of the key.
While the behavior worked as expected when using Go chaincode and Java chaincode, if using
node chaincode it did not work correctly when setting key values to empty byte arrays.
This fix ensures that peer will interpret empty byte arrays as deletes even for node chaincodes.
If using node chaincode with private data, if you had set private data values to an empty byte array,
the private data hash would have been committed incorrectly to the state database.
To repair the state database, after applying the fix, with the peer stopped,
request that the state database be rebuilt by calling "peer node rebuild-dbs"
or by deleting the state database. Upon the next start, the peer will rebuild the state
database from the already processed block store.
If subsequent transactions had referenced the existence of such a private data hash by
calling GetPrivateDataHash, then the subsequent transactions may have been
processed incorrectly and the peer will need to additionally reprocess blocks,
which can be triggered by calling "peer node reset" instead of "peer node rebuild-dbs".
If using regular channel data only and not private data, the empty byte array will
not have been committed, and therefore no action is required on the peer beyond applying the fix.
Dependencies
Fabric v1.4.10 has been tested with the following dependencies:
- Go 1.14.12
- Fabric baseimage 0.4.22
- CouchDB v2.3.1
Changes, Known Issues, and Workarounds
FAB-12134: Same chaincode source receiving fingerprint mismatch error -
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
None.
Deprecations (existing)
The following functions are deprecated and are targeted for removal in a future release.
Support for automatically vendoring the chaincode shim into user chaincodes
The fabric-ccenv image which is used to build chaincode, currently includes
the github.com/hyperledger/fabric/core/chaincode/shim ("shim") package.
This is convenient, as it provides the ability to package chaincode
without the need to include the "shim". However, this may cause issues in future
releases (and/or when trying to use packages which are included by the "shim").
In order to avoid any issues, users are advised to manually vendor the "shim"
package with their chaincode prior to using the peer CLI for packaging and/or
for installing chaincode.
Support removed in v2.0. For more details see FAB-5177.
Support for CAR chaincode package format
Support for packaging chaincode using the CAR format will be removed in
a future release.
Support removed in v2.0. For more details see FAB-14720.
Support for invoking system chaincodes from user chaincodes.
System chaincodes, for example QSCC, are intended to be invoked by
a client rather than by a user chaincode. Invoking from a user chaincode
may cause deadlocks.
Support removed in v2.0. For more details see FAB-15285.
Support for user chaincodes to utilize the chaincode shim's logger via NewLogger()
Chaincodes that used the shim's NewLogger() will need to shift to their own preferred
logging mechanism.
Support removed in v2.0. For more details see FAB-15366.
Support for peer's Admin service
The peer's Admin service exposes APIs such as GetLogSpec() and SetLogSpec().
Instead of using these services, utilize the HTTP operations service that was
introduced in v1.4.0.
Support removed in v2.0. For more details see FAB-15390.
Support for specifying orderer endpoints at the global level in channel configuration.
Utilize the new 'OrdererEndpoints' stanza within the channel configuration of
an organization instead.
For more details see FAB-7559.
The 'Solo' consensus type is deprecated.
With the introduction of Raft-based ordering service in v1.4.1, it is possible
to deploy a single-node (non-production) or multi-node
Raft-based ordering service with no external dependencies.
For single-node (non-production) ordering services, utilize Raft-based ordering
service with a single node instead of Solo ordering service.
For more details see FAB-15754.
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 docker image no longer updated, maintained, or published
The fabric-couchdb docker image will no longer be updated, maintained, or published.
Users can utilize the official CouchDB docker image maintained by the Apache CouchDB project instead.
Change log
For the full list of changes, refer to the release change log:
https://github.com/hyperledger/fabric/blob/release-1.4/CHANGELOG.md#v1410
Changes:
- 7d1ee82 v1.4.10 release commit
- adfdd61 Add v1.4.10 release notes
- 3813607 Fix the issue of Nil/Zero-length-byte-array value (#2312)
- e95a134 Remove unreachable and unnecessary code in gossip membership (#2296)
- 51a3a52 [FAB-17039] CherryPick: Skip retrieving pvtdata from transient store when txid is missing (bp #2183) (#2203)
- 746b7e9 [FAB-18323] CherryPick: remove ephemeral from BCCSP SW options (#1553)
- 25d99ba Update endorsementpolicies.md
- 7004000 Bump Go to 1.14.12
- 2dbf8d6 Bump version of golang.org/x/tools
- e876e64 [FAB-13370] increase go env timeout from 10s to 1m
See More
- 1d7b876 Increase Eventually Timeout
- a25b63f Prepare for go 1.14 (#755)
- b5a12de Log TLS hanshake duration
- 56d7b84 Deduplicate orderer server TLS root CAs (#2030)
- cf344b5 FAB-18244 single node catches up with snapshot (#2022)
- 83c833c [FAB-18270] Disable debug of CouchDB response body
- 75f9fe7 [FAB-18265] Always Use DummyKeystore For PKCS11 BCCSP Provider
- a40f9d2 Allow tick interval override via orderer.yaml
- db1abf6 Always Finalize the PKCS11 FindObject Operation (#1978)
- df50dea Update devmode doc to note TLS must be disabled (release-1.4)
- 4af8308 Prepare for next release v1.4.10
- da55272 Release commit for v1.4.9
- 5146a9f Remove No Longer Relevant Release Note
- 4924294 Update release notes with FAB-18250
- 56a81f7 [FAB-18250] Check Error Before Returning Session to Pool (#1938)
- 17e171b Remove escc and vscc from list of system chaincodes
- 2d63281 Remove GetSessionInfo Call
- 4f1e340 Add release notes for v1.4.9
- 40abeec [FAB-18237] always update stateInfo message upon chaincode update (#1915)
- 693cae5 Clarify tlsHandshakeTimeShift CLI help text (#1895)
- d9a8bc9 Peer CLI communicate with orderers with expired TLS certs
- 51ffd55 Add extra queryexecutor nil checks
- 95e4cfd [FAB-18208] Do not sign gossip message if membership is empty
- 5201e86 Fix data race in gossip/discovery test (#1865)
- 11cbae9 Add object handle and key cache to bccsp/pkcs11 [ #11 ]
- d626146 Drain session pool before creating new sessions
- d0c5065 Fix Broken Doc Reference
- d308fbf Re-enable Skipped PKCS11 Tests
- 80d3934 Fix broken pkcs11 tests
- c8d124f [FAB-18073] Add integration test for dev mode
- 9848841 [FAB-18171] Disregard certificate validity period in intra-orderer communication (#1825)
- 243dc0e [FAB-17539] Always remember anchor peers in membership (#1422) (#1815)
- f208ffe [FAB-18188] Log orderer and peer cert expiration date upon startup (#1804)
- a19c9ec Remove Latest Tag Publishing
- 8c85f77 Fix and improve discovery TLS authentication comments in document
- dcba9b1 FAB-18163 TLS Timeshift w/o Separate Cluster Port (#1726)
- 4eaec1d Use correct gossip SecretEnvelope reference
- 6361bff Update release-1.4 for Fabric CA v1.4.8 release
- d3c3aac Fix link in Develop apps doc
- a3486d3 Prepare for Fabric v1.4.9 (#1627)
- 29e1e77 Release commit for v1.4.8 (#1625)
- 112c6d9 Add release notes for v1.4.8
- ae1395b Tag built docker images with BASE_VERSION and TWO_DIGIT_VERSION
- 81f32de Fix latest tag on ccenv
- caf5b56 Raft: Check suspect info once per suspect interval (#1602)
- 66349cc Print channel name in learnAnchorPeers
- a7eb1f7 [FAB-18043] Correct the code comments (#1530)
- 34294ad Only canonize ECDSA signatures in MSP:IsWellFormed (#1495)
- c2ea18f Bump Go to 1.13.12 and Third-Party Images to 0.4.21 (#1492)
- d34fd05 Fix wrong link sampleconfig
- 4a193ed Set http header entries before writing header
- 9d2258c Update gotools mockery path for release-1.4 (#1417)
- 65e7353 FAB-17161 improve error message
- 52ee947 Fix the installed binary list in the document
- 877cadd [DocUpdate] configtxlator decode/common.ConfigUpdate
- 38b40b5 Prepare for Fabric v1.4.8 release
- e0afaa7 Release Fabric v1.4.7
- 51138b8 Add release notes for v1.4.7
- a178051 [FAB-17728] Add 100ms delay to pkcs11 create session loop (#1253)
- ea185b8 Correct HSM environment variables
- 8ff5d16 Bump baseimage version
- 6112b99 [FAB-17821] fix: use keyword as variable name
- 1964a1b [FAB-17778] MSP.IsWellFormed: Only allow canonical CA signatures
- 5066919 [FAB-17778] Force sanitized signatures be canonically built
- c66c3c4 add the sample policy to remove the test warning info
- e1db649 FAB-17552: add unit test for createKeyStore
- f27803f FAB-17752: following review guide
- c403374 FAB-17752: return errors when creating keystore
- 2f740c4 [FAB-17732] Port HSM updates to release-1.4 branch (#1110)
- 1f0a0dd Validate session and get new if invalid
- b03b3d9 [FAB-17540] Fix for race read/write tlsconfig (#1050)
- 856f215 FAB-15461 Fix election adapter to return correct peers
- f9e80e8 [FAB-16879] Add stack trace to couchdb http errors (#1048)
- c68ee5c [FABB-148, FABB-149]
- 9007739 Properly handle malformed gossip envelopes (#1037)
- 780b16f Fix organizations typo
- 5c2a996 Update to go 1.13
- 3b5b58b Fix deadline logging test
- be925f8 [FAB-16810] comm test changes to support go 1.13
- 7cf38b5 [FAB-16810] bccsp test changes for go 1.13
- 9461ba2 [FAB-17696] Fixed Wiki Link to Contributor meetings
- 1e51225 [FAB-17109] Retrieve ReconnectBackoffThreshold as duration
- afbc42f [FAB-16951] Alternative mechanisms to find pkcs11 key
- ca93be5 BCCSP initialization cleanup
- 2bb6415 [FAB-17517] Only Initialize specified provider
- defb36c Add MSP Key concepts topic to release-1.4 branch
- 609ddf8 Prepare for fabric v1.4.7 release (#743)
- 635fa7b Update release notes for v1.4.6
- af2b462 Release fabric v1.4.6
- 87df051 [FAB-17515] Support configuring BlockValidation policy for orderer group
- 29c58ac [FAB-17431] Decouple javaenv from Fabric version
- ac6305e [FAB-17523] Endorsing peer was not honoring RequiredPeerCount (#716) (#733)
- 0c421c8 Fix nil dereference in etcdraft config parsing (#724)
- 9072299 Add ending braces to ReadWrite set.
- a0b7584 Optimize inquire.IsSubset (#713)
- 60c8ab9 Prepare for next fabric rel v1.4.6
- 11ff991 Release fabric v1.4.5 (#695)
- 1893808 Remove rollback code from private data store
- f354c81 [FAB-17472] Clarify doc and samples for NodeOU Certificate
- d45bac4 Add release notes for Fabric v1.4.5
- a9a1d07 [FAB-17059] Extend private data integration tests to cover case when a
- ca1ae38 [FAB-17059] Change collection membership eligibility checks to
- e75bc71 [FAB-17479] Migrated Kafka cluster can be safely expanded later (#642)
- 5eaae3a Explicitly enumerate orderer and peer metrics
- 9faad9e define couchDB connection pool size
- b27a7c7 [FAB-16681] Fix inconsistencies in the fabcar tutorial
- 46daf02 [FAB-16508] Update commercial paper tutorial to match code
- 0a6993d Add Documentation Maintainers to CODEOWNERS file
- 52e5155 Point to Artifactory for chaintool downloads
- 1786f10 [FABCN-378] Update links to chaincode JSDoc
- bc3bb1a [FAB-15578] Fix typos on the endorser metric name
- 975cc00 FAB-16033 Update channel_artifacts location in doc.
- cae8b55 Static leader should not give up retrieving blocks
- f0ea825 [FAB-17169] Add AZP Status Badge (#511)
- 3ad450d Go SDK link should point to 1.4 release [ #476 ]
- 1b6bea7 Update dead link to Go Chaincode SDK
- 9ec196b Add CODEOWNERS group
- a8639ba Allow seperate TLS config for cluster and client (#393)
- d4dca95 [FAB-17235] Fixed broken links in Chaincode for Operators release-1.4
- 835cae3 [FAB-15900] Add pkcs11 section to orderer.yaml
- 3bae50c [FAB-17289] Fix gossip goroutine leak when reading msg (#439)
- 24d418d [FAB-17128] Add single quote to channel name env var (#437)
- f627b88 Wrong protobuf import in etcdarft
- 778f87b FAB-17177] Config block shouldn't verify itself in block replication
- 0ce6685 [FAB-17220] Dynamically build TLS config in Raft client handshake
- eea42cb Increase open file limit to address Gossip flakes
- 3a9b5e3 Fix flaky etcdraft test by installing chaincode serially
- b4b0191 Deliver can send multiple blocks when seeking newest
- 634e14b Attempt to fix flaky integration ApproveForMyOrg
- 1fe6954 Add hostconfig to build container
- 20ea5df [FAB-17128] Make channel name env var
- d8fac8a [FAB-17166] Gate UT, IT and DocBuild
- d5f056f [FAB-17132] Add Parallel Strategy to Integration Tests
- 36bf3ee [FAB-17133] Add Action to Trigger CI
- ef9960a Add CODEOWNERS file
- d3adcc0 Fix the style-guides directory naming scheme (#309)
- c4f834d [FAB-17115] Update doc for GitHub migration
- 2c3282e [FAB-17114] Add AZP support for Fabric
- 9998978 [FAB-16712] Update Java chaincode doc links
- 633cfbf [FAB-17072] Prepare for next fabric rel v1.4.5
- a192322 Merge "Release fabric v1.4.4" into release-1.4
- 456ca1d Merge "Add consensus type ectdraft in orderer/README.md" into release-1.4
- cb15403 Merge "[FAB-17032] Fix some errors in the doc." into release-1.4
- 7917a40 Release fabric v1.4.4
- a3a9485 [FAB-17068] Add doc for /version endpoint
- 95ffcdc [FAB-15814] Add endpoint for versioning metadata
- e369169 Merge "Do not require reboot when re-adding consenter" into release-1.4
- 06f4ad8 [FAB-17060] Remove s390x from multiarch script
- 9f8168f [FAB-17032] Fix some errors in the doc.
- 707f763 FAB-16544 Homogenize orderer endpoint overrides
- 07db0a8 Do not require reboot when re-adding consenter
- 89655c3 Add consensus type ectdraft in orderer/README.md
- 3257ed6 Merge "FAB-16544 IT for orderer endpoint overrides" into release-1.4
- 4ca163c Merge changes Ide0d1e75,I83a9f78b into release-1.4
- 9893adf Merge "[FAB-15389] Fix private data dissemination" into release-1.4
- 0571934 Merge "Complete chaincode execution on stream termination" into release-1.4
- 96028fd [FAB-15389] Fix private data dissemination
- 872fffe Merge "[FAB-17000] Warn when cert expiration is nigh" into release-1.4
- 1989eee [FAB-17000] Warn when cert expiration is nigh
- c77496c Complete chaincode execution on stream termination
- 5416aef FAB-16544 IT for orderer endpoint overrides
- 66f3d96 Merge "FAB-16852 Update doc to Go v1.12.12" into release-1.4
- e7ed5e8 Merge "FAB-16852 Update Go to v1.12.12" into release-1.4
- 83e3cb4 FAB-16852 Update doc to Go v1.12.12
- 68093d0 Merge "Clarify configtx.yaml capability settings" into release-1.4
- 4b0e995 Add Info message for delivery client
- d7f8962 FAB-16852 Update Go to v1.12.12
- 1a1c71a FAB-16544 Backport orderer TLS cert overrides
- 63e1563 FAB-16544 Fix IT UpdateChannel to match doc
- 1ac3f05 Merge "FAB-16980 add lock to UpdateEndpoints" into release-1.4
- 5879cd3 FAB-16980 add lock to UpdateEndpoints
- 31f85f6 [FAB-14819] Remove duplicate call to GetTxReadWriteSet
- 3b7b8f0 [FAB-16948] To make same with github
- 8196d66 [FAB-16948] Fabric go cid interface enhancement
- 0c221f4 [FAB-16932] Typo in Chaincode Command
- 1485c3d Clarify configtx.yaml capability settings
- dc14773 [FAB-16922] Symbol encoding format error in doc
- d0eecba [FAB-16885] Doc usage of salt for private data
- 3d49575 Fix Raft UT flake by prolong eventual timeout
- f71cfc7 Merge "[FAB-16873] fix cryptogen server TLS to admins" into release-1.4
- 76383ac FAB-16883 fix kafka.rst doc formatting
- d6669bf [FAB-16873] fix cryptogen server TLS to admins
- a2bdb34 FAB-16868: fix
txn
typo error in documents - 76efd6d [FAB-16881] sample configtx.yaml comment fix
- 5cbfc4f Set DOCKER_DYNAMIC_LINK to true
- 59d4adc [FAB-16756] kafka migration guide fix
- 93d94f8 Merge "[FAB-16241] update documentation" into release-1.4
- cea596a [FAB-16783] the cryptogen gen admin cert ou error
- 81953e5 [FAB-16652] check for empty acl api ref
- b0de151 [FAB-16241] update documentation
- 0c9848a [FAB-16052] Fix peerchaincode doc
- 035b95a Merge "FAB-16643 - Fix a bug in pvt data reconciliation" into release-1.4
- 0acd6e9 FAB-16643 - Fix a bug in pvt data reconciliation
- 6197789 [FAB-16651] Fix conn leak if certs renewed
- 54f027d Fabric update to baseimage 0.4.16
- 36249d7 Merge "[FAB-16729] Remove extra "now" typo" into release-1.4
- 456e9ad FAB-16715 Wire orderer endpoint overrides via config
- 0953c69 Merge "FAB-16695 Enable split admin, cluster ports in IT" into release-1.4
- 3345371 FAB-16695 Enable split admin, cluster ports in IT
- d764996 Merge "FAB-16715 Wire endpoint override in UpdateEndpoints" into release-1.4
- be3de21 Merge "FAB-16715 Add overrides to ConnectionCriteria" into release-1.4
- 04d7258 Merge "[FAB-16728] Remove extra unneeded "be"" into release-1.4
- d28741a Merge "FAB-16687 reduce mutex contention in validator" into release-1.4
- 0554664 [FAB-16729] Remove extra "now" typo
- a78be91 [IN-68] Add default GitHub SECURITY policy
- bbb3616 [FAB-16728] Remove extra unneeded "be"
- 23de844 FAB-16695 Make peerServer singleton a slice
- ad1b514 FAB-16695 Re-use metrics for comm GRPCServer
- 1a4ff3f FAB-16715 Wire endpoint override in UpdateEndpoints
- 994f15c FAB-16715 Add overrides to ConnectionCriteria
- 0ac4069 [FAB-16706] remove validate ledger
- b6fdef9 Merge "FAB-16483 Improve error message" into release-1.4
- cdaa9dd FAB-16483 Improve error message
- 19c2829 Merge "[FAB-16274] - Add link to off_chain_data sample" into release-1.4
- 14e85ce [FAB-16274] - Add link to off_chain_data sample
- 7775c13 FAB-15666 Pass NetworkMode in DockerBuildOptions
- 003c8c5 Add test for deployImage
- 1483166 FAB-16687 reduce mutex contention in validator
- bc2d289 [FAB-16630] Fix comment error
- fcfd12e [FAB-16165] Change pkcs11 test keystore directory
- e09c726 Merge "FAB-16605 Add log message for slow WAL" into release-1.4
- 0abcce8 FAB-16650 align sentence for eventclient readme
- a5d9a93 FAB-16605 Add log message for slow WAL
- 6cfdc7d Merge "[FAB-16571] Fix peer panic when package java chaincode" into release-1.4
- 157f500 [FAB-16571] Fix peer panic when package java chaincode
- 7f1abdb [FAB-16580] Remove Hyperledger Composer references
- 86fcc44 Merge "[FAB-16376] MSP_1.4.3: support for admincerts" into release-1.4
- 48a1c86 FAB-16413 Prepare for next fabric rel (1.4.4)
- 05479d9 [FAB-16376] MSP_1.4.3: support for admincerts
- b8c4a6a [FAB-16412] Release fabric v1.4.3
- d7596b6 Merge "[FAB-16282] Upgrade/what's new doc for 1.4.3" into release-1.4
- 9bdd8de Merge "Use latest npm version of ccenv image" into release-1.4
- 2bb8dba Merge "[FAB-15899] Doc Node OU Support for admins and orderers" into release-1.4
- a7ca2fc Use latest npm version of ccenv image
- 98992bd [FAB-16282] Upgrade/what's new doc for 1.4.3
- c12a529 Merge "Remove hardcoded ver on fabric multiarch script" into release-1.4
- af60269 Merge "FAB-16325 Remove travis build file" into release-1.4
- 30dea93 Remove hardcoded ver on fabric multiarch script
- 4b34ac6 Merge "FAB-16399 Correct capabilities error message" into release-1.4
- 11de776 Merge "fix peer node cmd preamble/postscript" into release-1.4
This list of changes was auto generated.