我想设置一个环境,在这个环境中,我有几个VM,代表几个合作伙伴,并且每个VM托管一个或多个节点。理想情况下,我会使用kubernetes来启动/关闭我的环境。我从文档中了解到,这必须作为一个开发网络来完成,而不是作为我自己的兼容区或任何东西。
然而,(对我来说)要遵循的步骤并不清楚。我已经使用了Dockerform或提供的docker镜像,但这似乎不是我需要做的事情。
我目前(随时间变化)的理解是: a)我应该在将要托管节点的vms之间创建一个网络。为此,我知道我应该使用Cordite或Bootstrap jar。Cordite文档似乎比Corda文档更清晰,但我还没能尝试一下。我的第一步应该是哪一个呢?有谁能解释一下是怎么做到的吗?
b)一旦我创建了我的网络,我就需要一个认证实体(感谢@Chris_Chabot指出!)
c)下一步应该是运行deployNodes,因此我创建了配置文件。在这里,我不确定是否可以在deployNodes中指明哪些IP?是否应该创建节点,或者我只需要创建folders文件和证书文件夹等,并相应地在虚拟机中分发它们。我也不确定如何向Network服务指出。
就我个人而言,我猜如果我要使用Kubernetes,我将不会使用Dockerfile,并且我只需要将证书和配置文件分发到所有从VM,以便节点在启动时可以使用它们。
说清楚,老实说:D,这甚至是在容器中包含任何cordapp之前,我只是想把环境准备好。基本上,启动一个进程来构建节点,在从vms之间分发配置文件,并使用节点运行dockers。正如评论中所解释的,这里的目标不是测试Cordapps,而是测试如何部署一个可操作的分布式开发环境。
任何帮助都是绝对受欢迎的。
谢谢!
发布于 2019-06-04 20:51:01
(开发者关系@ 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中的“加入现有的兼容区”部分提供了如何通过指定要使用的网络地图/ certman url来让Corda docker镜像/节点加入该网络的说明。
哦,关于IP网络问题:网络管理器存储它分发给网络的每个节点的X509标识和IP地址的组合--这意味着每个节点,包括公证、证书、网络图和所有节点,都需要能够连接到该IP地址--或者所有节点都在您创建的同一网络上,或者拥有公共ip地址
https://stackoverflow.com/questions/56443397
复制相似问题