如何通过具有相同端口的 VM 的网络引导程序获取网络参数文件

How to get network-parameter file via network bootstrapper for VMs with the same ports

目前,我在不同 machines/VMs 上有不同 IP 的节点。因此,它们也可能共享相同的端口但不同的 IP,即 h2port。

我正在将所有虚拟机 node.config(具有它们自己的 IP 地址和合法身份)合并到一个文件夹和 运行 网络引导程序中。我收到一个错误 port is being used,所以我假设引导程序会同时建立会导致端口冲突的节点。

我仍然可以让节点单独生成它们的 nodeInfos.. 文件并在没有引导程序的情况下手动分发它们。这是我在尝试解决时遇到问题的网络参数文件。

公证示例node.config.

basedir="/opt/corda"
myLegalName="O=Notary, L=London, C=UK"
notary {
    validating=false
}
p2pAddress="X.X.X.X:10002"
rpcUsers=[]

普通节点node.config

basedir : "/opt/corda"
p2pAddress : "X.X.X.X:10002"
rpcSettings {
    address="localhost:10003"
    adminAddress="localhost:10014"
    useSsl = false
    standAloneBroken = false
}
h2port : 11000
myLegalName : "O=Company1, OU=Company, L=London, C=UK"
extraAdvertisedServiceIds: [ "" ]
useHTTPS : false
devMode : true
rpcUsers=[
    {
        user=corda
        password=password
        permissions=[
            ALL
        ]
    }
]
sshd {
  port=2222
}

根本原因:将 notary_node.confcompany1_node.confcompany2_node.conf 放在同一个目录中。 company1company2 都来自不同的 IP,但具有相同的 h2port。尝试使用 network-bootstrapper 将同时建立节点,这将导致端口冲突。

解决方案:来自其他节点的node.conf在生成network-parameter时不是强制性的,因为NetworkParameters 仅包含公证人nodeInfo、最低平台等信息

通过仅将 notary_node.config 作为目录中的唯一配置和 运行 network-bootstrapper,它将成功生成 network-parameters 文件。虽然通过这样做,您将无法利用引导程序为所有其他节点快速自动生成 nodeInfo-... 文件,但您可以在每个节点上手动使用 --just-generate-node-info,并收集他们的 nodeInfo-.. 个文件。

然后您可以继续手动将 network-parametersnodeInfo-.. 文件分发到所有其他节点。