为什么chaincode实例化成功,但查询失败

时间:2017-09-04 10:33:33

标签: hyperledger-fabric

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实例化成功。

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\"]}"
  

错误:错误支持查询:rpc错误:代码=未知desc =找不到名称为'simple-token'的链代码 - 确保链代码简单令牌已成功实例化并再试一次 - hy

2 个答案:

答案 0 :(得分:1)

描述的行为可能是由于peer无法使用instantiate命令获取块。毕竟,instantiate命令是一个必须被认可,排序和提交的事务。可能让您困惑的是,peer cli成功支持实例化事务并将其提交给订购服务。虽然它可能没有提交,但因此链代码容器未启动,因此您无法查询链代码。

答案 1 :(得分:0)

当对等方实际尝试启动/启动链码时,可能出现了问题。实例化调用只是创建一个事务,该事务通过orderer发送回对等体。因此,虽然CLI表示成功,但真正意味着实例化事务已被对等方成功认可,然后成功提交给订货人。

您需要检查同行的实际日志。