Chia-Network / chia-blockchain

Chia blockchain python implementation (full node, farmer, harvester, timelord, and wallet)
Apache License 2.0
10.81k stars 2.02k forks source link

Only one wallet can sync at a time #4708

Open happycouak opened 3 years ago

happycouak commented 3 years ago

Describe the bug I got 3 wallets, and only one try to sync, I didn't see any try on log regarding the 2 others.

I was thinking that sqlite dbs were corrupted so I stop chia, removed on db, then start chia: the wallet begin to sync and stop at 124MB.

At this time I can see the synced wallet still sync regularly, but the others 2 wallets stay not synced.

To Reproduce Steps to reproduce the behavior:

  1. Have at least 2 wallets, with one synced and on not synced
  2. stop chia, delete the not synced sqlite db, then start chia
  3. watch logs and see the synced wallet syncing, the second one stay on not synced status without trying to.
  4. See error

Expected behavior All wallets keep there respective sync.

lolitoun commented 3 years ago

same here

Between Win and Mac OS Win start first : ok

Mac OS :

Running python executable: 
child process success
(node:589) electron: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron.  See https://github.com/electron/electron/issues/23506 for more information
No cert
Have cert
stderr: Traceback (most recent call last):
  File "chia/server/start_wallet.py", line 97, in <module>
stderr:   File "chia/server/start_wallet.py", line 92, in main
  File "chia/server/start_service.py", line 218, in run_service
  File "asyncio/runners.py", line 44, in run
  File "asyncio/base_events.py", line 642, in run_until_complete
  File "chia/server/start_service.py", line 212, in async_run_service
  File "chia/server/start_service.py", line 156, in run
  File "chia/server/start_service.py", line 127, in start
  File "chia/wallet/wallet_node.py", line 151, in _start
  File "chia/wallet/wallet_state_manager.py", line 138, in create
  File "chia/wallet/wallet_blockchain.py", line 106, in create
stderr:   File "chia/wallet/wallet_blockchain.py", line 117, in _load_chain_from_store
  File "chia/wallet/wallet_block_store.py", line 283, in get_peak_heights_dicts
KeyError: b'.gNe\xd4\xa5"z\xc8,\xdb\xfbw\x810g`\xcd\\\xecG\xa4Q\x1c\xbb+\xe7\xa4\n\xa4@\xad'
stderr: [601] Failed to execute script start_wallet

