美文网首页
Fabric源码分析-加入Channel

Fabric源码分析-加入Channel

作者: 史圣杰 | 来源:发表于2018-12-27 10:14 被阅读0次

Orderer节点创建完Channel后,会将该Channel的创世块返回,有了这个创世块,就可以通知Peer加入Channel了。Peer的背书Client会发送Proposal到指定的Peer的背书Server,Server端执行系统ChainCode-cscc,加入Channel中。

1. 使用

peer channel create的时候会生成一个指定channel的创世块文件,使用这个文件就可以通知peer加入节点,FABRIC_CFG_PATH指定了要加入channel的peer节点配置,也可以只配置CORE_PEER_ADDREEE;MSP相关的环境变量用于签名。

export set FABRIC_CFG_PATH=/../../../peer
export set CORE_PEER_LOCALMSPID=CoreMSP
export set CORE_PEER_MSPCONFIGPATH=/../..crypto-config/peerOrganizations/core.jianshu.com/users/Admin@core.jianshu.com/msp

peer channel join -b mychannel.block

2. 主要流程

2.1 cli

执行peer命令的这部分程序,作为调用方,主要流程如下:

  1. InitCmdFactory 初始化EndorserClient,建立与Peer的连接
  2. 读取指定的创世块,构造一个ChaincodeSpec,说明需要调用的chaincode类型和id,最后封装为ChaincodeInvocationSpec
  3. 创建Proposal,将ChaincodeInvocationSpec作为Payload的内容,然后使用本地MSP签名
  4. 使用EndorserClient发送Proposal

2.2 EndorserServer

Peer节点启动过程中,会启动一个EndorserServer,用来对客户端的Proposal进行背书,并调用chaincode进行处理,返回ProposalResponse。

  1. 对收到的Proposal进行验证,对结构,策略,签名进行校验
  2. 判断chaincode是否为系统chaincode
  3. 根据Channel的名称初始化本地账本PeerLedger
  4. 创建交易模拟器,执行返回数据
  5. 对执行结构背书,封装为ProposalResponse返回

相关文章

网友评论

      本文标题:Fabric源码分析-加入Channel

      本文链接:https://www.haomeiwen.com/subject/klollqtx.html