peer channel create解析
目的
- peer channel create命令如何进行操作,以及操作选项
- peer channel create命令的内部逻辑流程分析(不涉及到远程orderer执行)
简介
peer channel create 是用于创建通道的命令,该命令首先构造一个common.Evelope的消息包,然后发送给orderer,由orderer完成通道的创建。而create构造消息的过程依赖于通道配置文件channel.tx,channel.tx的生成依赖于configtx.yaml。我们用一张图来展示整个流程的大致步骤:
那么创建通过命令执行后做了哪些事情?
- 创建了基于通道名称对应的通道
- 配置了通道上的锚节点?(虽然配置文件当中包含,但是待进一步确认)
命令分析
命令选项
查看fabric文档Commands Reference部分,peer channel create的命令行选项如下:
参数名 | 含义 |
---|---|
-o | 连接的orderer的地址,hostname:port |
-c | channel的名称,默认为mychannel |
-f | 配置的交易信息(暂时还没搞清楚) |
–tls | 和orderer通信时是否启用tls |
–cafile | 使用tls时,所使用的orderer的证书 |
操作样例
我们以fabric/example/e2e_cli
为例,在e2e_cli
目录下中script/script.sh
文件,createChannel
函数中,创建channel语句为:
peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA >&log.txt
其中的变量含义如下:
变量名 | 含义 |
---|---|
$CHANNEL_NAME | 采用的是默认,为mychannel |
$CORE_PEER_TLS_ENABLED | /e2e_cli/base/peer-base.yaml中定义的环境变量,为true- CORE_PEER_TLS_ENABLED=true |
$ORDERE |