electrs
electrs copied to clipboard
Bug:syncing multiple wallets at the same time fails
Sparrow 1.7.7 on Ubuntu Linux 22.04 Using "Private Electrum" on Umbrel Node. Electrs 0.9.14 - everything default
when opening Sparrow, sparrow tries to sync all 6 wallets parallel, and all fail.
Wallet loading history for Wallet1 - Deposit [Jul 17 10:40:46] Finding transactions for [../0/0-../0/89] [Jul 17 10:41:29] Finding transactions for [../0/0-../0/89] [Jul 17 10:41:29] Failed to subscribe to paths: [../0/0-../0/89] Wallet loading history for Wallet2 [Jul 17 10:40:49] Finding transactions for [../0/0-../0/21] [Jul 17 10:41:28] Failed to subscribe to paths: [../0/0-../0/21] Wallet loading history for Wallet3 [Jul 17 10:40:49] Finding transactions for [../0/0-../0/62] [Jul 17 10:41:31] Failed to subscribe to paths: [../0/0-../0/62] Wallet loading history for Wallet4 [Jul 17 10:40:49] Finding transactions for [../0/0-../0/20] [Jul 17 10:41:30] Failed to subscribe to paths: [../0/0-../0/20] Wallet loading history for Wallet5 [Jul 17 10:40:49] Finding transactions for [../0/0-../0/20] [Jul 17 10:41:30] Failed to subscribe to paths: [../0/0-../0/20] Wallet loading history for Wallet6 [Jul 17 10:40:49] Finding transactions for [../0/0-../0/20] [Jul 17 10:41:30] Failed to subscribe to paths: [../0/0-../0/20]
"Refresh Wallet" works for every single wallet.
Seems to be a problem when asking the Electrs parallel for multiple wallets.
Electrum servers are designed to handle requests from different wallets, and Sparrow ensures all requests are issued sequentially.
See also https://github.com/sparrowwallet/sparrow/issues/1027
Thanks for reporting this issue! Could you attach relevant electrs logs (between 10:40 and 10:42)?
Because of privacy, I sent the logs to you per email.
I got the same Issue ever since i used umbrel running electrs with sparrow, hope this is fixed on latest update!
I also have the same issue with Sparrow wallet. with INFO logging, there is not much in the log. if I switch to DEBUG, I can see that electrs is trying to fulfill the requests, but ultimately it takes too long and Sparrow gives up. The majority of the time is spent retrieving blocks and transactions from the bitcoin node. When you combine that with the single threaded mempool polling it seems that electrs just can't handle multiple wallets. There's actually a good writeup of this here by the lead dev of Sparrow: https://sparrowwallet.com/docs/server-performance.html, but a crucial difference in this case is he was testing a single large wallet, so there were no parallel requests happening.