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