需要帮助以Docker设置开发/测试Corda网络

时间:2019-06-04 11:55:52

标签: docker corda cordite

我想建立一个环境,在该环境中,我有多个VM,代表多个伙伴,每个VM承载一个或多个节点。理想情况下,我将使用kubernetes来启动/关闭环境。我从文档中了解到,这必须作为开发网络来完成,而不是作为我自己的兼容区域或任何其他方式来完成。

但是,对我来说,要执行的步骤尚不清楚。我已经使用了Dockerform或提供的docker映像,但这似乎并不是我需要做的方式。

我目前的理解(随时间变化)是: a)我应该在将要托管节点的vm之间创建一个网络。为此,我知道我应该使用Cordite或Bootstrap jar。 Cordite文档似乎比Corda文档更清晰,但是我还没有尝试过。一个或另一个应该是我的第一步吗?谁能阐明一些方法?

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

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

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

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

绝对欢迎您提供任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

(此处为开发人员关系@ R3)

Corda节点网络需要三件事: -公证节点或多个公证节点池 -认证经理 -网络地图服务

证书管理器是网络中信任的基础,并且可以管理证书。需要将它们分发给节点以声明和证明其身份。

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

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

通常,我们发现大多数人开始在https://testnet.corda.network/网络上进行开发,然后部署到生产corda.network。

这样做的一个好处是,所有这些部分(证书管理器,网络地图和按地理位置分布的公证人库)都已随附。另一个好处是,它可以保证您将来与其他各方具有互操作性,因为每个人都使用相同的根证书颁发机构-通过您自己的网络,其他第三方不能仅仅因为它们位于不同的证书链上而进行连接并且无法验证。

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

在这种情况下,步骤1是按照https://gitlab.com/cordite/network-map-service

进行设置和配置的说明

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

哦,还有关于IP网络的问题:网络管理器存储X509标识和IP地址的组合,用于它分发到网络的每个节点-这意味着每个节点,包括公证人,证书人,网络映射并且所有节点都必须能够连接到该IP地址-通过使所有节点都位于您创建的同一网络上,或者具有公共ip地址