1

我想建立一个环境,其中我有多个 VM,代表多个合作伙伴,并且每个 VM 托管一个或多个节点。理想情况下,我会使用 kubernetes 来启动/关闭我的环境。我从文档中了解到,这必须作为开发网络来完成,而不是作为我自己的兼容区或任何东西。

但是,要遵循的步骤并不清楚(对我来说)。我使用了 Dockerform 或提供的 docker 映像,但这似乎不是我需要做的事情。

我目前(随时间而变化)的理解是:a)我应该在将托管节点的虚拟机之间创建一个网络。为此,我知道我应该使用 Cordite 或 Bootstrap jar。Cordite 文档似乎比 Corda 文档更清晰,但我还没有尝试过。一个或另一个应该是我的第一步吗?任何人都可以阐明如何?

b) 创建网络后,我需要一个认证实体(感谢@Chris_Chabot 指出!)

c) 下一步应该是运行 deployNodes,所以我创建了配置文件。在这里,我不确定是否可以在 deployNodes 中指明哪些 IP?应该创建节点还是我只需要创建 dockerfiles 和证书文件夹等,并相应地在 VM 之间分发它们。我也不确定如何指出网络服务。

就个人而言,我想如果我要使用 Kubernetes,我不会使用 Dockerfiles,我只需要将证书和配置文件分发给所有从属 VM,以便在启动节点时可以使用它们。

老实说:D,这甚至在容器中包含任何cordapp之前,我只是想让环境准备好。基本上,启动一个构建节点的进程,在从属 vm 之间分发配置文件,并使用节点运行 docker。正如评论中所解释的,这里的目标不是测试 Cordapps,而是测试如何部署一个可操作的分布式开发环境。

任何帮助都将受到绝对欢迎。

谢谢!

4

1 回答 1

1

(此处为开发者关系@R3)

Corda 节点网络需要三样东西: - 一个公证节点,或多个公证节点池 - 一个认证管理器 - 一个网络地图服务

证书管理器是网络中信任的根,并且管理证书。这些需要分发给节点以声明和证明其身份。

节点连接到网络地图服务,该服务检查他们的证书以查看他们是否可以访问网络,如果可以,则将它们添加到它管理的节点列表中 - 并将此节点身份列表 + ip 地址分发到该网络上的所有节点。

最后,节点使用公证人签署网络上发生的交易。

一般我们发现大部分人都是在https://testnet.corda.network/网络上开始开发,然后再部署到生产的corda.network。

这样做的一个好处是,所有这些部分(认证管理器、网络地图和地理分布的公证人池)都已经提供了它。另一个好处是,它保证您将来与其他方具有互操作性,因为每个人都使用相同的根证书颁发机构——使用您自己的网络,其他第 3 方不能只是连接,因为它们位于不同的证书链上并且无法验证。

但是,如果您有充分的理由想要构建自己的网络,则可以使用 Cordite 提供网络映射和 certman 服务。

在这种情况下,步骤 1 是通过https://gitlab.com/cordite/network-map-service上的设置和配置说明

一旦完全设置并启动并运行,https://docs.corda.net/permissioning.html将提供有关如何设置证书的更多信息,以及https://docs中的“加入现有兼容区”部分.corda.net/docker-image.html包含有关如何通过指定要使用的网络映射/certman url 来获取 Corda docker 映像/节点以加入该网络的说明。

哦,关于 IP 网络问题:网络管理器存储了 X509 身份和它分配给网络的每个节点的 IP 地址的组合——这意味着每个节点,包括公证人、证书人、网络地图和所有节点需要能够连接到该 IP 地址——要么都在您创建的同一网络上,要么拥有公共 IP 地址

于 2019-06-04T12:51:00.953 回答