github.com/darrenli6/fabric-sdk-example@v0.0.0-20220109053535-94b13b56df8c/docs/source/architecture.rst (about)

     1  Hyperledger Fabric is a unique implementation of distributed ledger
     2  technology (DLT) that ensures data integrity and consistency while
     3  delivering accountability, transparency, and efficiencies unmatched by
     4  other blockchain or DLT technology.
     5  
     6  Hyperledger Fabric implements a specific type of
     7  :doc:`permissioned <glossary#permissioned-network>` :doc:`blockchain
     8  network <glossary#blockchain-network>` on which members can track,
     9  exchange and interact with digitized assets using
    10  :doc:`transactions <glossary#transactions>` that are governed by smart
    11  contracts - what we call :doc:`chaincode <glossary#chaincode>` - in a
    12  secure and robust manner while enabling
    13  :doc:`participants <glossary#participants>` in the network to interact
    14  in a manner that ensures that their transactions and data can be
    15  restricted to an identified subset of network participants - something
    16  we call a :doc:`channel <glossary#channel>`.
    17  
    18  The blockchain network supports the ability for members to establish
    19  shared ledgers that contain the source of truth about those digitized
    20  assets, and recorded transactions, that is replicated in a secure manner
    21  only to the set of nodes participating in that channel.
    22  
    23  The Hyperledger Fabric architecture is comprised of the following
    24  components: peer nodes, ordering nodes and the clients applications that
    25  are likely leveraging one of the language-specific Hyperledger Fabric SDKs.
    26  These components have identities derived from certificate authorities.
    27  Hyperledger Fabric also offers a certificate authority service,
    28  *fabric-ca* but, you may substitute that with your own.
    29  
    30  All peer nodes maintain the ledger/state by committing transactions. In
    31  that role, the peer is called a :doc:`committer <glossary#commitment>`.
    32  Some peers are also responsible for simulating transactions by executing
    33  chaincodes (smart contracts) and endorsing the result. In that role the
    34  peer is called an :doc:`endorser <glossary#endorsement>`. A peer may be an
    35  endorser for certain types of transactions and just a ledger maintainer
    36  (committer) for others.
    37  
    38  The :doc:`orderers <glossary#ordering-service>` consent on the order of
    39  transactions in a block to be committed to the ledger. In common
    40  blockchain architectures (including earlier versions of the Hyperledger
    41  Fabric) the roles played by the peer and orderer nodes were unified (cf.
    42  validating peer in Hyperledger Fabric v0.6). The orderers also play a
    43  fundamental role in the creation and management of channels.
    44  
    45  Two or more :doc:`participants <glossary#participant>` may create and
    46  join a channel, and begin to interact. Among other things, the policies
    47  governing the channel membership and chaincode lifecycle are specified
    48  at the time of channel creation. Initially, the members in a channel
    49  agree on the terms of the chaincode that will govern the transactions.
    50  When consensus is reached on the :doc:`proposal <glossary#proposal>` to
    51  deploy a given chaincode (as governed by the life cycle policy for the
    52  channel), it is committed to the ledger.
    53  
    54  Once the chaincode is deployed to the peer nodes in the channel, :doc:`end
    55  users <glossary#end-users>` with the right privileges can propose
    56  transactions on the channel by using one of the language-specific client
    57  SDKs to invoke functions on the deployed chaincode.
    58  
    59  The proposed transactions are sent to endorsers that execute the
    60  chaincode (also called "simulated the transaction"). On successful
    61  execution, endorse the result using the peer's identity and return the
    62  result to the client that initiated the proposal.
    63  
    64  The client application ensures that the results from the endorsers are
    65  consistent and signed by the appropriate endorsers, according to the
    66  endorsement policy for that chaincode and, if so, the application then
    67  sends the transaction, comprised of the result and endorsements, to the
    68  ordering service.
    69  
    70  Ordering nodes order the transactions - the result and endorsements
    71  received from the clients - into a block which is then sent to the peer
    72  nodes to be committed to the ledger. The peers then validate the
    73  transaction using the endorsement policy for the transaction's chaincode
    74  and against the ledger for consistency of result.
    75  
    76  Some key capabilities of Hyperledger Fabric include:
    77  
    78  -  Allows for complex query for applications that need ability to handle
    79     complex data structures.
    80  
    81  -  Implements a permissioned network, also known as a consortia network,
    82     where all members are known to each other.
    83  
    84  -  Incorporates a modular approach to various capabilities, enabling
    85     network designers to plug in their preferred implementations for
    86     various capabilities such as consensus (ordering), identity
    87     management, and encryption.
    88  
    89  -  Provides a flexible approach for specifying policies and pluggable
    90     mechanisms to enforce them.
    91  
    92  -  Ability to have multiple channels, isolated from one another, that
    93     allows for multi-lateral transactions amongst select peer nodes,
    94     thereby ensuring high degrees of privacy and confidentiality required
    95     by competing businesses and highly regulated industries on a common
    96     network.
    97  
    98  -  Network scalability and performance are achieved through separation
    99     of chaincode execution from transaction ordering, which limits the
   100     required levels of trust and verification across nodes for
   101     optimization.
   102  
   103  For a deeper dive into the details, please visit :doc:`this
   104  document <arch-deep-dive>`.
   105  
   106  .. Licensed under Creative Commons Attribution 4.0 International License
   107     https://creativecommons.org/licenses/by/4.0/
   108