我正在尝试在我的本地Hyperledger Fabric v1.0环境中安装自定义链代码。
为此,我按照文档build your first network进行操作,并在github项目中使用第一个网络示例。不,它正在运行./byfn.sh -m up
并执行所有脚本以进行通道创建,链代码安装和实例化,所有这些都是通过运行script.sh文件完成的。
现在我更改了以下内容以试用我的自定义链码
peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02>&log.txt
我已经改为
peer chaincode install -n mycc -v 1.0 -p github.com/myuserId/fabrcicV1_chaincodes/mychaincode >&log.txt
现在运行./byfn.sh -m up
获取异常
2017-08-22 11:01:17.048 UTC [msp] GetDefaultSigningIdentity -> DEBU 002 Obtaining default signing identity
2017-08-22 11:01:17.048 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 003 Using default escc
2017-08-22 11:01:17.048 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 004 Using default vscc
Error: Error getting chaincode code chaincode: path to chaincode does not exist: github.com/myuserId/fabrcicV1_chaincodes/mychaincode
Usage:
peer chaincode install [flags]
Flags:
-c, --ctor string Constructor message for the chaincode in JSON format (default "{}")
-l, --lang string Language the chaincode is written in (default "golang")
-n, --name string Name of the chaincode
-p, --path string Path to chaincode
-v, --version string Version of the chaincode specified in install/instantiate/upgrade commands
Global Flags:
--cafile string Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoi
--logging-level string Default logging level and overrides, see core.yaml for full syntax
-o, --orderer string Ordering service endpoint
--test.coverprofile string Done (default "coverage.cov")
--tls Use TLS when communicating with the orderer endpoint
!!!!!!!!!!!!!!! Chaincode installation on remote peer PEER0 has Failed !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========
我有github的存储库,那么为什么它没有显示不退出?
我已经克隆与路径$ GOPATH / src / github.com /下的 Windows 7 机器相同,并给出了本地路径,然后我也得到了相同的错误。我通过Docker快速启动终端运行所有命令 windows 7 。
请说明我做错了。
同样在某些网络日志中,我找到了一个位置/opt/gopath/src/github.com/....
以及它所指向的位置。在我的Windows路径中,gopath是/c/users/public/fabricv1
。
由于我对该工具不太熟悉,请对此进行评论。
从我这边做了一些分析之后,看起来像是链码 正在阅读一些预先安装的目录 sacc /,fabcar /,/ marble02 路径下的,chaincode_example_02,hyperledger /
root@7785f8b27559:/opt/gopath/src/chaincodedev/chaincode#
和 链码也在网络建立时预先加载 使用泊坞窗图片。通过添加链码似乎 没有效果 Windows文件夹 ,它来自上述虚拟机路径。那么我现在可以做些什么来继续我的工作呢?有没有办法安装 我的自定义链码到本地网络。我试着用我的githhub路径 和本地路径,但没有用。请有人帮忙:(
答案 0 :(得分:7)
您似乎没有$ GOPATH中的链码,您需要运行:
go get github.com/myuserId/fabrcicV1_chaincodes/mychaincode
在尝试在peer上安装链代码之前,如果您使用构建第一个网络,则需要确保fabric-samples/chaincode
文件夹中的新链代码。另请注意,您需要将带有链代码的文件夹挂载到docker cli容器中,请参阅当前docker-compose-cli.yaml
文件的示例:
volumes:
- /var/run/:/host/var/run/
- ./../chaincode/:/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go
- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
- ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/
- ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts
特别是,你可能需要在这里替换你的链代码或确保在cli容器的$GOPATH
内安装一个额外的文件夹:
- ./../chaincode/:/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go