corda - 生成节点信息文件时出现 IllegalStateException 错误
问题描述
当我gradle clean deployNodes
在 AWS Ubuntu 机器上为 Corda 项目执行命令时遇到以下问题:
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) at 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。
解决方案
正如 Cais 和 Stefano 所建议的,下面是上述问题的答案。
使用这些步骤将 JVM 配置为使用 /dev/urandom:-
在文本编辑器中打开 $JAVA_HOME/jre/lib/security/java.security 文件。
在我的机器上
/usr/lib/jvm/java-8-oracle/jre/lib/security/java.security
更改“<strong>securerandom.source=file:/dev/random”行</p>
阅读:securerandom.source=file:/dev/./urandom
保存更改并退出文本编辑器。
因为当你使用 /dev/urandom 时 JDK 中有一个错误,你必须将它设置为 /dev/./urandom
或者,您可以使用:-
您还可以设置系统属性“java.security.egd”,它将覆盖securerandom.source 设置。-Djava.security.egd=文件:/dev/./urandom
在运行引导程序传递时在命令行上:-Djava.security.egd=file:/dev/./urandom
查看以下网址了解更多信息。
http://ruleoftech.com/2016/avoiding-jvm-delays-caused-by-random-number-generation
推荐阅读
- javascript - BroccoliMergeTrees (TreeMerger (lint)):预期的 Broccoli 节点,为 inputNodes [1] 获得 [object Object]
- oracle12c - Oracle In-Memory 不显示在 v$im-segments 中
- reactjs - antd:错误 TS2339:类型上不存在属性“居中”
- google-photos - 使用谷歌照片库 API 的最大视频大小是多少?
- html - 用于 JavaScript 过渡的 CSS 类
- python - Python中的这个属性语法是什么?
- android - 适用于 Xamarin 表单的 Xamarin Firebase PhoneAuth
- postgresql - Heroku Postgresql 数据库
- javascript - 连续五天,不包括周末
- kentico - Kentico Installation Manager 部署功能