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/