在同一个组织的多个对等节点上使用外部链码?

时间:2020-07-02 18:06:19

标签: hyperledger-fabric hyperledger-chaincode

我正在使用Fabric 2.0和外部chaincode功能。我有一个拥有2个认可同行的组织。我在一个对等节点上测试了外部链码,它可以工作,但是如何在多个对等节点上使用它呢?

Fabric的文档说:“ chaincode现在可以作为其生命周期在Fabric外部管理的服务运行,而不是在每个对等节点上构建和启动链码。” 这是否意味着无论同伴数量多大,我都只需要一个外部chaincode容器?

我也需要在另一个对等节点上安装chaincode吗?同样,在安装链码期间,它会为我提供我在链码内部使用的CCID。但是,如果我将链码安装在第二个对等点上,它会给我另一个CCID,但我不知道该怎么做。

2 个答案:

答案 0 :(得分:1)

外部构建器使您可以灵活地确定链码的实际生成方式/位置/时间。例如,您可以:

  • 将您的链码构建为docker容器,将其推送到docker存储库,然后在“外部生成器”过程中简单地提取映像。
  • 让每个对等方使用本地文件系统中的工具链在本地构建链码二进制文件的副本。
  • 构建一个二进制文件并将其作为安装软件包的一部分推出,然后简单地执行它。

无论实际构建链代码的位置/方式/时间如何,您都需要在每个将执行链代码的对等方上安装链代码包。您还需要为对等方配置正确的外部构建器,以使用您的包类型。

答案 1 :(得分:0)

在深入研究了HLF链码文档并进行了许多实际实验之后,我找到了问题的答案。

这是否意味着无论同伴数量多大,我都只需要一个外部chaincode容器?

您可以将一个外部容器用于相同链码包(具有相同的CCID)。

我也需要在另一个对等节点上安装chaincode吗?

是的,您需要在组织的所有认可对等方上安装chaincode软件包。

如果将链码安装在第二个对等点上,它将给我另一个CCID,但我不知道该怎么做。

如果要为多个组织对等方使用相同的外部链码容器,则必须在这些对等方上安装相同的链式代码包,而不是为每个对等方创建新的包(这是我的失败,我为第二个对等方,它生成了不同的CCID。