运行 RSKj 节点在 Windows 机器上时如何修复 LevelDB 库加载错误?
How to fix LevelDB library load error when running RSKj node on a Windows machine?
我正尝试在 Windows 机器上 运行 RSK 区块链节点 RSKj。当我 运行 终端中的这一行时:
C:\Users\yemode> java -cp C:\Users\yemode\Downloads\Programs\rskj-core-3.0.1-IRIS-all.jar co.rsk.Start
RSKj 节点启动 运行ning,但出现以下错误:
Cannot load secp256k1 native library: java.lang.Exception: No native library is found for os.name=Windows and os.arch=x86. path=/org/bitcoin/native/Windows/x86
Exception in thread "main" java.lang.RuntimeException: Can't initialize database
at org.ethereum.datasource.LevelDbDataSource.init(LevelDbDataSource.java:110)
at org.ethereum.datasource.LevelDbDataSource.makeDataSource(LevelDbDataSource.java:70)
at co.rsk.RskContext.buildTrieStore(RskContext.java:1015)
at co.rsk.RskContext.buildAbstractTrieStore(RskContext.java:935)
at co.rsk.RskContext.getTrieStore(RskContext.java:416)
at co.rsk.RskContext.buildRepositoryLocator(RskContext.java:1057)
at co.rsk.RskContext.getRepositoryLocator(RskContext.java:384)
at co.rsk.RskContext.getTransactionPool(RskContext.java:353)
at co.rsk.RskContext.buildInternalServices(RskContext.java:829)
at co.rsk.RskContext.buildNodeRunner(RskContext.java:821)
at co.rsk.RskContext.getNodeRunner(RskContext.java:302)
at co.rsk.Start.main(Start.java:34)
这可能是什么问题?
这实际上是一个警告,而不是错误,尽管它看起来像是后者。这意味着在您的 OS 和体系结构上,该特定库不存在,因此它会回退到不同的实现(使用非本机库)。在这种情况下,块验证速度较慢,但 RSKj 应该继续正常运行。
--import
标志可能会帮助您克服初始同步的“缓慢”。见 reference in the CLI docs for RSKj.
您也可以发送 RPC 以确保您的节点 运行 正常。 运行 在您的终端中执行以下 curl
命令
curl \
-X POST \
-H “Content-Type:application/json” \
--data ‘{“jsonrpc”:“2.0",“method”:“eth_blockNumber”,“params”:[],“id”:67}’ \
http://localhost:4444
响应应该与此类似
{“jsonrpc”:“2.0",“id”:67,“result”:“0x2b12”}
其中 result
是您的最后一个区块编号
我正尝试在 Windows 机器上 运行 RSK 区块链节点 RSKj。当我 运行 终端中的这一行时:
C:\Users\yemode> java -cp C:\Users\yemode\Downloads\Programs\rskj-core-3.0.1-IRIS-all.jar co.rsk.Start
RSKj 节点启动 运行ning,但出现以下错误:
Cannot load secp256k1 native library: java.lang.Exception: No native library is found for os.name=Windows and os.arch=x86. path=/org/bitcoin/native/Windows/x86
Exception in thread "main" java.lang.RuntimeException: Can't initialize database
at org.ethereum.datasource.LevelDbDataSource.init(LevelDbDataSource.java:110)
at org.ethereum.datasource.LevelDbDataSource.makeDataSource(LevelDbDataSource.java:70)
at co.rsk.RskContext.buildTrieStore(RskContext.java:1015)
at co.rsk.RskContext.buildAbstractTrieStore(RskContext.java:935)
at co.rsk.RskContext.getTrieStore(RskContext.java:416)
at co.rsk.RskContext.buildRepositoryLocator(RskContext.java:1057)
at co.rsk.RskContext.getRepositoryLocator(RskContext.java:384)
at co.rsk.RskContext.getTransactionPool(RskContext.java:353)
at co.rsk.RskContext.buildInternalServices(RskContext.java:829)
at co.rsk.RskContext.buildNodeRunner(RskContext.java:821)
at co.rsk.RskContext.getNodeRunner(RskContext.java:302)
at co.rsk.Start.main(Start.java:34)
这可能是什么问题?
这实际上是一个警告,而不是错误,尽管它看起来像是后者。这意味着在您的 OS 和体系结构上,该特定库不存在,因此它会回退到不同的实现(使用非本机库)。在这种情况下,块验证速度较慢,但 RSKj 应该继续正常运行。
--import
标志可能会帮助您克服初始同步的“缓慢”。见 reference in the CLI docs for RSKj.
您也可以发送 RPC 以确保您的节点 运行 正常。 运行 在您的终端中执行以下 curl
命令
curl \
-X POST \
-H “Content-Type:application/json” \
--data ‘{“jsonrpc”:“2.0",“method”:“eth_blockNumber”,“params”:[],“id”:67}’ \
http://localhost:4444
响应应该与此类似
{“jsonrpc”:“2.0",“id”:67,“result”:“0x2b12”}
其中 result
是您的最后一个区块编号