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

Using external chaincodes on multiple peers of the same Org?

我正在使用 Fabric 2.0 和外部链代码功能。我有一个组织有 2 个认可同行。我用一个对等点测试了外部链代码并且它有效,但是如何在多个对等点使用它?

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

我是否也需要在第二个节点上安装链代码?同样在链码安装过程中,它为我提供了我在链码中使用的 CCID。但是如果我在第二个节点上安装链代码,它会给我另一个 CCID,我不知道如何处理它。

外部构建器让您可以灵活地确定 how/where/when 您的链代码是否实际构建。例如,您可以:

  • 将您的链代码构建为 docker 容器,将其推送到 docker 存储库,然后在 'external builder' 过程中简单地拉取映像。
  • 让每个节点使用本地文件系统中的工具链在本地构建链代码二进制文件的副本。
  • 构建一个二进制文件并将其作为安装包的一部分推出,然后简单地执行它。

不管 where/how/when 您的链代码是否实际构建,您都需要在每个将执行它的节点上安装一个链代码包。您还需要为您的同行配置正确的外部构建器以使用您的包类型。

在深入研究 HLF 链代码文档和进行大量实际实验后,我找到了问题的答案。

Does it mean that I need only one external chaincode container regardless of the number of peers?

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

Do I need to install chaincode on a second peer too?

是的,您需要在组织的所有背书节点上安装链代码包。

If I install the chaincode on a second peer it gives me another CCID and I don’t know what to do with it.

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