错误类型1:

        A、基于JavaScript运行【openWallet】的错误提示: 【MoneroRpcError: Failed to open wallet】

        B、查看文件rpc命令运行错误提示:【tail -f monero-wallet-rpc.log】

情况一:提示【error:wallet_internal_error】:代表你的keys文件被其他程序打开中【被占用】可以删掉重新生成一个新的keys文件即可!

【直接测试,不经过任何代码运行】基于monero-wallet-cli直接访问钱包的错误提示:

Error: failed to load wallet: internal error: "/wallet/monero_wallet/pdvbtyne.keys" is opened by another wallet program
Error: You may want to remove the file "/wallet/monero_wallet/pdvbtyne.keys" and try again

基于【问题1-1和1-2】是一个问题,就是你的keys加密文件已被【另外一个钱包打开了】不能重复打开。解决办法【删除当前的keys】重新创建一个新的开始同步即可!

情况二:提示【not_found】:请确保--wallet-dir包含的目录存在匹配的keys文件!

错误类型二:

1、JS端提示【timed out】超时错误

2、【monero-wallet-rpc】报错:Failed to generate key derivation from tx pubkey, skipping

解决办法:请先同步你的wallet,只要同步完成了,则不会超时

基于节点同步、RPC钱包正常访问的代码参考

    static async __openActiveWalletFromServer(server_storage_encryption_file_name_or_address) {/*** 功能:从服务器打开一个本地文件wallet* 参数:*      server_storage_encryption_file_name:这里的文件路径必须是启动monero-wallet-rpc命令参数【--wallet-dir】指定目录下的秘钥文件* 特殊说明:*      1、由于此处读取文件的路径为参数【--wallet-dir】决定,请确保创建钱包加密文件的路径和【--wallet-dir】保持一致即可!*      2、只要服务器读取【钱包加密文件】的路径和存储的路径一致,则可实现自动化创建活跃的wallet*      3、如果Wallet未同步,则无法打开,必须先同步完成才能打开!*/let _server_encryption_file_name_lower = AsyncMoneroNetworkWallet.__getServerStorageEncryptionFileNameOrAddressLower(server_storage_encryption_file_name_or_address);return UtilError.tryCatchGlobalSupportAsync(async () => {let _walletRPC = await moneroJS.connectToWalletRpc(moneroConfigUniqueInstance.getRPCWalletURI(), moneroConfigUniqueInstance.walletRPC.user,moneroConfigUniqueInstance.walletRPC.password, false);await _walletRPC.openWallet(_server_encryption_file_name_lower, moneroConfigUniqueInstance.walletPassword);let _walletHeight = await _walletRPC.getHeight();console.log(`【>>==<<】walletRPC.openWallet打开成功,获取当前wallet=${await _walletRPC.getPrimaryAddress()},balance=${await _walletRPC.getBalance()},` +`walletHeight=${_walletHeight},daemonHeight=${await AsyncMoneroNetworkWallet.getDaemonHeight()}`);if (_walletHeight === 1) {console.log(`【>>==<<】当前wallet=${await _walletRPC.getPrimaryAddress()}的walletHeight=${_walletHeight}【代表Wallet还没启动同步,立即开启同步中...】`);await AsyncMoneroNetworkWallet.__syncWalletFullAndCloseWallet(_server_encryption_file_name_lower);}return _walletRPC;}, async (e) => {/*** 1、wallet打开失败【提示超时】则必须先手动同步!*/e = String(e).toLowerCase();let _coreErrPrompt = "";let _timeoutErrorPrompt = "timed out";if (UtilStr.checkOriginalStrExistChildStr(e, [_timeoutErrorPrompt], false)) {_coreErrPrompt = `walletRPC.openWallet打开钱包提示【${_timeoutErrorPrompt}】wallet还未同步,立即开启同步到节点中...`;await AsyncMoneroNetworkWallet.__syncWalletFullAndCloseWallet(_server_encryption_file_name_lower);}let _openFailErrorPrompt = "failed to open wallet";if (UtilStr.checkOriginalStrExistChildStr(e, [_openFailErrorPrompt], false)) {_coreErrPrompt = `walletRPC.openWallet打开钱包提示【${_openFailErrorPrompt}】有以下两种可能性【1、--wallet-dir包含的目录存在匹配的keys文件。2、当前wallet已被其他程序打开,被占用,可删除当前keys文件重新创建即可】`;}e = `${e}===>_coreErrPrompt=${_coreErrPrompt}`;throw Error(`【>>==<<】注:请确保->服务器端运行的monero-wallet-rpc命令参数【--wallet-dir】指定目录【加密钱包文件读取位置】存在钱包加密文件` +`_server_encryption_file_name_lower =${_server_encryption_file_name_lower}【避免Wallet无法正常打开】本次Wallet打开失败的具体异常信息为:${e}`);}, true);}static async __syncWalletFullAndCloseWallet(server_storage_encryption_file_name_or_address) {/*** 功能:同步wallet到节点* 参数:*      sync_start_height:*          1、wallet同步的起始高度【必填参数,不填会永久卡死】*          2、如为null,则默认为Daemon节点最新高度!*/console.log("【>>==<<】开始执行Wallet同步节点中...");/*** 1、获取本地wallet基于【节点Daemon】同步!*/let _walletFullInstance = await UtilError.tryCatchGlobalSupportAsync(async () => {return moneroJS.openWalletFull({path: AsyncMoneroNetworkWallet.__getServerStorageEncryptionFilePath(server_storage_encryption_file_name_or_address),password: moneroConfigUniqueInstance.walletPassword,networkType: moneroConfigUniqueInstance.currentNetworkNode,serverUri: moneroConfigUniqueInstance.getNodeDaemonURI(),serverUsername: moneroConfigUniqueInstance.nodeDaemon.user,serverPassword: moneroConfigUniqueInstance.nodeDaemon.password,});}, (e) => {e = String(e);if (UtilStr.checkOriginalStrExistChildStr(e, ["input stream error"], false)) {e = `${e}【由wallet已同步到节点,为此无法执行【moneroJS.openWalletFull】获取wallet再次同步,请使用【walletRPC.openWallet访问wallet】本次操作无效,直接跳过!`;}throw new Error(e);}, true);let _tempStr = `【>>==<<】wallet=${await _walletFullInstance.getPrimaryAddress()}`;/*** 1、基于V0.1.8.0开始,必须手动同步钱包,否则钱包无法打开【报错:....】* 2、这里的_walletFullInstance.sync方法必传【syncStartHeight】参数【不传会永久卡死】这里传入创建wallet加密keys文件的恢复高度!* 3、这里的_walletFullInstance.sync方法传入【allowConcurrentCalls=True】支持其他钱包并发同步!*/await _walletFullInstance.sync(new class extends moneroJS.MoneroWalletListener {async onSyncProgress(height, startHeight, endHeight, percentDone, message) {console.log(`${_tempStr}正在同步中...实时同步数据:` +`currentHeight=${height},startHeight=${startHeight},endHeight=${endHeight},percentDone=${percentDone},message=${message}`);}}, await _walletFullInstance.getSyncHeight(), true);await _walletFullInstance.startSyncing(5000);/*** 1、钱包使用完后必须关闭,否则下一次打开钱包会报错【MoneroRpcError: Failed to open wallet】* 2、注:同一个keys文件只能被一个钱包访问,否则就会报此错!*/await _walletFullInstance.close();console.log(`${_tempStr}已启动同步中...且关闭当前钱包成功【避免占用此wallet,导致下次Open失败】`);}

