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

转载于:https://www.cnblogs.com/qinglizi/p/7056818.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值