我已经使用this开发了一个chaincode,现在我知道它可以工作了,我想在具有多个节点的网络中对其进行测试。

我应该将链码放在哪里,以便可以在Hyperledger光纤网络中部署它。

我已经使用this设置了网络。

最佳答案

有两种选择:

  • 如果未使用docker映像启动节点,则应通过指定标准路径来部署链码,换句话说,应在部署时设置参数:
    -p /home/user/my/awesome/chaincode
  • 如果您正在docker镜像中运行节点/对等体(如您要遵循的说明来建立开发网络,则有两种选择):

    的第一个是将您的链式代码放入路径$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/

    10-10 04:41