v1.4.5
v1.4.5 Release Notes - February 19, 2020
What's New in Hyperledger Fabric v1.4.5
The following enhancements are included in this release:
-
FAB-15648: Allow separate TLS config for Raft cluster and client
When intra-cluster Raft communication is configured to use separate
listener, allow TLS to be disabled for the client-facing listener,
and assume TLS is always enabled for the cluster listener.
Fixes
-
FAB-17261: Add HostConfig to chaincode image builder
Prior to the fix, the Docker HostConfig configured in peer was only used
when creating a chaincode container. The configured Docker HostConfig is
now used when building a chaincode image and when creating a chaincode container. -
FAB-17220: Dynamically build TLS config in Raft client handshake
This fix ensures that the latest TLS CA certificates are used by Raft ordering
service nodes when certificates are updated in the channel config. -
FAB-17289: Fix gossip goroutine memory leak when reading msg
A peer gossip memory leak observed in stress tests is fixed.
-
FAB-17327: Static leader should not give up retrieving blocks
When a peer is configured as a static org leader for gossip, it will
not give up on retrieving blocks in the event that the ordering
service goes down for an extended period of time (i.e. longer than the
peer.deliveryclient.reconnectTotalTimeThreshold). Prior to the fix,
the peer had to be restarted before it would retrieve blocks again. -
FAB-17277: Fix too many TCP connections between peer and CouchDB
The peer created a large number of TCP connections to CouchDB because the
default reusable connection pool size is 2 per host while the max pool size
is 100 (combining all hosts). Thus only 2 TCP connections could be reused
by the peer when it accessed CouchDB. When more than two goroutines in the
peer tried to simultaneously access CouchDB, it resulted in new non-reusable
connections (i.e., creation of new TCP connection outside the pool).
The fix sets MaxIdleConns and MaxIdleConnsPerHost to 2000. This creates 2000
TCP connections in the pool which are reused whenever the peer accesses CouchDB. -
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-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.
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
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.
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.
For more details see FAB-14720. -
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. -
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.
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.
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.
For more details see FAB-15390. -
Support for Solo ordering service
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.
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#v145
Changes:
- 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
See More
- 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
- 4d68e0b Merge "[FAB-15479] Docs updates for Java" into release-1.4
- 7a9f6e7 [FAB-15899] Doc Node OU Support for admins and orderers
- 607de4d FAB-16399 Correct capabilities error message
- 1e54df2 Merge "[FAB-16327] Discovery config query with org endpoints" into release-1.4
- 61030af fix peer node cmd preamble/postscript
- 6f64c22 [FAB-16357] Support for .orderer
- e21cd4a [FAB-16327] Discovery config query with org endpoints
- 9b2fde0 [FAB-16122] Integration Test AdminOU
- 65eb54d Merge "[FAB-16056] Display config block num for CLI" into release-1.4
- fd02119 [FAB-15479] Docs updates for Java
- 4a7e76f FAB-16325 Remove travis build file
- 719e892 Merge "[FAB-15933] Optional NodeOU Classification" into release-1.4
- ea2316f [FAB-16056] Display config block num for CLI
- 3091941 Merge "[FAB-15970] Enable MSP 1.4.3 at Channel Config" into release-1.4
- e486d61 Merge "[FAB-16292] Fix NPE in expiration" into release-1.4
- 7078648 [FAB-15933] Optional NodeOU Classification
- df962e9 [FAB-15970] Enable MSP 1.4.3 at Channel Config
- 762f3c5 [FAB-12620] Orderer OU
- 2f31597 [FAB-15388] AdminOU Support
- 5132634 [FAB-16292] Fix NPE in expiration
- 8c6182e [FAB-15979] Improve capabilities documentation
- fbbeb01 Merge changes from topics "FAB-16141-release1.4", "FAB-15700-release1.4" into release-1.4
- 8d85cab Merge "FAB-15532 create in-proc broadcast client for IT" into release-1.4
- cbf6372 Merge "fix pvt and blockStore recovery for reset/rollback" into release-1.4
- 67026a5 [FAB-16141] Option to disable cert expiration checks
- 56cc786 [FAB-15700] Recover an expired TLS cert cluster
- 1786505 FAB-15532 create in-proc broadcast client for IT
- ea7cd9c Merge "FAB-16208 Add v1.4.2 orderer capability sampleconf" into release-1.4
- 72f22c5 Merge "Fix a typo error for etcdraft" into release-1.4
- 861847b fix pvt and blockStore recovery for reset/rollback
- 0163d56 Merge "rollback/reset: ensure that stateDB is dropped" into release-1.4
- 075851a Merge "rollback: fix capability usage at gossip" into release-1.4
- e40b33e Fix a typo error for etcdraft
- 042b6c4 rollback/reset: ensure that stateDB is dropped
- bb57b08 FAB-16208 Add v1.4.2 orderer capability sampleconf
- ad802f9 rollback: fix capability usage at gossip
- 05da109 Merge "FAB-16051 MSP IDENTITY Principal Deserialization" into release-1.4
- ea4fb38 Merge "[FAB-16138] Accelerate reset and rollback tests" into release-1.4
- 1181f45 [FAB-16138] Accelerate reset and rollback tests
- fc4f3a5 [FAB-16140] Fix Missing error handling in EC query
- f78f7b9 [FAB-15891] Node.js version support
- ebf81bc FAB-16051 MSP IDENTITY Principal Deserialization
- 4d9954c [FAB-16020] Add java_package to transaction.proto
- 469501a [FAB-15998] Prepare for next fabric rel (1.4.3)
- c6cc550 [FAB-15997] Release fabric v1.4.2
- c6ddf3a Merge "[FAB-15908] Add release notes for v1.4.2" into release-1.4
- 5674921 [FAB-15994] What's New v1.4.2 edits
- 78db512 Merge "[FAB-15815] Upgrade to v1.4.2 doc" into release-1.4
- 54c1cad [FAB-15908] Add release notes for v1.4.2
- 89d48a8 Merge "Add a test for a corner case crash scenario" into release-1.4
- c39a485 Merge "[FAB-15450] Doc: add expectation for state keys" into release-1.4
- 7803126 [FAB-15815] Upgrade to v1.4.2 doc
- 950442a [FAB-15450] Doc: add expectation for state keys
- 8049c6f Merge "[FAB-15840] Fix peer isolation after a long disconnect" into release-1.4
- 34b6107 Merge "replace fmt.Sprintf to error.Errorf" into release-1.4
- aef3bcc Merge "rm wait for usr input on reset/rollback" into release-1.4
- d339219 Merge "filelock to allow one of peer start, reset, rollback" into release-1.4
- dffb08c replace fmt.Sprintf to error.Errorf
- af4a0ae [FAB-15840] Fix peer isolation after a long disconnect
- 964200d rm wait for usr input on reset/rollback
- 61199ed Fix rollback bug
- b137f5b filelock to allow one of peer start, reset, rollback
- 68a6a07 Merge "[FAB-12126] Fix discovery client test flake" into release-1.4
- fda1f0b code hygiene: use rolled, rolling, rolls (back)
- 4680494 [FAB-12126] Fix discovery client test flake
- 2828622 Add shim/ext deps to ccenv
- f57b952 Merge "FAB-15935 Make ConnectionTimeout configurable" into release-1.4
- bbaed63 Merge "[FAB-15689] Check decoding error" into release-1.4
- 2d516a4 Merge "Fix typos in BYON tutorial" into release-1.4
- 73b369e Merge "e2e test for rollback/reset" into release-1.4
- 7243d19 Merge "Add tests for commit hashes with rollback and reset" into release-1.4
- cc53765 Add a test for a corner case crash scenario
- 46eaf22 Merge "remove rollback capability from mock" into release-1.4
- 92f16c0 FAB-15935 Make ConnectionTimeout configurable
- 6b5cb19 Fix typos in BYON tutorial
- 9739a23 Merge "[FAB-15602] Fix port in v1.4 BYFN" into release-1.4
- f2225d7 Merge changes I7b3ef309,I06460b93,Ibd4769ea,I063ab0c5 into release-1.4
- 9aa045a e2e test for rollback/reset
- fd92279 [FAB-15922] Add integration test for GetPrivateDataHash
- f878072 Change NewPeerClientForAddress to not use configFromEnv
- 7e65b51 Add tests for commit hashes with rollback and reset
- ab8399e FAB-13876 Wire private data hash hash to cchandler
- be6101e Add API GetPrivateDataHash in chaincode shim
- b1fa299 [FAB-13527] Add API GetPrivateDataByHash in ledger
- 04a8b72 Merge "FAB-15829 Backport .gitattributes lineendings" into release-1.4
- 7efe977 [FAB-15602] Fix port in v1.4 BYFN
- 6982106 [FAB-15845] Additional validation checks
- 48ae585 Merge "[FAB-15826] Ignore errors in retrieving txid from env" into release-1.4
- 59feca2 remove rollback capability from mock
- 66138c4 Merge "[FAB-15774] Add migration to What's New" into release-1.4
- dc9d182 Merge "blockstore computes txID if it is empty" into release-1.4
- b43773e [FAB-15826] Ignore errors in retrieving txid from env
- 9fa6c65 [FAB-15868] Make self cert identification lenient
- 8150222 [FAB-15689] Check decoding error
- fa0aee1 [FAB-15593] Extra validation of collection policies
- 8a12dd6 blockstore computes txID if it is empty
- dc3d908 code hygine: rm uneeded if and correct values in test
- 6f7e7c2 code hygine: introduce func for missingData in test
- c253e10 code hygine: rename addBlockCommitHashIfApplicable()
- 9ddf0be rollback: v142 capability
- 0ae0a26 rollback/reset: doc for peer cli command
- df3616a rollback: skip uncommittedPvtData of oldBlocks
- b9cdb46 rollback: fetch pvtdat from localstore if exist
- 80d14bd rollback: store pvtdata of both valid/invalid tx
- a16f931 rollback: disable reconciler during block reprocessing
- d3a7fa8 rollback: fetch pvtdata of invalid tx (gossip)
This list of changes was auto generated.