4.Peer操作
5.链码初始化
背书策略的几种方式:
-
AND
AND (‘Org1MSP.member’, ‘Org2MSP.member’, ‘Org3MSP.member’)
按照该背书规则进行交易, 必须通过组织Org1MSP,Org2MSP,Org3MSP中的用户共同验证交易才能生效 -
OR
OR (‘Org1MSP.member’, ‘Org2MSP.member’, ‘Org3MSP.member’)
按照该背书规则进行交易,只需要通过组织 Org1MSP 或 Org2MSP 或 Org3MSP 中的任何一个成员验证即可生效 -
组合形式
-
OR (‘Org1MSP.member’, AND(‘Org2MSP.member’, ‘Org3MSP.member’))
按照该背书规则进行交易,需要Org1MSP同意或者Org2MSP,Org3MSP两者同时同意才能生效
-
AND (‘Org1MSP.member’, OR(‘Org2MSP.member’, ‘Org3MSP.member’))
按照该背书规则进行交易,需要 Org1MSP 同意并且 Org1MSP , Org1MSP之中至少任意有一个成员同意,才能生效.
-
背书规则只针对chaincode中写入数据的操作进行校验,对于查询类操作不背书.
peer chaincode instantiate [flags]
-o, --orderer string: orderer 节点地址
-C, --channelID string: 通道ID
-v, --version string: 链码版本
-l, --lang string: 链码语言
-n, --name string: 安装的链码的名字
-c, --ctor string: 链码json格式的调用
-P, --policy string: 背书策略
–tls: 是否加密
–cafile string: orderer节点tls证书的目录地址
- 初始化链码
#命令
tlsfile=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/github.com/msp/tlscacerts/tlsca.github.com-cert.pem
peer chaincode instantiate -o orderer.github.com:7050 --tls --cafile $tlsfile -C githubchannel -n githubcc -v 1.0 -P "AND ('OrgGoMSP.member', 'OrgCppMSP.member')" -c '{"Args":["init","a","100","b","200"]}'
如果执行错误,需要重新开启相关服务:
docker-compose -f docker-compose-cli.yaml down #先关闭容器
docker volume prune #把所有未使用的节点关闭
然后从启动网络重新开始
6.链码查询
peer chaincode query