github.com/hyperledger-labs/bdls@v2.1.1+incompatible/release_notes/v2.0.0.txt (about)

     1  v2.0.0 Release Notes - RELEASE DATE TBD
     2  ---------------------------------------
     3  
     4  What's New in Hyperledger Fabric v2.0
     5  -------------------------------------
     6  
     7  The following major features are included in the v2.0.0 Alpha release:
     8  
     9  FAB-11237 - Improved chaincode lifecycle
    10  Fabric 2.0 introduces decentralized governance for chaincode, with a
    11  new process for installing a chaincode on your peers and starting it on a
    12  channel. The new Fabric chaincode lifecycle allows multiple organizations to
    13  come to agreement on the parameters of a chaincode, such as the chaincode
    14  endorsement policy, before it can be used to interact with the ledger.
    15  
    16  FAB-6135 - Raft Consensus
    17  Introduced in v1.4.1 and v2.0.0, the ordering service now provides
    18  an option to use the Raft Consensus algorithm. Raft is a crash fault tolerant
    19  (CFT) ordering service based on an implementation of Raft protocol in etcd.
    20  
    21  FAB-11096 - Docker images with Alpine Linux
    22  Hyperledger Fabric Docker images will now use Alpine Linux,
    23  a security-oriented, lightweight Linux distribution.
    24  
    25  New operational metrics and health checks
    26  FAB-13088 Endorser metrics
    27  FAB-14077 Orderer communication metrics
    28  FAB-11937 Raft metrics
    29  FAB-13237 Metrics for log records
    30  FAB-12727 Gossip metrics
    31  FAB-13341 Kafka health check
    32  FAB-12908 CouchDB health check
    33  
    34  Changes, Known Issues, and Workarounds
    35  --------------------------------------
    36  
    37  FAB-5177 - The ccenv build image no longer includes the shim
    38  The shim package and dependencies for go chaincode are no longer included in
    39  the chaincode build environment. Chaincode packages that do not include their
    40  own dependencies will no longer successfully build on the peer.  We strongly
    41  recommend that existing go chaincode be updated to vendor the
    42  github.com/hyperledger/fabric-chaincode-go/shim package and its dependencies.
    43  While there are many tools for managing vendored dependencies, we recommend
    44  moving directly to go modules and vendoring with `go mod vendor`.
    45  
    46  FAB-11096 - Docker images with Alpine Linux
    47  Bash is no longer available in Fabric images. Utilize Alpine's built-in
    48  sh or ash instead.
    49  
    50  FAB-12075 - Duplicate Go Client identity library removed
    51  If vendoring the Client identity library (CID) in chaincode, import
    52  github.com/hyperledger/fabric/core/chaincode/shim/ext/cid
    53  rather than
    54  github.com/hyperledger/fabriccore/chaincode/lib/cid/cid.go
    55  
    56  FAB-12088 - Java chaincode support on s390x architecture
    57  Java chaincode support is not yet available on s390x architecture.
    58  
    59  FAB-12134 - Same chaincode source receiving fingerprint mismatch error
    60  Chaincode installed in different ways may result in "chaincode fingerprint
    61  mismatch data mismatch" error upon instantiation.  This may happen when
    62  installing chaincode by using different SDKs. To workaround the problem,
    63  package the chaincode prior to installation and instantiation, by using
    64  the "peer chaincode package" command.
    65  
    66  FAB-15366 - Logger removed from chaincode shim
    67  Chaincode that used the shim's NewLogger() will need to shift to a new
    68  logging mechanism. Chaincode logging is intended to be the responsibility
    69  of the application developer. As such it should be handled using tools and
    70  libraries that make the most sense to the chaincode developer and the
    71  application in general. Chaincode developers can forward STDOUT and STDERR
    72  from the chaincode container to the peer container by setting
    73  `CORE_VM_DOCKER_ATTACHSTDOUT=true`. While not recommended for production,
    74  once enabled, each chaincode will receive its own logging channel and
    75  STDOUT and STDERR will be integrated in the peers log on a per-line basis.
    76  A production grade approach would be to run a log aggregation service and
    77  forward your logs to the aggregation service.
    78  
    79  FAB-16213 - The go chaincode entities extension has been removed
    80  Chaincode implementations that used the entities extension package from an
    81  earlier version of Fabric will need to vendor a 1.x version of the package
    82  for as part of their chaincode package.
    83  
    84  FAB-16303 - GetHistoryForKey returns results from newest to oldest
    85  In prior releases, the GetHistoryForKey chaincode API had no
    86  guarantees on the order of returned results.
    87  Starting in Fabric v2.0, the GetHistoryForKey chaincode API
    88  will return results from newest to oldest in terms of ordered transaction
    89  height (block height and transaction height within block).
    90  This will allow applications to iterate through the top results
    91  to understand recent changes to a key.
    92  
    93  FAB-16722 - The 'provisional' genesis method of generating the system channel
    94  for orderers has been removed. Existing users of the provisional genesis method
    95  should instead set BootstrapMethod to 'file', and generate a genesis block file
    96  using configtxgen. Orderer nodes will then use the generated file for the
    97  orderer system channel.
    98  
    99  FAB-15343 - System Chaincode Plugins have been removed.  As part of a general
   100  move away from go plugins as an extension mechanism for Fabric, the ability to
   101  add system chaincodes via go plugins has been removed.  Users wishing to extend
   102  Fabric with custom system chaincodes may rebuild the peer binary with the
   103  system chaincode built into the binary.  This system chaincode should then be
   104  defined and initialized like any other user chaincode would be.  This new model
   105  is very similar to the plugin model (which required that the plugin to be built
   106  at the same exact commit of Fabric), and addresses the significant shortcomings
   107  around the lifecycle and validation of system chaincode transactions.
   108  
   109  FAB-15754 - The 'Solo' consensus type is officially deprecated.  The 'Solo'
   110  consensus type has always been marked non-production and should be in use only
   111  in test environments, however for compatibility it is still available, but may
   112  be removed entirely in a future release.
   113  
   114  FAB-16408 - The 'Kafka' consensus type is officially deprecated.  The 'Raft'
   115  consensus type was introduced in v1.4.1 and has become the preferred production
   116  consensus type.  There is a documented and tested migration path from Kafka to
   117  Raft, and existing users should migrate to the newer Raft consensus type.  For
   118  compatibility with existing deployments, Kafka is still supported, but may be
   119  removed entirely in a future release.
   120  
   121  FAB-16477 and FAB-17116 The orderer config `general.genesismethod` and
   122  `general.genesisfile` will be replaced by the new `general.bootstrapmethod` and
   123  `general.bootstrapfile`.
   124  
   125  FAB-17428 - The configtxgen flag `--outputAnchorPeersUpdate` is officially deprecated.
   126  This flag was originally used for creating channel config updates to update an anchor peer
   127  and only worked for the first update of the default channel creation. The flag will be
   128  officially removed in FAB-17427 in favor of using the `configtx.yaml` for the default
   129  channel configuration.
   130  
   131  Known Vulnerabilities
   132  ---------------------
   133  FAB-8664 - Peer should detect and react when its org has been removed
   134  This is a relatively low severity problem, because it requires a significant
   135  conspiracy of network admins, but it will be addressed in a future release.
   136  
   137  Resolved Vulnerabilities
   138  ------------------------
   139  None.
   140  
   141  Other improvements and fixes
   142  ----------------------------
   143  FAB-13471 - Fix for multiple chaincode upgrades in a single block
   144  FAB-14687 - Fix memory leak in gossip message store
   145  Updated to Go version 1.12.5
   146  
   147  For the full list of improvements and fixes, refer to the release change log:
   148  https://github.com/hyperledger/fabric/blob/master/CHANGELOG.md#v200