我已经使用this开发了一个chaincode,现在我知道它可以工作了,我想在具有多个节点的网络中对其进行测试。
我应该将链码放在哪里,以便可以在Hyperledger光纤网络中部署它。
我已经使用this设置了网络。
最佳答案
有两种选择:
-p /home/user/my/awesome/chaincode
的第一个是将您的链式代码放入路径
$GOPATH/src/github.com/hyperledger/fabric/peer
中的文件夹中。然后,您可以构建图像(go test -run BuildImage_Peer
)。现在,docker映像将在其文件系统中包含链码(您可以通过使用
docker run --rm -it -e CORE_VM_ENDPOINT=http://172.17.0.1:2375 -e CORE_PEER_ID=vp0 -e CORE_PEER_ADDRESSAUTODETECT=true hyperledger-peer /bin/bash
进行导航来对其进行检查)。最后,要部署链码,您必须将路径(参数-p)设置到包含链码的文件夹(相对于
$GOPATH/src/
)。该路径为:github.com/hyperledger/fabric/peer/yourfolderwiththecc
。第二个选项类似(尚未测试),但是它在docker和vagrant之间使用shared filesystem访问链码。这个想法是使用
-v local-dev:localdev
之类的东西运行docker,以便将docker映像中的local-dev文件夹链接到vagrant的local-dev文件夹(您应该在其中放置链码),并使用-e GOPATH=/local-dev
设置GOPATH以便相对路径可以从/ local-dev文件夹开始。 观察:github.com的路径可能令人困惑,因为似乎它是从Github获取链码的,但它只是文件夹名称。
重要提示:部署链码时,只有一个对等方需要有可用的链码文件(发送部署的文件),因为共识负责广播链码。
感谢@ghaskins的帮助,帮助他弄清楚如何做到这一点。
关于blockchain - 如何使用不在github上的链码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37433618/