github.com/yacovm/fabric@v2.0.0-alpha.0.20191128145320-c5d4087dc723+incompatible/docs/source/whatsnew.rst (about) 1 What's new in the v2.0 Alpha 2 ============================ 3 4 A word about the Alpha release 5 ------------------------------ 6 7 The Alpha release of Hyperledger Fabric v2.0 allows users to try out two exciting 8 new features --- the new Fabric chaincode lifecycle and FabToken. The Alpha release 9 is being offered to provide users a preview of new capabilities and is not meant 10 to be used in production. Additionally there is no upgrade support to the v2.0 11 Alpha release, and no intended upgrade support from the the Alpha release 12 to future versions of v2.x. 13 14 Fabric chaincode lifecycle 15 -------------------------- 16 17 The Fabric 2.0 Alpha introduces decentralized governance for chaincode, with 18 a new process for installing a chaincode on your peers and starting it 19 on a channel. The new Fabric chaincode lifecycle allows 20 multiple organizations to come to agreement on the parameters of a chaincode, 21 such as the chaincode endorsement policy, before it can be used to interact 22 with the ledger. The new model offers several improvements over the previous 23 lifecycle: 24 25 * **Multiple organizations must agree to the parameters of a chaincode:** In 26 the release 1.x versions of Fabric, one organization had the ability to set 27 parameters of a chaincode (for instance the endorsement policy) for all other 28 channel members. The new Fabric chaincode lifecycle is more flexible since 29 it supports both centralized trust models (such as that of the previous 30 lifecycle model) as well as decentralized models requiring a sufficient number 31 of organizations to agree on an endorsement policy before it goes into effect. 32 33 * **Safer chaincode upgrade process:** In the previous chaincode lifecycle, 34 the upgrade transaction could be issued by a single organization, creating a 35 risk for a channel member that had not yet installed the new chaincode. The 36 new model allows for a chaincode to be upgraded only after a sufficient 37 number of organizations have approved the upgrade. 38 39 * **Easier endorsement policy updates:** Fabric lifecycle allows you to change 40 an endorsement policy without having to repackage or reinstall the chaincode. 41 Users can also take advantage of a new default policy that requires endorsement 42 from a majority of members on the channel. This policy is updated automatically 43 when organizations are added or removed from the channel. 44 45 * **Inspectable chaincode packages:** The Fabric lifecycle packages chaincode in 46 easily readable tar files. This makes it easier to inspect the chaincode 47 package and coordinate installation across multiple organizations. 48 49 * **Start multiple chaincodes on a channel using one package:** The previous 50 lifecycle defined each chaincode on the channel using a name and version that 51 was specified when the chaincode package was installed. You can now use a 52 single chaincode package and deploy it multiple times with different names 53 on the same or different channel. 54 55 Using the new chaincode lifecycle 56 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 57 58 Use the following tutorials to get started with the new chaincode lifecycle: 59 60 * :doc:`chaincode4noah`: 61 Provides a detailed overview of the steps required to install and define a 62 chaincode, as well as the capabilities available with the new model. 63 64 * :doc:`build_network`: 65 If you want to start using the new lifecycle right away, the BYFN tutorial has 66 been updated to use the :doc:`commands/peerlifecycle` CLI to install and 67 define chaincode on a sample network. 68 69 * :doc:`private_data_tutorial`: 70 Has been updated to demonstrate how to use :doc:`private-data/private-data` 71 collections with the new chaincode lifecycle. 72 73 * :doc:`endorsement-policies`: 74 Learn how the new lifecycle allows you to use policies in the channel 75 configuration as chaincode endorsement policies. 76 77 Restrictions and limitations 78 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 79 80 The new Fabric chaincode lifecycle in the v2.0 Alpha release is not yet feature 81 complete. Specifically, be aware of the following limitations in the Alpha release: 82 83 - CouchDB indexes are not yet supported 84 - Chaincodes defined with the new lifecycle are not yet discoverable via service 85 discovery 86 87 These limitations will be resolved after the Alpha release. 88 89 FabToken 90 -------- 91 92 The Fabric 2.0 Alpha also provides users the ability to easily represent 93 assets as tokens on Fabric channels. FabToken is a token management system that 94 uses an Unspent Transaction Output (UTXO) model to issue, transfer, and redeem 95 tokens using the identity and membership infrastructure provided by Hyperledger 96 Fabric. 97 98 * :doc:`token/FabToken`: 99 This operations guide provides a detailed overview of how to use tokens on a 100 Fabric network. The guide also includes an example on how to create and 101 transfer tokens using the :doc:`commands/token` CLI. 102 103 Alpine images 104 ------------- 105 106 Starting with v2.0, Hyperledger Fabric Docker images will use Alpine Linux, a 107 security-oriented, lightweight Linux distribution. This means that Docker images 108 are now much smaller, providing faster download and startup 109 times, as well as taking up less disk space on host systems. Alpine Linux 110 is designed from the ground up with security in mind, and the 111 minimalist nature of the Alpine distribution greatly reduces the risk of 112 security vulnerabilities. 113 114 Raft ordering service 115 --------------------- 116 117 Introduced in v1.4.1, `Raft <https://raft.github.io/raft.pdf>`_ is a crash fault 118 tolerant (CFT) ordering service based on an implementation of Raft protocol in 119 `etcd <https://coreos.com/etcd/>`_. Raft follows a "leader and follower" model, 120 where a leader node is elected (per channel) and its decisions are replicated to 121 the followers. Raft ordering services should be easier to set up and manage than 122 Kafka-based ordering services, and their design allows organizations spread out 123 across the world to contribute nodes to a decentralized ordering service. 124 125 * :doc:`orderer/ordering_service`: 126 Describes the role of an ordering service in Fabric and an overview of the 127 two ordering service implementations currently available: Kafka and Raft. 128 129 * :doc:`raft_configuration`: 130 Shows the configuration parameters and considerations when deploying a Raft 131 ordering service. 132 133 * :doc:`orderer_deploy`: 134 Describes the process for deploying an ordering node, independent of what the 135 ordering service implementation will be. 136 137 * :doc:`build_network`: 138 Has been updated to allow you to use a Raft ordering service with a sample 139 network. 140 141 Release notes 142 ============= 143 144 The release notes provide more details for users moving to the new release, along 145 with a link to the full release change log. 146 147 * `Fabric v2.0.0-alpha release notes <https://github.com/hyperledger/fabric/releases/tag/v2.0.0-alpha>`_. 148 * `Fabric CA v2.0.0-alpha release notes <https://github.com/hyperledger/fabric-ca/releases/tag/v2.0.0-alpha>`_. 149 150 .. Licensed under Creative Commons Attribution 4.0 International License 151 https://creativecommons.org/licenses/by/4.0/