获取链码代码mycc时出错:链码的路径不存在

时间:2019-01-31 08:05:07

标签: hyperledger-fabric hyperledger

我正在学习本教程:https://hyperledger-fabric.readthedocs.io/en/latest/build_network.html

现在我在对等服务器上,想要安装并实例化Chaincode。

为此,我正在这样做:

root@23096337731b:/opt/gopath/src/github.com/hyperledger/fabric/peer# peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric-samples/chaincode/chaincode_example02/go/

但是我得到以下输出:

2019-01-31 08:01:44.988 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-01-31 08:01:44.988 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Error: error getting chaincode code mycc: path to chaincode does not exist: /opt/gopath/src/github.com/hyperledger/fabric-samples/chaincode/chaincode_example02/go

更新:

我认为是因为我正在这样做:

peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric-samples/chaincode/chaincode_example02/go/

编译器认为github链接是本地目录。

2 个答案:

答案 0 :(得分:0)

首先,您需要检查链码是否在该文件夹中。另外,go链码的路径必须相对于gopath。

答案 1 :(得分:0)

关键点是必须正确安装链码的地方。

在教程源代码中,当您阅读文件docker-compose-cli.yaml时,将看到此行

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

./../chaincode是链码文件夹的路径

还有一件事,如果您为链码选择golang,则调用install chaincode时的路径会更短(read more):

# this installs the Go chaincode. For go chaincode -p takes the relative path from $GOPATH/src
peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric-samples/chaincode/chaincode_example02/go/

Node.js版本:

# this installs the Node.js chaincode
# make note of the -l flag to indicate "node" chaincode
# for node chaincode -p takes the absolute path to the node.js chaincode
peer chaincode install -n mycc -v 1.0 -l node -p /opt/gopath/src/github.com/hyperledger/fabric-samples/chaincode/chaincode_example02/node/