2017-09-04 140 views
1
peer chaincode install -n simple-token -v 1.0 -l java -p /Users/friends/Documents/Virtual\ Machines.localized/share/projects/hsl-hsl-user-guide-examples-v14/simple-token/simple-token-chaincode 

peer chaincode instantiate successed。为什么chaincode实例化成功,但查询失败

peer chaincode instantiate -o orderer:7050 -C helloch -n simple-token -v 1.0 -l java -c "{\"Args\":[\"init\",\"{'id':'admin1','nick':'admin','type':'ADMIN','balance':100}\", \"{'id':'LiLei','nick':'LiLei','type':'ORDINARY','balance':100}\", \"{'id':'HanMeimei','nick':'HanMeimei','type':'ORDINARY','balance':100}\"]}" 

但我的shell中的对等链代码查询失败不是cli docker,为什么? 其实,

peer chaincode query -o 127.0.0.1:7050 -C helloch -n hello -c "{\"Args\":[\"user.get\",\"\",\"LiLei\"]}" 

Error: Error endorsing query: rpc error: code = Unknown desc = could not find chaincode with name 'simple-token' - make sure the chaincode simple-token has been successfully instantiated and try again - hy

+0

您是否可以运行“docker ps”来查看链代码容器何时运行?或者docker“ps -a | grep -i hello”然后“docker logs containerID”来查看输出结果? –

+0

根据您的其他问题中提供的日志:https://stackoverflow.com/questions/46045970/why-peer-chaincode-instantiate-execuate-many-times-successfully似乎同伴根本无法获取块实例化交易,因此chaincode容器没有跨越,因此你无法查询你的chaincode。 –

回答

0

很有可能出事了,当对方真实目的是试图启动/启动chaincode。实例化调用仅创建一个事务,该事务通过订购者发送回对等方。因此,虽然CLI表示成功,但实际上意味着实例化事务已被对等方成功认可,然后成功提交给订购者。

你会想检查你的同伴的实际日志。

+0

似乎'peer chaincode instantiate'不会生成实例。因为我可以多次使用这个命令。只有一次是正确的。你能否告诉我一些实例化失败的原因? –

+0

它通常是编译链码的问题,或者其他问题是链码容器无法与对等进行通信。你应该能够看到你的实际对等的日志中的错误 –

+0

我认为原因是实例化失败。 –

1

描述的行为可能是由于对等体无法通过实例化命令获取块的事实。毕竟实例化命令是一个必须被批准,订购和提交的事务。可能让你困惑的是,peer cli成功地支持实例化事务并将其提交给订购服务。虽然它可能没有提交,因此chaincode容器没有启动,因此你无法查询你的chaincode。

+1

是的,它已经解决了。[这里](https://stackoverflow.com/questions/46045970/why-peer-chaincode-instantiate-execuate-many-times-successfully/46048140#46048140),谢谢! –

相关问题