【重磅推荐】【monero-node-rpcWallet】完美解决节点和RPCWallet同步,并且100%可以正常打开Wallet的方案【附加常见错误汇总】相关推荐

  1. win11共享打印机修复工具V1.0 | 完美解决“Windows无法连接到打印机、找不到打印机”以及“操作无法完成错误0x00000bc4找不到打印机”问题!!!

    局域网共享打印机应该在很多办公室场景都会用的到,那想必大家都可能会遇到过诸如:"Windows无法连接到打印机.找不到打印机"以及"操作无法完成错误0x00000bc4找 ...

  2. 完美解决 Evernote / 印象笔记 的同步失败问题

    印象笔记是一款比较强大的多平台笔记软件,用了很久了,非常喜欢,满足了我日常的绝大多数需求.但有一段时间出现了同步不成功的问题,困扰了我几天,后来我向官方发邮件咨询了一下,在指导下解决了这个问题,现在分 ...

  3. weblogic子节点服务器启动常见错误汇总

    第一:解决weblogic启动受管服务器报错Authentication for user weblogic denied 问题描述:使用./startManagedWebLogic.sh Serve ...

  4. 第一性原理VASP计算报错解决方法及常见错误汇总

    我们在进行第一性原理计算时,如遇到以下报错情况: running on 32 total coresdistrk: each k-point on 32 cores, 1 groupsdistr: o ...

  5. ipv4改完保存不成功_win10ip设置保存不了的完美解决方法

    怎样给win10ip设置保存不了的完美解决方法,一些小伙伴们在使用win10系统设置ip的时候,居然发现win10系统ip无法设置保存,也不知道该怎么才能解决这个问题,针对这一问题,小编立马找到了解决 ...

  6. linux node 命令无效,完美解决linux下node.js全局模块找不到的情况

    今天在在linux上用npm安装了pm2准备部署node项目,结果通过pm2命令启动项目的时候报pm2找不到,这很伤,以为pm2没有安装成功,但是在node安装目录下面的bin文件夹里面调用pm2却没 ...

  7. 2021-09-15核芯物联推荐生态合作伙伴莱讯科技#蓝牙AoA微信小程序跨楼层高精度定位导航,支持ibeacon+aoa融合,完美解决ibeacon导航存在的覆盖盲区

    2021-09-15核芯物联推荐生态合作伙伴莱讯科技#蓝牙AoA微信小程序跨楼层高精度定位导航,支持ibeacon+aoa融合,完美解决ibeacon导航存在的覆盖盲区 核芯物联推荐生态合作伙伴莱讯科 ...

  8. 面向交通预测的动态图卷积循环神经网络:基准和方法(重磅推荐)

    1.文章信息 <Dynamic Graph Convolutional Recurrent Network for Traffic Prediction: Benchmark and Solut ...

  9. python解析xml提交到hdfs_完美解决python针对hdfs上传和下载的问题

    当我们使用python的hdfs包进行上传和下载文件的时候,总会出现如下问题 requests.packages.urllib3.exceptions.NewConnectionError:: Fai ...

