peer channel create命令解析

peer channel create命令解析

我们以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

该命令执行过程:

  1. 发送消息,创建了channel,名字为$CHANNEL_NAME

  2. 获取创世区块,并且用protobuf进行序列化,本地生成了一个文件$CHANNEL_NAME.block

变量

变量名 含义
$CHANNEL_NAME 采用的是默认,为mychannel
$CORE_PEER_TLS_ENABLED /e2e_cli/base/peer-base.yaml中定义的环境变量,为true
- CORE_PEER_TLS_ENABLED=true
$ORDERER_CA orderer的证书
ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
目录在e2e_cli/crypto-config目录下

参数

查看fabric文档Commands Reference部分

参数名 含义
-o 连接的orderer的地址,hostname:port
-c channel的名称,默认为mychannel
-f 配置的交易信息(暂时还没搞清楚)
–tls 和orderer通信时是否启用tls
–cafile 使用tls时,所使用的orderer的证书

问题

orderer.example.com域名是如何解析的?

docker-compose本身就支持通过servicename进行访问。

参考:Networking in Compose

channel.tx

由工具configtxgen生成channel.tx

在e2e_cli例子中,e2e_cli/generateArtifacts.sh文件中

$CONFIGTXGEN -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID $CHANNEL_NAME

configtxgen根据配置文件configtx.yaml中的配置项TwoOrgsChannel来进行生成

查看channel.tx和genesis.block内容

对于channel.tx,可以通过工具configtxgen查看json格式数据

configtxgen -inspectChannelCreateTx channel.tx

对于genesis.block,可以通过工具configtxgen查看json格式数据

configtxgen -inspectBlock genesis.block

你可能感兴趣的:(hyperledger,fabric)