我正在学习本教程: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链接是本地目录。
答案 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/