Hyperledger Fabric交易流程介绍
Hyperledger Fabric是一个许可的区块链架构(permissioned blockchain infrastructure)。其由IBM和Digital Asset最初贡献给Hyperledger项目。它提供一个模块化的架构,把架构中的节点、智能合约的执行(Fabric项目中称为”chaincode”)以及可配置的共识和成员服务。—wikipedia
基本元件介绍
Hyperledger Fabric中有以下各种基本元件:
Application:应用程序终端,交易请求的发起者。必须连到peer以进行操作。
Peer:区块链网络基本上由peer组成,负责保存区块链帐本(ledger)以及智能合约(chaincode)。一个peer可以存放多个ledger及chaincode。
图中区块链网络总共有三个peer,各保存一个chaincode及一个ledger
Channel:一个用来达到私密通讯及交易的机制。加入channel的节点都需要维护一份相同的ledger,并且也只有加入channel的节点可以存取这份ledger,以此达到保护隐私的作用。
图中Application A可以透过channel C与P1及P2沟通,其他peer无法存取L1。
Orderer:是一种特殊节点用来确保peers的ledger一致性,主要负责排序交易并且打包成区块回传给peer以加入区块链(这部分后面会详细解释)。
简易交易流程
Application连接peer Peer发起提案(proposal) :查询或更新帐本
2.1 peer根据chaincode执行提案
2.2根据提案内容(查询或更新帐本)产生提案回应 各peer回传提案回应给Application。如果是query那么到此就完成了,如果是update就继续进行下一步 Application收集各peer回传的提案回应后建立一个transaction发给orderer要求排序
4.1 orderer收集整个网络内的transaction并打包成区块,然后把区块送给所有peer
4.2 peer收到区块后会进行验证,通过后就把区块加到帐本上 更新完帐本后peer会产生一个event给A通知交易已经完成
详细交易流程
Phase1: 提案
A1产生一个交易提案然后发给P1及P2,P1及P2各自依照S1执行产生R1及R2但这时并不会直接更新到帐本上,而是加上背书E1及E2然后回传给A1,而当A1收到足够的提案回应之后就完成了这个阶段。
Phase2:排序及打包
应用程序完成了phase1之后就会把交易送到orderer,在图中看到许多应用程序把交易送到O1,由O1将这些交易排序,排序不一定是依照O1收到各交易的时间,但经过这步骤之后交易的顺序就从此固定。当收集到的交易量达到某个大小(BatchSize)或超过某个时间(BatchTimeout)后,O1就会将这些交易打包成区块并且发送给channel中的所有peer(没有直接与O1连接的peer可以透过gossip protocol取得整个区块链)。
Phase3: 验证及发布
当O1把区块发送到peer时,peer会进行验证的动作。每个peer都会针对区块中的每一个交易进行验证。不同交易可能有不同的背书策略,所以每一个交易都需要经过完整的验证。通过之后就可以进行把区块加入帐本前与加入后的相容性检查。最后才是正式加入帐本。然后产生一个event通知Application。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。