错误查询链码:MSP DEFAULT 未知

Error query chaincode: MSP DEFAULT is unknown

我已经部署了来自 Hyperledger Fabric 演示的示例 "first network"。当我 运行 这个:

./byfn.sh -m up

它执行没有错误。当 docker 还在 运行ning 时,我尝试 运行

peer query -C mychannel -n mycc -c {"Args":["query","a"]} 

我收到一个错误:

"failed to deserialize identity, err MSP DEFAULT is unknown".

我做了一些研究,但没有找到任何帮助。有人有想法吗? 对不起,我希望我就在这个频道里。非常感谢! 查询是从 script.sh 复制的,由

调用
./byfn.sh -m up

如果我直接 运行 它不知何故不起作用。

您的问题中缺少的是您 运行 的确切位置:

peer query -C mychannel -n mycc -c {"Args":["query","a"]}

为了peer cli能够正确运行,您必须提供一组环境变量。基本上,您需要指向背书节点和 MSP 配置,同时设置 MSP ID。所以我的教育猜测是,您没有配置这些值,因此出现错误。

为了解决您的问题,您可以:

  1. 连接到已初始化的 cli docker 图像,并在您完成 运行 后连接

$ ./byfn -m up

通过调用 $ docker exec -it cli /bin/bash

这将提示您已经使用我在上面解释过的参数配置了容器。

  1. 另一种方法是自行设置这些参数,例如:
$ export CORE_PEER_ADDRESS=endorsing_peer_IP:7051
$ export CORE_PEER_LOCALMSPID=Org1MSP
$ export CORE_PEER_MSPCONFIGPATH=/tmp/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp

其中 endorsing_peer_IP 是背书节点的 IP,CORE_PEER_MSPCONFIGPATH 指向 MSP 目录。