Hyperledger fabric 1.0Beta网络组成及构建流程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hyperledger fabric 1.0Beta网络组成及构建流程相关的知识,希望对你有一定的参考价值。

一、fabric网络结构(暂时不包括CA)

技术分享

 

 

  如上图所示,在fabric网络中,O表示Orderer,P代表Peer,EP代表Endorsing Peer(endorser),CC代表Chaincode以及Client、Channel、Ledger、Transaction,由它们组成了整个网络,下面对每种元素进行介绍:

  Client:安装在节点(Peer)处的客户端,可以发起构建channel的请求,也可以创建和发起事务(transaction);它不能直接操作chaincode,必须通过peer。

  Peer:从orderer处获取区块用于维护当前状态以及存储在本地的帐本(ledger)。

  Transaction:部署事务(Deploy Transaction)用于生成新的chaincode;唤醒事务(Invoke Transaction)用于通过chaincode执行一次操作。

  Endorsing Peer:一种特殊的节点,在channel内部署chaincode的时候需定义好备书节点列表;在Client发起事务时,在备书节点上模拟该事务的执行并返回响应。

  Orderer:负责维护网络中的多个channgel;负责接收Client通过备书策略后的事务消息,将事务进行排序放入block中,再传递给该channel中的所有peer。

  Channel:在网络中的若干个节点中组成的子网,用于隔绝子网与其它节点间的通信和信息共享,Peer可以属于不同的channel。

  Orderer System Channel:是网络中创建的第一个channel,channel能有多个,但Orderer System Channel有且只能有一个,它根据配置文件创建,对它具有读权限可以看到所有生成的  channel,不推荐在该channel跑任何应用。

  Chaincode:是运行在peer上的一段程序,用于对当前状态或帐本进行读写操作。

  Ledger:对channel中所有事务的执行结果的一个有序的、防篡改的记录。

  Anchor Peer:属于多个channel的节点。

  Leading Peer: channel中负责与orderer通信的节点。

二、网络的构建流程

  1. 系统开始部署时,会根据channel配置文件自动生成orderer system channel,这是网络中的第一个channel,channel上的节点都是Orderer;
  2. client发送createChannel消息结某个orderer来创建一个channel,order经过多重认证后生成一个配置模板,并将带有这个新建channel配置的CONFIG事务发送至orderer system channel;
  3. client通过对orderer轮询channel是否创建成功,若成功,通过该channel发送joinChannel消息邀请相应的节点加入到该channel中;
  4. client调用installChaincode将chaincode源码存放位置及相关信息告知channel内的所有节点;
  5. chainCode实例化:client通过channel发送sendInstantiateProposal消息至备书节点,通过channel的备书策略决定是否通过;
  6. client将备书节点的签名封装在事务消息中,发送至orderer,由orderer封装成block后发送至其它节点,其它节点收到收到block后判断事务的有效性,若有效则完成实例化。

  (5,6的执行和事务的处理流程完全一样,将在下一篇里详细讲述)

以上是关于Hyperledger fabric 1.0Beta网络组成及构建流程的主要内容,如果未能解决你的问题,请参考以下文章

Hyperledger Fabric 1.0 公有云安装4--源码操作

Hyperledger Fabric 1.0 从零开始——Fabric源码及镜像文件处理

HyperLedger Fabric 1.0的Transaction处理流程

Hyperledger fabric 1.0Beta网络组成及构建流程

Hyperledger Fabric 1.0 从零开始——创建Fabric多节点集群

Hyperledger Fabric 1.0 从零开始——公网环境构建