Skip to content

@btl5037 btl5037 released this Nov 15, 2019 · 17 commits to release-1.4 since this release

v1.4.4 Release Notes - November 14, 2019

What's New in Hyperledger Fabric v1.4.4

The following enhancements are included in this release:

  • FAB-16715, FAB-16544: Orderer endpoint override

    Ordering networks whose addresses or TLS root certificates change will cause problems for new
    peers joining channels because the channel genesis block will contain the outdated orderer
    information. A new configuration option for orderer endpoint overrides allows administrators
    to configure peers to translate old orderer addresses and certificates to the updated
    orderer addresses and certificate pools.

  • FAB-17000: Provide notification to users if certs are about to expire

    Peers and orderers now log a warning to the log a week before the enrollment certificate or
    TLS certificate expire. Example log entries:

    [certmonitor] trackCertExpiration -> WARN 011 The server TLS certificate expires within one week

    [certmonitor] trackCertExpiration -> WARN 011 The enrollment certificate expires within 2 days and 5 hours

  • FAB-15814: Add operations endpoint to expose peer/orderer version

    Adds a /version endpoint to the operations server that serves peer/orderer metadata
    including Version number and CommitSHA.

  • FAB-16852 Bump to Go v1.12.12 and baseimage 0.4.18

  • FABB-128 Bump node.js to 8.16.1 and npm to 6.11.3 in 0.4.18 baseimage

Fixes

  • FAB-13552: Re-addition of a removed OSN in a channel - Prior to the fix, if a Raft orderer was
    removed from the consenter set in the channel configuration, it would not check to see if was added
    back and a reboot was required.

  • FAB-15026: Segmentation violation in peer chaincode install - Prior to the fix, the tar processing
    during chaincode package install could trigger a panic while looking up user info when run with
    certain versions of libc. The calls to libc are no longer made.

  • FAB-15389: Endorsing peer is not honoring maxPeerCount for private data dissemination - Prior
    to the fix, there was a chance that peers chosen for private data dissemination at endorsement time
    could potentially be counted twice towards maxPeerCount, leading to disseminating private data to
    fewer peers than expected.

  • FAB-15666: NetworkMode does not get passed to chaincode image build
    Prior to the fix, the peer's configured docker NetworkMode was not getting passed
    upon chaincode image build.

  • FAB-16571: Fix panic in peer chaincode package command - Prior to the fix, the peer
    chaincode package command could panic when traversing the chaincode location.

  • FAB-16610: Commit block to ledger hang when chaincode crash - Prior to the fix, if a chaincode
    terminated abnormally during an invocation, a lock would prevent blocks from committing until the
    execution timeout (core.chaincode.executetimeout property) was triggered. The fix ensures that the
    lock is released immediately on exit.

  • FAB-16643: Nil pointer during reconciliation of deleted private data - Prior to the fix,
    if a peer is trying to reconcile missing private data, and the private data key has since been
    deleted, the peer will panic with a nil pointer exception.

  • FAB-16651: Fix connection leak if certificates renewed - Prior to the fix, peers that have changed
    their enrollment certificate without changing their endpoint caused connections to leak over time.

  • FAB-16695: Separate listeners causes panic - Prior to the fix, configuring separate
    listeners for the peer admin service or for the orderer cluster service would cause a
    panic on startup if Prometheus metrics were enabled.

  • FAB-16948: Nil pointer exception in CID GetID() when using Idemix - GetID now returns an error
    when invoked on a chaincode request from an Idemix identity.

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#v144

Assets 5
You can’t perform that action at this time.