Fabric命令手册

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

peer lifecycle chaincode checkcommitreadiness

管理员可以使用peer lifecycle chaincode checkcommitreadiness子命令 检查指定的链码是否可以向通道提交。

peer lifecycle chaincode checkcommitreadiness是Hyperledger Fabric 2.0新增的命令。

使用方法

peer lifecycle chaincode checkcommitreadiness [flags]

参数说明:

  • flags:可用标志,包括局部标志和全局标志

局部标志

peer lifecycle chaincode checkcommitreadiness命令的可用局部标志如下:

    --channel-config-policy string   链码背书策略
-C, --channelID string               通道ID
    --collections-config string      collection文件路径
    --connectionProfile string       Fabric网络连接配置文件路径
-E, --endorsement-plugin string      用于此链码的背书插件名称
-h, --help                           命令的帮助信息
    --init-required                  是否需要调用链码的init方法
-n, --name string                    链码名称
-O, --output string                  查询结果输出格式。默认是平文件,可选:json
    --peerAddresses stringArray      要连接的peer节点
    --sequence int                   通道链码定义序列号,默认值:1
    --signature-policy string        签名策略
    --tlsRootCertFiles stringArray   如果启用了TLS,该标志用来声明所连接peer节点的TLS根证书    
-V, --validation-plugin string       用于此链码的验证插件名称
-v, --version string                 链码版本

全局标志

peer lifecycle chaincode checkcommitreadiness命令的可用全局标志如下:

    --cafile string                       PEM编码的CA证书文件路径
    --certfile string                     双向TLS通讯所需的PEM编码的X509证书文件路径
    --clientauth                          与排序节点的通讯是否启用双向TLS
    --connTimeout duration                客户端连接超时,默认值:3秒
-h, --help                                帮助信息
    --keyfile string                      双向TLS通讯所需的PEM编码的私钥文件
-o, --orderer string                      排序节点地址
    --ordererTLSHostnameOverride string   验证TLS连接时使用的排序节点主机名
    --tls                                 与排序节点通信时是否启用TLS

示例代码

可以使用peer lifecycle chaincode checkcommitreadiness命令查看指定的 链码定义是否可以提交。如果后续提交可以成功,该命令将成功返回。该命令 同时也会输出哪些机构已经批准了该链码定义。如果一个机构已经批准了指定的 链码定义,该命令将返回true。可以使用该命令在向通道提交链码之前查看是否 有足够数量的通道成员批准了该链码定义以满足Application/Channel/Endorsement策略的要求。

下面的命令检查通道mychannel上链码mycc(版本1.0)是否可以提交:

export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

peer lifecycle chaincode checkcommitreadiness \
  -o orderer.example.com:7050 --channelID mychannel \
  --tls --cafile $ORDERER_CA --name mycc --version 1.0 \
  --init-required --sequence 1

如果成功的话,该命令将返回已经批准链码定义的机构:

Chaincode definition for chaincode 'mycc', version '1.0', sequence '1' on channel
'mychannel' approval status by org:
Org1MSP: true
Org2MSP: true

也可以使用--output标志输出JSON格式的内容:

export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem

peer lifecycle chaincode checkcommitreadiness \
  -o orderer.example.com:7050 --channelID mychannel --tls \
  --cafile $ORDERER_CA --name mycc --version 1.0 \
  --init-required --sequence 1 --output json

成功的话,上述命令将返回如下结果:

{
   "Approvals": {
      "Org1MSP": true,
      "Org2MSP": true
   }
}