Fabric1.4源码解析:客户端创建通道过程
在使用Fabric创建通道的时候,通常我们执行一条命令完成,这篇文章就解析一下执行这条命令后Fabric源码中执行的流程。 peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls true --cafile $ORDERER_CA 整个流程的切入点在 fabric/peer/main.go 文件中的 main() 方法 (本文中使用的是Fabric1.4版本,不同版本中内容可能不同) 。这个方法中也定义了Peer节点可以执行的命令,有关于版本的: version.Cmd() ,关于节点状态的: node.Cmd() ,关于链码的: chaincode.Cmd(nil) ,关于客户端日志的: clilogging.Cmd(nil) ,最后一个就是关于通道的: channel.Cmd(nil) 。所以我们就从这里入手,看一下创建通道的整体流程是什么样的。 点进行后,转到了 peer/channel/channel.go 文件中第49行,其中定义了Peer节点可以执行的对通道进行操作的相关命令: func Cmd(cf *ChannelCmdFactory) *cobra.Command { AddFlags(channelCmd) #创建通道