IllegalStateException生成节点信息文件时出错

时间:2018-10-03 09:19:49

标签: corda

当我在适用于Corda项目的AWS Ubuntu计算机上执行gradle clean deployNodes命令时,出现以下问题:

Error while generating node info files 

我正在使用Corda ENT库。

有趣的是,相同的corda项目在Windows机器上可以运行,但是在AWS机器上可以失败。

AWS和Windows计算机上的JDK 1.8.181和gradle 4.10.2。

它要求检查日志文件,但是日志没有显示与任何错误相关的信息...

可以帮您解决这个问题吗?

它为以下情况提供了例外:

if (!process.waitFor(3, TimeUnit.MINUTES)) {
    process.destroyForcibly()
    throw IllegalStateException("Error while generating node info file. Please check the logs in $logsDir.")
}

我发现,当deployNodes任务花费的时间超过3分钟时,上述方法中的此代码块始终会引发异常。

我的Corda网络中有8个节点,我正在尝试使用gradle clean deployNodes命令构建这些节点。

有人可以帮忙吗?

  

由以下原因引起:java.lang.IllegalStateException:生成时出错   节点信息文件。请检查登录   / home / ubuntu / xxx / build / nodes / nodeA / logs。           在net.corda.nodeapi.internal.network.NetworkBootstrapper $ Companion.generateNodeInfo(NetworkBootstrapper.kt:112)处           在net.corda.nodeapi.internal.network.NetworkBootstrapper $ Companion.access $ generateNodeInfo(NetworkBootstrapper.kt:71)处           在net.corda.nodeapi.internal.network.NetworkBootstrapper $ Companion $ generateNodeInfos $ 1 $ 1.invoke(NetworkBootstrapper.kt:95)           在net.corda.nodeapi.internal.network.NetworkBootstrapper $ Companion $ generateNodeInfos $ 1 $ 1.invoke(NetworkBootstrapper.kt:71)           在net.corda.core.internal.concurrent.ValueOrException $ DefaultImpls.capture(CordaFutureImpl.kt:140)           在net.corda.core.internal.concurrent.OpenFuture $ DefaultImpls.capture(CordaFutureImpl.kt)           在net.corda.core.internal.concurrent.CordaFutureImpl.capture(CordaFutureImpl.kt:152)

1 个答案:

答案 0 :(得分:3)

以下Cais和Stefano的建议是上述问题的答案。

使用以下步骤将JVM配置为使用/ dev / urandom:-

  1. 在文本编辑器中打开$ JAVA_HOME / jre / lib / security / java.security文件。

    在我的计算机上为/usr/lib/jvm/java-8-oracle/jre/lib/security/java.security

  2. 更改行“ securerandom.source = file:/ dev / random

    阅读: securerandom.source = file:/ dev /./ urandom

  3. 保存更改并退出文本编辑器。

由于使用/ dev / urandom时JDK中存在一个错误,因此必须将其设置为/ dev /./ urandom

或者,您可以使用:-

您还可以设置系统属性“ java.security.egd”,该属性将覆盖securerandom.source设置。 -Djava.security.egd = file:/ dev /./ urandom

在运行引导程序通过时在命令行上:-Djava.security.egd=file:/dev/./urandom

检查以下URL以获取更多信息。

http://ruleoftech.com/2016/avoiding-jvm-delays-caused-by-random-number-generation