【问题标题】:IllegalStateException Error while generating node info files生成节点信息文件时出现 IllegalStateException 错误
【发布时间】:2018-11-13 21:55:58
【问题描述】:

当我在 AWS Ubuntu 机器上为 Corda 项目执行 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)

【问题讨论】:

    标签: corda


    【解决方案1】:

    正如 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. 保存更改并退出文本编辑器。

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

    您也可以使用:-

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

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

    查看以下网址了解更多信息。

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

    【讨论】:

      猜你喜欢
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-31
      • 2021-06-10
      • 1970-01-01
      相关资源
      最近更新 更多