如何使用不在github上的链代码?

时间:2016-05-25 09:54:24

标签: blockchain hyperledger hyperledger-fabric

我使用this开发了一个链码,现在我知道它可行了我想在具有多个节点的网络中测试它。

我应该在哪里放置我的链码,以便我可以在Hyperledger结构网络中部署它?

我已使用this来设置网络。

2 个答案:

答案 0 :(得分:6)

有两种选择:

  1. 如果您没有使用docker镜像来启动节点,那么您应该通过指定完全限定的路径来部署链代码,换句话说,您应该在部署时设置参数:

    -p /home/user/my/awesome/chaincode

  2. 如果您在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文件夹(你应该放置你的链代码)和{{ 1}}设置GOPATH,以便相对路径可以从/ local-dev文件夹开始。

  3. 观察:github.com的路径可能会令人困惑,因为它似乎是从Github获取链代码,但它只是文件夹名称。

    重要提示:要部署链代码,只有一个对等方需要提供链代码文件(发布部署的文件),因为共识负责广播链代码。

    致@ghaskins的帮助,帮助他们了解如何做到这一点。

答案 1 :(得分:0)

通常,我将自己的链码放在github上。然后:

$ docker run -i -t hyperledger/fabric-peer /bin/bash

# git clone https://github.com/xxx/myOwnChaincode.git; exit

$ docker commit -m 'mm' -a 'aa'  containerId xxx/fabric-peer

最后,泊坞窗图像“xxx / fabric-peer”包含自编程链码。 对于所有这些步骤,我编写了一个shell脚本,它对我来说非常好。