最新文章

  1. 一个NSObject对象占多少内存?
  2. flume 集群datanode节点失败导致hdfs写失败(转)
  3. python括号的区别_Python中类-带括号与不带括号的区别
  4. python拓展库random_一分钟让你学会Python Random库的使用
  5. 2021年Q2小米手机销量超苹果跻身全球第二 雷军:新的里程碑
  6. Android断点续传下载器JarvisDownloader
  7. linux 系统下 tar 的压缩与解压缩命令
  8. elasticsearch批量数据导入和导出
  9. 经纬度转小数格式 java_怎么把经纬度转成小数
  10. 前端图片上传问题整理
  11. Ansys Lumerical | 铌酸锂热调制波导仿真
  12. (四)Ps快速选择/魔棒
  13. GNSS/INS组合导航(八):INS/GPS组合导航
  14. 微信小程序有哪些优点和价值
  15. Echarts-----map(单独省级地图)
  16. 前端预览 PDF 文件几种方式汇总(使用PDFJS)
  17. dropdownlist下拉框变透明_Unity3D 4.x利用原生UGUI完成下拉列表DropDownList
  18. LintCode Find the Duplicate Number
  19. 测试路由器wlan口向lan口通信,解决ping不通wlan口和传输文件问题
  20. Android编译出现com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536错误解决办法

热门文章

  1. 微服务框架之微软Service Fabric
  2. 读书笔记 - 学会写作: 五个吸引人的情节套路
  3. 数据转化为FormData格式
  4. java窗口中添加图片_java初学者 求教怎么在窗口中添加一张图片
  5. 服务器C盘中的文件删不掉,小编面对win10系统C盘inetpub文件夹删不掉的处理步骤...
  6. WY C语言入门(5)
  7. webstrom主题、字体设置
  8. 李迟2022年10月工作生活总结
  9. 搭建WIKI-dokuwiki
  10. 【Google I/O 2017回顾】Mobile First To AI First