Fabric智能合约部署问题排查

docker exec -it cli bash
CORE_PEER_LOCALMSPID="Org1MSP"
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.xxxx.com/users/Admin@org1.xxx.com/msp
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.xxx.com/peers/peer0.org1.xxx.com/tls/ca.crt
CORE_PEER_ADDRESS=192.168.0.192:7051
ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/xxx.com/orderers/orderer0.xxx.com/msp/tlscacerts/tlsca.xxx.com-cert.pem
CORE_PEER_TLS_ENABLED=true

ORDERER_ADDRESS=192.168.0.192:7050
CHAINCODE_NAME=test
CHAINCODE_VERSION=1.0
CHANNEL_NAME=mychannel

可通过修改CORE_PEER_TLS_ROOTCERT_FILECORE_PEER_ADDRESS来切换不同的peer。

#查看该peer所属channel
peer channel list

#Install chaincode on peer0.org1,需要每个peer单独install,但仅需在一个peer instantiate.
peer chaincode install -n $CHAINCODE_NAME -v 1.0 -p github.com/salarypay

#Instantiate the chaincode
peer chaincode instantiate -o 192.168.0.192:7050 --tls true --cafile $ORDERER_CA -C mychannel-n test -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR('Org1MSP.member','Org2MSP.member')"

#invoke调用智能合约。根据智能合约中写的函数和参数要求来调用
peer chaincode invoke -o $ORDERER_ADDRESS -C mychannel-n $CHAINCODE_NAME -v $CHAINCODE_VERSION -c '{"Args":["createDestituteSalary","aea12582475b4650a56195ff2db1c52e","{\"id\":\"aea12582475b4650a56195ff2db1c52e\",\"doctype\":\"destiSalary\",\"applyer_id\":\"2\",\"poor_id\":\"3\",\"metadata\":{\"bcIsinventory\":0,\"memberId\":\"aea12582475b4650a56195ff2db1c52e\"}}"]}' --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA


#query调用智能合约。根据智能合约中写的函数和参数要求来调用
peer chaincode query -o $ORDERER_ADDRESS -C mychannel -n $CHAINCODE_NAME -v $CHAINCODE_VERSION -c '{"Args":["query","destiSalary:aea12582475b4650a56195ff2db1c52e"]}' --tls $CORE_PEER_TLS_ENABLED --cafile $ORDERER_CA

#getccdata用于获取合约的数据。查询zzzg智能合约在mychannel 上是否实例化instantiate成功,若实例化instantiate成功了,则会返回数据。若不成功,则会报错“ chaincode error (status: 500, message: could not find chaincode with name ‘zzzg’)”

peer chaincode query -C $CHANNEL_NAME -n lscc -c '{"Args":["getccdata","mychannel ","zzzg"]}'

#getchaincodes方法用于获取在部署在通道上的合约的列表。如下CLI命令从通道mychannel 上获取实例化的合约列表。

peer chaincode query -o 192.168.1.8:7050  --tls true --cafile $ORDERER_CA -C $CHANNEL_NAME -n lscc -c '{"Args":["getchaincodes"]}'

#返回数据如下,列表中显示的是所有在mychannel 中实例化成功的合约列表。

2019-01-11 03:19:19.225 UTC [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 00a Chaincode invoke successful. result: status:200 payload:"
\n-\n\003aaa\022\0031.0\032\016github.com/aaa\"\005<nil>*\004escc2\004vscc\n/\n\004
abcd\022\0031.0\032\017github.com/abcd\"\005<nil>*\004escc2\004vscc\nT\n\002
c4\022\0031.0\032=github.com/hyperledger/fabric/examples/chaincode/go/logistics*\004escc2\004vscc\n`\n\004
mycc\022\0031.0\032Ggithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02*\004escc2\004vscc\n\030\n\005
newcc\022\0031.0*\004escc2\004vscc\n*\n\005
testa\022\0032.0\032\020github.com/testa*\004escc2\004vscc\n1\n\005
testb\022\0031.0\032\020github.com/testb\"\005<nil>*\004escc2\004vscc\n1\n\005
testc\022\0031.0\032\020github.com/testc\"\005<nil>*\004escc2\004vscc\nL\n\010
zouyudid\022\0031.0\032(github.com/chaincode/chaincode_example02\"\005<nil>*\004escc2\004vscc\n7\n\010
zouyudie\022\0031.0\032\023github.com/zouyudie\"\005<nil>*\004escc2\004vscc\nL\n\010
zouyudif\022\0031.0\032(github.com/chaincode/chaincode_example02\"\005<nil>*\004escc2\004vscc\nH\n\004
zzza\022\0031.0\032(github.com/chaincode/chaincode_example02\"\005<nil>*\004escc2\004vscc\nH\n\004
zzzd\022\0031.0\032(github.com/chaincode/chaincode_example02\"\005<nil>*\004escc2\004vscc\nH\n\004
zzzi\022\0031.0\032(github.com/chaincode/chaincode_example02\"\005<nil>*\004escc2\004vscc" 

#getdepspec方法用于获取安装在peer上的合约的chaincode deployment spec。下面的CLI命令将从通道mychannel 中获取zzzg合约的deployment spec。

peer chaincode query -C $CHANNEL_NAME -n lscc -c '{"Args":["getdepspec", "mychannel ", "zzzg"]}'

#getinstalledchaincodes方法用于获取在peer上安装install的合约的列表。

peer chaincode query -C "" -n lscc -c '{"Args":["getinstalledchaincodes"]}'

#返回的数据为所有在该peer install成功的智能合约列表:

Query Result: 
 
aaa1.0github.com/aaa
 
abcd1.0github.com/abcd
H
c41.0=github.com/hyperledger/fabric/examples/chaincode/go/logistics
T
mycc1.0Ggithub.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
 
testa1.0github.com/testa
 
testa2.0github.com/testa
 
testb1.0github.com/testb
 
testc1.0github.com/testc
`                                                                                                                                                                                             z
ouyudia1.0Ogithub.com/hyperledger/fabric/examples/e2e_cli/chaincode/go/chaincode_example02`                                                                                                                                                                                             z
ouyudib1.0Ogithub.com/hyperledger/fabric/examples/e2e_cli/chaincode/go/chaincode_example02`                                                                                                                                                                                             z
ouyudic1.0Ogithub.com/hyperledger/fabric/examples/e2e_cli/chaincode/go/chaincode_example029                                                                                                                                                                                             z
ouyudid1.0(github.com/chaincode/chaincode_example02$                                                                                                                                                                                             z
ouyudie1.0github.com/zouyudie9                                                                                                                                                                                             z
ouyudif1.0(github.com/chaincode/chaincode_example029                                                                                                                                                                                             z
ouyudig1.0(github.com/chaincode/chaincode_example029                                                                                                                                                                                             z
ouyudih1.0(github.com/chaincode/chaincode_example025
zzza1.0(github.com/chaincode/chaincode_example02
5
zzzb1.0(github.com/chaincode/chaincode_example02
5
zzzc1.0(github.com/chaincode/chaincode_example02
5
zzzd1.0(github.com/chaincode/chaincode_example02
5
zzze1.0(github.com/chaincode/chaincode_example02
5
zzzf1.0(github.com/chaincode/chaincode_example02
5
zzzg1.0(github.com/chaincode/chaincode_example02
5

#getid用于获取合约的id。若实例化instantiate成功了,则会返回数据。若不成功,则会报错“ chaincode error (status: 500, message: could not find chaincode with name ‘zzzg’)”

peer chaincode query -C $CHANNEL_NAME -n lscc -c '{"Args":["getid","mychannel ","zzzi"]}'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值