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

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

 

 

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

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

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

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

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

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

  Channel:在网络中的若干个节点中组成的子网,用于隔绝子网与其它节点间的通讯和信息共享,Peer能够属于不一样的channel。事务

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

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

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

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

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

2、网络的构建流程

  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的执行和事务的处理流程彻底同样,将在下一篇里详细讲述)

相关文章
相关标签/搜索