fabric中链码的其他操作
1.链码的打包
通过链码对相关数据(如链码名称,版本,实例化策略)进行封装,可以使用package命令进行打包操作
$ peer chaincode package -n exacc -v 1.0 -p
github.com/chaincode/chaincode_example02/go/ -s -S -i
“AND(‘Org1MSP.admin’)” ccpack.out
2.链码的签名
对一个打包文件进行签名操作,可以使用signpackage命令来实现
$ peer chaincode signpackage ccpack.out signedccpack.out
指定生成的文件signpackage.out包含一个用本地MSP对包进行的附加签名。添加了签名的链码包可以进行如下处理
2.1 安装已经添加签名的链码
$ peer chaincode install signedccpack.out
2.2实例化并指定背书策略
$ peer chaincode instantiate -o orderer.example.com:7050 --tls –cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
-C $CHANNEL_NAME -n exacc -v 1.0 -c ‘{“Args”:[“init”,“a”, “100”, “b”,“200”]}’ -P “OR (‘Org1MSP.peer’,‘Org2MSP.peer’)”
2.3 测试链码
2.3.1查询
$ peer chaincode query -C $CHANNEL_NAME -n exacc -c
‘{“Args”:[“query”,“a”]}’
2.3.2 调用
$ peer chaincode invoke -o orderer.example.com:7050 --tls –cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
-C $CHANNEL_NAME -n exacc -c ‘{“Args”:[“invoke”,“a”,“b”,“10”]}’
2.3.3再查询
$ peer chaincode query -C $CHANNEL_NAME -n exacc -c
‘{“Args”:[“query”,“a”]}’
3.链码的升级
3.1 安装链码
$ peer chaincode install -n mycc -v 2.0 -p
github.com/chaincode/chaincode_example02/go/
3.2 升级链码
$ peer chaincode upgrade -o orderer.example.com:7050 --tls –cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
-C $CHANNEL_NAME -n mycc -v 2.0 -c ‘{“Args”:[“init”,“a”, “100”, “b”,“200”]}’ -P “OR (‘Org1MSP.peer’,‘Org2MSP.peer’)”
3.3 测试链码
3.3.1查询
$ peer chaincode query -C $CHANNEL_NAME -n mycc -c
‘{“Args”:[“query”,“a”]}’
3.3.2 调用
$ peer chaincode invoke -o orderer.example.com:7050 --tls –cafile
/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
-C $CHANNEL_NAME -n mycc -c ‘{“Args”:[“invoke”,“a”,“b”,“10”]}’
3.3.3再查询
$ peer chaincode query -C $CHANNEL_NAME -n mycc -c
‘{“Args”:[“query”,“a”]}’