在不同的机器上运行corda节点

时间:2018-04-20 06:39:21

标签: corda

我在Corda遇到从甲方到乙方执行IOU的问题。 以下是配置细节:

  • 3 node.conf [甲方,乙方和公证人]。
  • 在AWS中托管应用程序,因此在节点配置文件而不是" localhost"中,我提供了机器的IP。我为Notary&提供了相同的IP。甲方,乙方不同。

网络引导成功并移动了新创建的节点文件夹各自的EC2实例并启动了运行节点。 但是当从甲方到乙方履行欠条时,它不起作用。请建议如何解决此问题。

我在节点日志中看到以下错误:

E 11:34:47+0000 [main] internal.Node.run - Exception during node startup {}
java.net.BindException: Cannot assign requested address: bind
    at sun.nio.ch.Net.bind0(Native Method) ~[?:1.8.0_161]
    at sun.nio.ch.Net.bind(Unknown Source) ~[?:1.8.0_161]
    at sun.nio.ch.Net.bind(Unknown Source) ~[?:1.8.0_161]
    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source) ~[?:1.8.0_161]
    at io.netty.channe

参考:https://docs.corda.net/tutorial-cordapp.html#running-nodes-across-machines

2 个答案:

答案 0 :(得分:0)

在Corda V3.1中使用rpcSettings时,地址和adminAddress需要使用0.0.0.0。

rpcSettings {
    address="0.0.0.0:10003"
    adminAddress="0.0.0.0:10103"
}

这些端点不会在外部公布,因此本地IP只是Corda的绑定。

使用公共IP或DNS时,这应解决启动cordapp时的以下异常:

  

E 21:28:56 + 0000 [main] internal.Node.run - 节点期间的异常   startup {} io.netty.channel.unix.Errors $ NativeIoException:bind(..)   失败:无法分配请求的地址

答案 1 :(得分:0)

我通过以下方式在不同主机上进行节点通信。

首先,我使用包含

的node.conf文件部署节点
"p2pAddress" : "host:10012",
    "rpcSettings" : {
        "address" : "host:10014",
        "adminAddress" : "host:10013"
    }

然后在部署节点之后,我将rpcSettings的主机更改为localhost

"rpcSettings" : {
        "address" : "localhost:10014",
        "adminAddress" : "localhost:10013"
    }

这种方式看起来很奇怪,但是在此操作节点开始通信之后

这与在节点部署时生成的NodeInfo文件有关,并且应包含rpc的主机。之后,rpc需要本地主机进行交互。我认为这可能是一个错误,但可以正常工作。