`

happycouak commented 3 years ago

Well this could be a different issue as my wallet run on the same host.

yarruslan commented 3 years ago

I see similar behaviour on Windows 10, Chia 1.1.5: There is 2 wallets in my chia installation. I see in logs that only new wallet is slowly updating (change in height from 2135 to 2209 in a minute), old wallet is out of sync. After chia restart I see in logs that older wallet started updating, but new one is not. Seems it does not happen it parallel...

Example of message 2021-05-13T10:02:29.691 wallet chia.wallet.wallet_blockchain: INFO Updated wallet peak to height 2142, weight 15001,

My second machine has only 1 wallet, and it remains in sync.

lolitoun commented 3 years ago

Ok I found something, I am not stuck at "connecting wallet", chia 1.1.5 is open and I can plot

1 - Display hidden files on macOS :

defaults write com.apple.finder AppleShowAllFiles TRUE

killall Finder

2 - Go to :

/Users/fabienapple/.chia/mainnet/wallet/db And delete files into "db"

JohnnyFFM commented 3 years ago

Same here, Chia 1.15, Windows, single machine. Have three wallets. Only the wallet selected on Keys tabs is syncing. To keep all wallets synced, I have to rotate switching wallets on Keys tabs. Would be cool if the GUI would allow running and syncing several wallets in parallel.

Petrucus commented 3 years ago

Same here, Chia 1.15, Windows, single machine. Have three wallets. Only the wallet selected on Keys tabs is syncing. To keep all wallets synced, I have to rotate switching wallets on Keys tabs. Would be cool if the GUI would allow running and syncing several wallets in parallel.

+1

twainekb commented 3 years ago

+1

aemarco commented 3 years ago

Similar here, 1.1.5, Windows, 2 wallets...

Initially afer adding the second wallet it was syncing, but after restart, none of them are syncing any more. Even after deletion of /wallet/db folder, both not syncing any more.

FSys77 commented 3 years ago

Similar here, 1.1.5, Windows, 2 wallets...

Initially afer adding the second wallet it was syncing, but after restart, none of them are syncing any more. Even after deletion of /wallet/db folder, both not syncing any more.

Same here. Blockchain is fully synced, by my wallet stopped syncing a few days ago. Restarting, rebooting, ... nothing worked.

Chia software is such a piece of shit!

aemarco commented 3 years ago

Similar here, 1.1.5, Windows, 2 wallets...

Initially afer adding the second wallet it was syncing, but after restart, none of them are syncing any more. Even after deletion of /wallet/db folder, both not syncing any more.

1.1.7 fixed the wallet sync issues for me , the "Only one wallet can sync at a time" still holds true as it seems. Only the active wallet seems to sync

Gnomuz commented 3 years ago

Agreed the wallet sync was improved with 1.1.7, but the original issue "Only one wallet can sync at a time" is still there.

I think have found a workaround playing with multiple wallets on testnet. In fact, the unique wallet which is kept in sync is the last you made a query on. So, you can "force" the syncing of a wallet with 'chia wallet show -f fingerprint of the wallet you want to sync'. Once this one is synced, it keeps syncing with the blockchain, fine, but the other(s) remain out of sync. So, if you want to sync another wallet, you can reissue the command with another fingerprint. But the previously resynced wallet will go out of sync, and so on...

So, it's really a workaround, not more, and I think we are all impatiently waiting for a more robust and built-in solution ;-)

happycouak commented 3 years ago

You are right, one downside is that one db of ~2.4GB is created/maintained for each wallets, which as of my understanding are the exact same data, so its a wast of space, especially for small hardware like Raspberry which doesn't have a lot of local storage.

Ideally there should be one db file shared among all active wallets.

321mindminer commented 3 years ago

As a workaround on Linux you can run in cron, i.e. every 15min, script as below. On the other systems you can do the same but script must be rewriten according to the system.

!/bin/bash

cd /home/user/chia-blockchain
. ./activate

wallets=(1515459263 1116665518 4033003028) <- put your wallets fingerprints. As last put your wallet on which you're plotting sem="/var/tmp/wallet-sync.sem"

if [[ -f $sem ]]; then logger "Wallet syncing is already running" exit fi

touch $sem

for wallet in "${wallets[@]}" do logger "Syncing wallet: $wallet" synced=0
until [[ synced -eq 1 ]] do res=$(chia wallet show -f $wallet) if [[ $res =~ "Sync status: Synced" ]]; then logger "Wallet $wallet Synced" synced=1
else sleep 10
fi done done

rm $sem

github-actions[bot] commented 3 years ago

This issue has been flagged as stale as there has been no activity on it in 14 days. If this issue is still affecting you and in need of review, please update it to keep it open.

grayfallstown commented 3 years ago

Issue is very much still present

github-actions[bot] commented 3 years ago

This issue has been flagged as stale as there has been no activity on it in 14 days. If this issue is still affecting you and in need of review, please update it to keep it open.

James-hoerr commented 3 years ago

still an issue

conandrum commented 3 years ago

I had 1.1.6 with this problem. Downloaded and installed 1.2.3. Signed into my first wallet and waited for the sync to go green at about 665,000. Then signed into my second wallet. It was at 0 for about 10-15 minutes and then started going up on its own. I did not have to do anything.

Wilkugmo commented 3 years ago

I'm on 1.2.3 and also have this problem. Is there no way to sync more than 1 wallet at a time in GUI or CLI?

conandrum commented 3 years ago

In gui, no.... they sync one by one. In CLI i do not know.

skyglow commented 3 years ago

still an issue in cli. It's a big issue if you don't know there's this kind of bug... Using the official pool-reference code stucks the pool since the wallets aren't syncing

darvd29 commented 3 years ago

Still an issue in CLI. What's more, the proposed solution to query a particular wallet does not work for me! Only the first wallet (from the set of keys that was first added) is syncing, the second one is stuck at 0 even if I display it using 'chia wallet show -f [fingerprint]'. I do not have GUI installed.

youngfong13 commented 3 years ago

I was hoping that the 1.2.4 Release Note of "Added support for multiple wallets." would mean that if one has multiple wallets they would both sync. I have 2 wallets, and only the first one is syncing.

grayfallstown commented 3 years ago

I was hoping that the 1.2.4 Release Note of "Added support for multiple wallets." would mean that if one has multiple wallets they would both sync. I have 2 wallets, and only the first one is syncing.

Did you log in to both after the update?

github-actions[bot] commented 3 years ago

This issue has been flagged as stale as there has been no activity on it in 14 days. If this issue is still affecting you and in need of review, please update it to keep it open.

Nanduhirion commented 3 years ago

still an issue

ByronAP commented 3 years ago

only 1 wallet can be logged in at a time so only 1 will ever sync at a time. I think changing this would require way too much work for any dev to consider doing any time soon. It would require major breaking changes to several key wallet endpoints.

skyglow commented 3 years ago

well should be set with lower priority but still a feature other bchain have, so i don't understand this kind of answers

On Wed, Oct 13, 2021, 5:47 AM Allen Byron Penner @.***> wrote:

only 1 "wallet can be logged in at a time so only 1 will ever sync at a time. I think changing this would require way too much work for any dev to consider doing any time soon. It would require major breaking changes to several key wallet endpoints.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Chia-Network/chia-blockchain/issues/4708#issuecomment-941890773, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACC3JVQRFE5HMUZBECMAGUTUGT6LHANCNFSM44Y3HI7A . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

ByronAP commented 3 years ago

I agree it is an issue, I was just explaining that the way the wallet is designed makes it an area that no one would really want to touch right now. I wish someone would and hope in the near future someone does tackle it but reality is it's a sore spot that I don't think will be touched till a lot of other things are finished.

gWOLF3 commented 2 years ago

is there any workaround for this?

happycouak commented 1 year ago

From my point of view, as wallets now sync relatively quickly, this is not really an issue anymore.

DaOneLuna commented 1 year ago

I disagree, I would like to see multiple wallets in the interface syncing at the same time.