1

Platform: Windows Version: Monero 14.0.2 x64

It seems like due to some recent updates, I'm no longer able to use monero-wallet-rpc to make calls to my wallet while the GUI is running because the GUI has a lock on the wallet file.

Is there a way to simultaneously have the GUI running and make calls using monero-wallet-rpc? Here is the monero-wallet-rpc.log

2019-04-09 14:00:35.448 4620    WARN    wallet.rpc  src/wallet/wallet_rpc_server.cpp:3402   Loading wallet...
2019-04-09 14:00:35.588 4620    ERROR   wallet.wallet2  src/wallet/wallet2.cpp:4585 !is_keys_file_locked(). THROW EXCEPTION: error::wallet_internal_error
2019-04-09 14:00:35.595 4620    ERROR   wallet.rpc  src/wallet/wallet_rpc_server.cpp:3445   Wallet initialization failed: internal error: "xxxxxxx.keys" is opened by another wallet program
1

To my knowledge, it's never been possible to have more than one process that is using the same wallet at the same time.

Should you need to run both the GUI and the wallet RPC at the same time, you can duplicate (and rename) the wallet files so you use one for the GUI and one for the RPC. They can both use the same daemon and will be operating on the same keys, but independent files. You will still be able to send and receive funds from both, but bare in mind, sending from one wont show in the other without a rescan of spent outputs.

Lastly of course, depending on your use case, you could run one of the wallets as a view-only wallet and the other as a normal view & spend. For this you would create a view-only wallet.

  • Dang! This used to work before Fall '18 hard fork. Is there any inherent danger in copy my keys file to another node and using it just to pull some read-only data like transaction history? – bobbarkerspets Apr 9 at 14:59
  • Honestly I don't recall that ever being possible, but yes, creating another wallet with the same keys is a valid workaround. You don't need another "node" for a duplicate wallet, just copy & rename the wallet file(s) and start the wallet RPC pointing to the duplicate wallet. – jtgrassie Apr 9 at 15:14
  • That's very helpful! I was worried if there might be some kind of divergence or inherent danger in copying the wallet file and using one process to transact and the other to check transactions. – bobbarkerspets Apr 9 at 15:22
  • The downside is seeing spent in both wallets. If you spend in say the GUI, the RPC won't know until you instruct it to rescan/refresh, or vice versa. Depends on your use case. Of course having one as just a view only wallet is probably the best way to go. – jtgrassie Apr 9 at 16:01
  • I'd just need to do a rescan_spent, not a full rescan_blockchain, correct? – bobbarkerspets Apr 9 at 18:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.