使用超级账本结构调用chaincode:在$ PATH \中找不到可执行文件:“:unknown”

问题描述

因此,我有一个基于fabric-samples中fabcar示例的chaincode应用程序。昨天,我能够启动它并运行initLedger函数,但是在运行进一步的调用时发现链代码存在问题。但是,当我在调试后重新启动网络时(事实证明这是Go的噩梦),我无法再执行InitLedger,这只会给我以下错误

-Dspring.output.ansi.enabled=always

据我所知,这是由于docker的问题引起的,但是我无法真正弄清楚如何解决我的情况。以前有人遇到过吗?

有关更多信息,fabcar链代码和我的fabcar之间的主要区别在于,我正在从JSON文件读取并将其映射到对象列表,然后将这些对象放在我的区块链上。至少那是我想要做的,因为有一次我设法运行InitLedger,我的QueryAll调用空了。

解决方法

检查chaincode路径。我认为您的chaincode路径错误。

让我们说您正在映射chaincode目录,如下所示。

volumes:
  ../chaincode:/opt/gopath/src/github.com/chaincode

然后export CC_SRC_PATH=/opt/gopath/src/github.com/chaincode

在执行调用命令时使用上面的路径。您可以添加-p ${CC_SRC_PATH}

peer chaincode install -n mycc -v ${VERSION} -l ${LANGUAGE} -p ${CC_SRC_PATH} >&log.txt

注意:我假设您正在cli容器中运行所有这些命令