github.com/ewagmig/fabric@v2.1.1+incompatible/release_notes/v2.1.0.md (about)

     1  v2.1.0 Release Notes - April 15, 2020
     2  =====================================
     3  
     4  What's New in Hyperledger Fabric v2.1
     5  -------------------------------------
     6  
     7  **FAB-17357: Add endorser metric for simulation failure**
     8  
     9  Added metric endorser_proposal_simulation_failures.
    10  
    11  **FAB-14761: Limit concurrent requests to endorser and deliver services**
    12  
    13  Limits can now be placed on the number of endorser and deliver requests
    14  that a peer will process at any one time. If a peer is already processing its
    15  limit of requests, subsequent requests in excess of the limit will return an error,
    16  and the client will need to retry the call. The limits are configured using the
    17  following core.yaml properties:
    18  - peer.limits.concurrency.endorserService
    19  - peer.limits.concurrency.deliverService
    20  
    21  **FAB-17463: Allow peer to override implicit collection dissemination properties**
    22  
    23  The following config properties have been added to peer's core.yaml
    24  for implicit private data collection dissemination:
    25  - peer.gossip.pvtData.ImplicitCollectionDisseminationPolicy.requiredPeerCount
    26  - peer.gossip.pvtData.ImplicitCollectionDisseminationPolicy.maxPeerCount
    27  
    28  When a peer endorses a transaction that writes to its own organization's
    29  implicit private data collection, the new properties will dictate how
    30  many other peers in the organization the endorsing peer will attempt to
    31  disseminate to (maxPeerCount), and how many peers must acknowledge receipt
    32  of the private data before endorsement succeeds (requiredPeerCount).
    33  These properties are applicable to all channels the peer has joined. The implication
    34  is that requiredPeerCount has to be smaller than the number of peers in a channel
    35  that has the lowest numbers of peers from the organization.
    36  
    37  **FAB-17279: Support collection level endorsement policies for discovery**
    38  
    39  v2.0 added an option to specify an endorsement policy at a chaincode's private
    40  data collection level. Service discovery now supports this feature when the
    41  collection name is passed to the discovery endorsers query.
    42  
    43  **Discover CLI now supports SEC 1 formatted private keys**
    44  Private keys that are generated with openssl ecparam (SEC 1 format) are now supported
    45  with the discover CLI, in addition to the PKCS8 private keys that were already supported.
    46  
    47  **Dependency updates**
    48  
    49  - Bump docker images to Alpine 3.11.
    50  - Bump Go to 1.14.1.
    51  - Bump Go grpc to 1.28.0.
    52  
    53  Fixes
    54  -----
    55  
    56  All fixes in v2.0.1 have also been applied to v2.1.0. Additionally the following fixes have been made.
    57  
    58  **FAB-17441: approveformyorg lifecycle command should allow update of only package ID**
    59  
    60  approveformyorg lifecycle command now allows only the package ID to be updated.
    61  
    62  **Fix nil dereference in etcdraft config parsing**
    63  
    64  The etcdraft config parsing code checked that the consensus
    65  metadata was not nil, but it failed to check that the options were not nil.
    66  The additional nil checks have been added.
    67  
    68  **FAB-17517: Only Initialize specified BCCSP provider**
    69  
    70  When Fabric is built with GO_TAGS="pkcs11",
    71  BCCSP attempted to initialize PKCS11 even when BCCSP is configured for software.
    72  This resulted in error
    73  "Failed to initialize local MSP: could not initialize BCCSP Factories: Failed initializing PKCS11.BCCSP"
    74  
    75  **FAB-17672: Prevent gossip probes from registering as long lasting connections**
    76  
    77  This fix helps to more quickly establish gossip connections when
    78  peers are starting at the same time.
    79  
    80  **FAB-17726: Properly handle malformed gossip envelopes**
    81  
    82  Fix rare nil pointer panic at:
    83    github.com/hyperledger/fabric/gossip/comm.interceptAcks.func1(0x0)
    84    /opt/gopath/src/github.com/hyperledger/fabric/gossip/comm/ack.go:66 +0x2e
    85  
    86  **FAB-17725: Omit go.mod and go.sum from package when not in module mode**
    87  
    88  In certain environments, it's possible to package chaincode that is structured
    89  as a module from an active GOPATH. This often happens when the path provided
    90  to the package command is an import path resolvable from the GOPATH instead of
    91  a file system path.
    92  
    93  If the package can successfully build in the packaging environment from the
    94  import path, the chaincode dependencies are calculated and packaged from the
    95  GOPATH for compilation as a traditional go package.
    96  
    97  In this scenario where the code at the import path is structured as a module,
    98  the go.mod would be included in the chaincode package as packaging always
    99  includes all non-hidden files in the top level folder of the import path.
   100  
   101  On the server, the presence of the go.mod implies that the build process
   102  should execute in module mode. When the dependencies have been vendored in the
   103  module, the build uses -mod=vendor flag to indicate the module requirements
   104  should be satisfied from the vendor folder.  Unfortunately, since the
   105  chaincode dependencies were packaged using GOPATH mode instead of module mode,
   106  there are some metadata files missing from the vendor folder that are expected
   107  by the module mode build process.
   108  
   109  To help prevent this from occurring, we will explicitly omit go.mod and go.sum
   110  from top level folder of chaincode that is not packaged in module mode.
   111  
   112  For the full list of changes, refer to the release change log:
   113  https://github.com/hyperledger/fabric/blob/release-2.1/CHANGELOG.md#v210