Windows运行RSKj节点出现LevelDB库加载错误该如何解决?
报错原因
- secp256k1加密库加载失败:你当前使用的是32位(x86架构)的Windows系统或32位Java运行环境,RSKj官方发布的jar包仅预置了64位Windows系统对应的secp256k1原生库,没有适配32位环境的对应文件,因此触发加载报错。
- 数据库初始化失败:属于上述环境不兼容导致的连锁错误。RSKj底层存储依赖LevelDB原生库,该库同样仅在官方jar中预置了64位Windows版本的对应文件,32位环境下找不到依赖导致数据库初始化失败,最终终止节点启动进程。
修复方案
- 方案一(推荐,稳定性最高):更换为64位运行环境
- 确认你的Windows系统为64位版本,若为32位系统需先升级到64位Windows
- 卸载当前安装的32位Java环境,安装64位版本的Java 8 或 Java 11(RSKj 3.0.1版本对这两个LTS版本Java兼容性最优,避免使用更高版本Java引发额外兼容问题)
- 重新打开终端执行原有启动命令,即可正常加载依赖启动节点
- 方案二(仅适用于必须保留32位环境的场景,不推荐):自行编译适配32位环境的依赖
- 从secp256k1官方源码编译32位Windows对应的原生库文件,放到报错提示的
/org/bitcoin/native/Windows/x86路径下 - 编译32位Windows对应的LevelDB原生库,替换jar包内的对应依赖文件
- 重新打包jar后再执行启动命令
- 从secp256k1官方源码编译32位Windows对应的原生库文件,放到报错提示的
内容的提问来源于stack exchange,提问作者Aleks Shenshin
相关产品推荐
相关产品推荐

