WalletWasabi / WalletWasabi

Open-source, non-custodial, privacy preserving Bitcoin wallet for Windows, Linux, and Mac.
https://wasabiwallet.io
MIT License
2.17k stars 501 forks source link

Cannot change anonymity levels with persistence between runs. #2722

Closed davterra closed 4 years ago

davterra commented 4 years ago

I am not able to change the anonymity levels in my settings and have the changes be persistent from one run to another. They appear to "stick" when changed, but upon restart revert to the original 2/21/50 setting. Using Ubuntu 19.04 + i3

MaxHillebrand commented 4 years ago

I can reproduce on Qubes 4 Debian 10. The anonset target is not remembered and sets back to the default.

davterra commented 4 years ago

UPDATE: I find that, after changing my anonymity levels, if I leave the settings window open when I exit wasabi, the new/desired settings persist. If I close the settings window before I exit wasabi, the new/desired anonymity settings are gone, replaced by previous settings.

Perhaps the settings window could eventually benefit from a "Save Settings" button to both ensure all changes are saved, and to give the user confidence that changes have been recorded. It's relatively uncommon, IMO to see a site's setting page not give the user a "Save" button of some kind to push, even if it's technically not necessary to save any changes.

kravens commented 4 years ago

On Windows 10 I can change anonymity levels, restart WasabiWallet, and see the new levels in effect. Also when I close the Settings tab before restarting, the new levels are in effect after restart of WasabiWallet. So can't reproduce this on W10 with i7 CPU.

molnard commented 4 years ago

The issue accepted 2 points.

RiccardoMasutti commented 4 years ago

UPDATE: I find that, after changing my anonymity levels, if I leave the settings window open when I exit wasabi, the new/desired settings persist. If I close the settings window before I exit wasabi, the new/desired anonymity settings are gone, replaced by previous settings.

Perhaps the settings window could eventually benefit from a "Save Settings" button to both ensure all changes are saved, and to give the user confidence that changes have been recorded. It's relatively uncommon, IMO to see a site's setting page not give the user a "Save" button of some kind to push, even if it's technically not necessary to save any changes.

Had the same problem and I can reproduce that on Debian 10 and TAILS.

MaxHillebrand commented 4 years ago

Agreed with @molnard , this issue is 2 points, good catch

nopara73 commented 4 years ago

It's something that must be fixed for the release so I put it to the 3 point category.

nopara73 commented 4 years ago

I take it.

nopara73 commented 4 years ago

I am not able to change the anonymity levels in my settings and have the changes be persistent from one run to another. They appear to "stick" when changed, but upon restart revert to the original 2/21/50 setting. Using Ubuntu 19.04 + i3

I cannot reproduce it. (win10)

  1. Open Wasabi.
  2. Go to Settings.
  3. Change an anonset level.
  4. Close Wasabi.
  5. Open again.
  6. See anonset level change persisted as it should.
nopara73 commented 4 years ago

The anonset target is not remembered and sets back to the default.

@MaxHillebrand That is a different issue. I cannot reproduce that either. (win10)

  1. Open Wasabi.
  2. Load a wallet.
  3. Change anonset target.
  4. Close Wasabi.
  5. Open and load again.
  6. See anonset target change persisted as it should.
nopara73 commented 4 years ago

I find that, after changing my anonymity levels, if I leave the settings window open when I exit wasabi, the new/desired settings persist. If I close the settings window before I exit wasabi, the new/desired anonymity settings are gone, replaced by previous settings.

I cannot reproduce it either. (win10)

  1. Open Wasabi.
  2. Go to Settings.
  3. Change an anonset level.
  4. Close Settings.
  5. Close Wasabi.
  6. Open again.
  7. See anonset level change persisted as it should.
nopara73 commented 4 years ago

Perhaps the settings window could eventually benefit from a "Save Settings" button to both ensure all changes are saved, and to give the user confidence that changes have been recorded. It's relatively uncommon, IMO to see a site's setting page not give the user a "Save" button of some kind to push, even if it's technically not necessary to save any changes.

ACK. As a historical context, the settings did not have any text input field when we decided on this, it was just dropdowns. The text input fields makes things interesting.

nopara73 commented 4 years ago

So, the issue doesn't happen on Windows 10, neither me nor @kravens can reproduce it. It's really strange though. There's no platform specific or suspect code to around to cause anything like this. Anyhow, turning to our resident Linux gurus, @lontivero or @jmacato can you take it over?

molnard commented 4 years ago

Neither on win10 or macOS I could reproduce. It looks like a Linux only problem.

lontivero commented 4 years ago

I've being playing with these levels for almost and hour and I cannot reproduce on Ubuntu. We need the step-by-step how to reproduce it and also the log entries, if there is any related. Otherwise I think we will not be able to catch this one.

nopara73 commented 4 years ago

Maybe it was in the released version, but not on the master. Anyway, at this point I think we should close this.

jmacato commented 4 years ago

Yeah, can't repro this on either Manjaro ARM nor Ubuntu 18.04 LTS with latest master branch

RiccardoMasutti commented 4 years ago

I'm still investigating.

lontivero commented 4 years ago

@davterra could you share your Config.json and UiConfig.json here?

davterra commented 4 years ago

Yes, happy to....but can't until I get home.... about an hour from now....will post as soon as possible.

davterra commented 4 years ago

@lontivero

OK, ICYMI, here is a more detailed description of how to replicate the issue:

There are two procedures that I've been testing. Procedure # 1 does NOT result in updated anonymity params, Procedure # 2 DOES result in updated anonymity params.

Procedure #1:

1) start wasabi 2) open settings 3) change anonymity settings 4) close settings tab 5) reopen settings tab to verify new params still there. 6) close settings tab 7) exit wasabi 8) restart wasabi 9) open settings tab. When I follow this procedure, my A.S. settings are not as they were when I exited wasabi. They reflect prior settings, instead of the update.

Procedure #2:

1) start wasabi 2) open settings 3) change A.S. params 4) LEAVE SETTINGS TAB OPEN & exit wasabi 5) restart wasabi 6) open settings tab. When I follow this procedure, my A.S. settings are as they were when I exited wasabi - Updated and correct.

config.json: { "Network": "TestNet", "MainNetBackendUriV3": "http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion/", "TestNetBackendUriV3": "http://testwnp3fugjln6vh5vpj7mvq3lkqqwjj3c2aafyu7laxz42kgwh2rad.onion/", "MainNetFallbackBackendUri": "https://wasabiwallet.io/", "TestNetFallbackBackendUri": "https://wasabiwallet.co/", "RegTestBackendUriV3": "http://localhost:37127/", "UseTor": true, "StartLocalBitcoinCoreOnStartup": false, "StopLocalBitcoinCoreOnShutdown": true, "LocalBitcoinCoreDataDir": "/home/user/.bitcoin", "TorSocks5EndPoint": "127.0.0.1:9050", "MainNetBitcoinP2pEndPoint": "tralfaz.dynu.net:8333", "TestNetBitcoinP2pEndPoint": "127.0.0.1:18333", "RegTestBitcoinP2pEndPoint": "127.0.0.1:18444", "MixUntilAnonymitySet": 100, "PrivacyLevelSome": 44, "PrivacyLevelFine": 77, "PrivacyLevelStrong": 101, "DustThreshold": "0.0001" }

UiConfig.json:

{ "WindowState": "Maximized", "Height": 815.0, "Width": 1600.0, "FeeTarget": 2, "FeeDisplayFormat": 3, "Autocopy": true, "IsCustomFee": false, "LurkingWifeMode": false, "LockScreenActive": false, "LockScreenPinHash": "" }

Logs.txt

UNSUCCESSFUL ATTEMPT IN UPDATING ANON SET PARAMS IN THE BELOW RUN, BY CLOSING SETTING TAB BEFORE EXITING

2019-12-09 15:03:54 INFO Program (44) Wasabi GUI started (1e90f063-f152-4a92-b96a-b6928dd29254). 2019-12-09 15:03:56 INFO Global (158) Config is successfully initialized. 2019-12-09 15:03:56 INFO TorProcessManager (249) Starting Tor monitor... 2019-12-09 15:03:56 INFO Global (220) TorProcessManager is initialized. 2019-12-09 15:03:56 INFO TransactionStore (28) MempoolStore.InitializeAsync finished in 202 milliseconds. 2019-12-09 15:03:57 INFO TransactionStore (28) ConfirmedStore.InitializeAsync finished in 289 milliseconds. 2019-12-09 15:03:57 INFO AllTransactionStore (27) InitializeAsync finished in 363 milliseconds. 2019-12-09 15:03:57 INFO TorProcessManager (66) Tor is already running. 2019-12-09 15:04:00 INFO Global (387) Loaded AddressManager from /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:00 INFO MainWindow.xaml (74) UiConfig is successfully initialized. 2019-12-09 15:04:06 INFO IndexStore (43) InitializeAsync finished in 10 seconds. 2019-12-09 15:04:06 INFO BitcoinStore (39) InitializeAsync finished in 10 seconds. 2019-12-09 15:04:06 INFO HostedServices (49) Stared Software Update Checker. 2019-12-09 15:04:06 INFO Global (329) Start connecting to nodes... 2019-12-09 15:04:06 INFO Global (351) Start synchronizing filters... 2019-12-09 15:04:24 INFO MainWindow.xaml (168) UiConfig is saved. 2019-12-09 15:04:24 INFO MainWindow.xaml (176) WalletManagerViewModel closed. 2019-12-09 15:04:24 INFO Global (775) Disposed FeeProviders. 2019-12-09 15:04:24 INFO Global (782) CoinJoinProcessor is disposed. 2019-12-09 15:04:24 INFO Global (789) Synchronizer is stopped. 2019-12-09 15:04:24 INFO HostedServices (78) Stopped Software Update Checker. 2019-12-09 15:04:24 INFO HostedServices (130) Disposed Software Update Checker. 2019-12-09 15:04:24 INFO Global (798) Stopped background services. 2019-12-09 15:04:24 INFO Global (809) AddressManager is saved to /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:24 INFO Global (822) Nodes are disposed. 2019-12-09 15:04:25 INFO Global (847) TorManager is stopped. 2019-12-09 15:04:25 INFO Global (855) AsyncMutex(es) are stopped. 2019-12-09 15:04:25 INFO Program (62) Wasabi GUI stopped gracefully (1e90f063-f152-4a92-b96a-b6928dd29254).

SUCCESSFULLY UPDATED ANON SET PARAMS IN THE BELOW RUN, BY EXITING WITH SETTINGS TAB OPEN

2019-12-09 15:04:31 INFO Program (44) Wasabi GUI started (94efa5ea-4f9c-45cc-941a-ea5b2b2e54b9). 2019-12-09 15:04:34 INFO Global (158) Config is successfully initialized. 2019-12-09 15:04:35 INFO TorProcessManager (249) Starting Tor monitor... 2019-12-09 15:04:35 INFO Global (220) TorProcessManager is initialized. 2019-12-09 15:04:35 INFO TransactionStore (28) MempoolStore.InitializeAsync finished in 419 milliseconds. 2019-12-09 15:04:35 INFO TransactionStore (28) ConfirmedStore.InitializeAsync finished in 507 milliseconds. 2019-12-09 15:04:35 INFO AllTransactionStore (27) InitializeAsync finished in 568 milliseconds. 2019-12-09 15:04:36 INFO TorProcessManager (66) Tor is already running. 2019-12-09 15:04:36 INFO Global (387) Loaded AddressManager from /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:36 INFO MainWindow.xaml (74) UiConfig is successfully initialized. 2019-12-09 15:04:44 INFO IndexStore (43) InitializeAsync finished in 9 seconds. 2019-12-09 15:04:44 INFO BitcoinStore (39) InitializeAsync finished in 9 seconds. 2019-12-09 15:04:44 INFO HostedServices (49) Stared Software Update Checker. 2019-12-09 15:04:44 INFO Global (329) Start connecting to nodes... 2019-12-09 15:04:44 INFO Global (351) Start synchronizing filters... 2019-12-09 15:04:52 INFO MainWindow.xaml (168) UiConfig is saved. 2019-12-09 15:04:52 INFO MainWindow.xaml (176) WalletManagerViewModel closed. 2019-12-09 15:04:52 INFO Global (775) Disposed FeeProviders. 2019-12-09 15:04:52 INFO Global (782) CoinJoinProcessor is disposed. 2019-12-09 15:04:52 INFO Global (789) Synchronizer is stopped. 2019-12-09 15:04:52 INFO HostedServices (78) Stopped Software Update Checker. 2019-12-09 15:04:52 INFO HostedServices (130) Disposed Software Update Checker. 2019-12-09 15:04:52 INFO Global (798) Stopped background services. 2019-12-09 15:04:52 INFO Global (809) AddressManager is saved to /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:52 INFO Global (822) Nodes are disposed. 2019-12-09 15:04:52 INFO Global (847) TorManager is stopped. 2019-12-09 15:04:52 INFO Global (855) AsyncMutex(es) are stopped. 2019-12-09 15:04:52 INFO Program (62) Wasabi GUI stopped gracefully (94efa5ea-4f9c-45cc-941a-ea5b2b2e54b9).

RiccardoMasutti commented 4 years ago

@lontivero

OK, ICYMI, here is a more detailed description of how to replicate the issue:

There are two procedures that I've been testing. Procedure # 1 does NOT result in updated anonymity params, Procedure # 2 DOES result in updated anonymity params.

Procedure #1:

  1. start wasabi
  2. open settings
  3. change anonymity settings
  4. close settings tab
  5. reopen settings tab to verify new params still there.
  6. close settings tab
  7. exit wasabi
  8. restart wasabi
  9. open settings tab. When I follow this procedure, my A.S. settings are not as they were when I exited wasabi. They reflect prior settings, instead of the update.

Procedure #2:

  1. start wasabi
  2. open settings
  3. change A.S. params
  4. LEAVE SETTINGS TAB OPEN & exit wasabi
  5. restart wasabi
  6. open settings tab. When I follow this procedure, my A.S. settings are as they were when I exited wasabi - Updated and correct.

config.json: { "Network": "TestNet", "MainNetBackendUriV3": "http://wasabiukrxmkdgve5kynjztuovbg43uxcbcxn6y2okcrsg7gb6jdmbad.onion/", "TestNetBackendUriV3": "http://testwnp3fugjln6vh5vpj7mvq3lkqqwjj3c2aafyu7laxz42kgwh2rad.onion/", "MainNetFallbackBackendUri": "https://wasabiwallet.io/", "TestNetFallbackBackendUri": "https://wasabiwallet.co/", "RegTestBackendUriV3": "http://localhost:37127/", "UseTor": true, "StartLocalBitcoinCoreOnStartup": false, "StopLocalBitcoinCoreOnShutdown": true, "LocalBitcoinCoreDataDir": "/home/user/.bitcoin", "TorSocks5EndPoint": "127.0.0.1:9050", "MainNetBitcoinP2pEndPoint": "tralfaz.dynu.net:8333", "TestNetBitcoinP2pEndPoint": "127.0.0.1:18333", "RegTestBitcoinP2pEndPoint": "127.0.0.1:18444", "MixUntilAnonymitySet": 100, "PrivacyLevelSome": 44, "PrivacyLevelFine": 77, "PrivacyLevelStrong": 101, "DustThreshold": "0.0001" }

UiConfig.json:

{ "WindowState": "Maximized", "Height": 815.0, "Width": 1600.0, "FeeTarget": 2, "FeeDisplayFormat": 3, "Autocopy": true, "IsCustomFee": false, "LurkingWifeMode": false, "LockScreenActive": false, "LockScreenPinHash": "" }

Logs.txt

UNSUCCESSFUL ATTEMPT IN UPDATING ANON SET PARAMS IN THE BELOW RUN, BY CLOSING SETTING TAB BEFORE EXITING

2019-12-09 15:03:54 INFO Program (44) Wasabi GUI started (1e90f063-f152-4a92-b96a-b6928dd29254). 2019-12-09 15:03:56 INFO Global (158) Config is successfully initialized. 2019-12-09 15:03:56 INFO TorProcessManager (249) Starting Tor monitor... 2019-12-09 15:03:56 INFO Global (220) TorProcessManager is initialized. 2019-12-09 15:03:56 INFO TransactionStore (28) MempoolStore.InitializeAsync finished in 202 milliseconds. 2019-12-09 15:03:57 INFO TransactionStore (28) ConfirmedStore.InitializeAsync finished in 289 milliseconds. 2019-12-09 15:03:57 INFO AllTransactionStore (27) InitializeAsync finished in 363 milliseconds. 2019-12-09 15:03:57 INFO TorProcessManager (66) Tor is already running. 2019-12-09 15:04:00 INFO Global (387) Loaded AddressManager from /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:00 INFO MainWindow.xaml (74) UiConfig is successfully initialized. 2019-12-09 15:04:06 INFO IndexStore (43) InitializeAsync finished in 10 seconds. 2019-12-09 15:04:06 INFO BitcoinStore (39) InitializeAsync finished in 10 seconds. 2019-12-09 15:04:06 INFO HostedServices (49) Stared Software Update Checker. 2019-12-09 15:04:06 INFO Global (329) Start connecting to nodes... 2019-12-09 15:04:06 INFO Global (351) Start synchronizing filters... 2019-12-09 15:04:24 INFO MainWindow.xaml (168) UiConfig is saved. 2019-12-09 15:04:24 INFO MainWindow.xaml (176) WalletManagerViewModel closed. 2019-12-09 15:04:24 INFO Global (775) Disposed FeeProviders. 2019-12-09 15:04:24 INFO Global (782) CoinJoinProcessor is disposed. 2019-12-09 15:04:24 INFO Global (789) Synchronizer is stopped. 2019-12-09 15:04:24 INFO HostedServices (78) Stopped Software Update Checker. 2019-12-09 15:04:24 INFO HostedServices (130) Disposed Software Update Checker. 2019-12-09 15:04:24 INFO Global (798) Stopped background services. 2019-12-09 15:04:24 INFO Global (809) AddressManager is saved to /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:24 INFO Global (822) Nodes are disposed. 2019-12-09 15:04:25 INFO Global (847) TorManager is stopped. 2019-12-09 15:04:25 INFO Global (855) AsyncMutex(es) are stopped. 2019-12-09 15:04:25 INFO Program (62) Wasabi GUI stopped gracefully (1e90f063-f152-4a92-b96a-b6928dd29254).

SUCCESSFULLY UPDATED ANON SET PARAMS IN THE BELOW RUN, BY EXITING WITH SETTINGS TAB OPEN

2019-12-09 15:04:31 INFO Program (44) Wasabi GUI started (94efa5ea-4f9c-45cc-941a-ea5b2b2e54b9). 2019-12-09 15:04:34 INFO Global (158) Config is successfully initialized. 2019-12-09 15:04:35 INFO TorProcessManager (249) Starting Tor monitor... 2019-12-09 15:04:35 INFO Global (220) TorProcessManager is initialized. 2019-12-09 15:04:35 INFO TransactionStore (28) MempoolStore.InitializeAsync finished in 419 milliseconds. 2019-12-09 15:04:35 INFO TransactionStore (28) ConfirmedStore.InitializeAsync finished in 507 milliseconds. 2019-12-09 15:04:35 INFO AllTransactionStore (27) InitializeAsync finished in 568 milliseconds. 2019-12-09 15:04:36 INFO TorProcessManager (66) Tor is already running. 2019-12-09 15:04:36 INFO Global (387) Loaded AddressManager from /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:36 INFO MainWindow.xaml (74) UiConfig is successfully initialized. 2019-12-09 15:04:44 INFO IndexStore (43) InitializeAsync finished in 9 seconds. 2019-12-09 15:04:44 INFO BitcoinStore (39) InitializeAsync finished in 9 seconds. 2019-12-09 15:04:44 INFO HostedServices (49) Stared Software Update Checker. 2019-12-09 15:04:44 INFO Global (329) Start connecting to nodes... 2019-12-09 15:04:44 INFO Global (351) Start synchronizing filters... 2019-12-09 15:04:52 INFO MainWindow.xaml (168) UiConfig is saved. 2019-12-09 15:04:52 INFO MainWindow.xaml (176) WalletManagerViewModel closed. 2019-12-09 15:04:52 INFO Global (775) Disposed FeeProviders. 2019-12-09 15:04:52 INFO Global (782) CoinJoinProcessor is disposed. 2019-12-09 15:04:52 INFO Global (789) Synchronizer is stopped. 2019-12-09 15:04:52 INFO HostedServices (78) Stopped Software Update Checker. 2019-12-09 15:04:52 INFO HostedServices (130) Disposed Software Update Checker. 2019-12-09 15:04:52 INFO Global (798) Stopped background services. 2019-12-09 15:04:52 INFO Global (809) AddressManager is saved to /home/user/.walletwasabi/client/AddressManager/AddressManagerTestNet.dat. 2019-12-09 15:04:52 INFO Global (822) Nodes are disposed. 2019-12-09 15:04:52 INFO Global (847) TorManager is stopped. 2019-12-09 15:04:52 INFO Global (855) AsyncMutex(es) are stopped. 2019-12-09 15:04:52 INFO Program (62) Wasabi GUI stopped gracefully (94efa5ea-4f9c-45cc-941a-ea5b2b2e54b9).

I will try asap

lontivero commented 4 years ago

I don't see anything wrong.

davterra commented 4 years ago

@MaxHillebrand and @SimoneBovi are you still able to replicate this? Simone said as recently as yesterday 12/9 that he could replicate, presumably with his Mac/Catalina. Not had an update from Max since the changes to Master.

ghost commented 4 years ago

@davterra I just tried with the latest master and I can still replicate this following your 1st procedure using macOS Catalina.

davterra commented 4 years ago

Thanks, with mixed emotions. I'd like it if no one, including myself could replicate this, but it's also nice to know it's not just my particular setup/environment.

MaxHillebrand commented 4 years ago

Tested on Qubes 4 Debian 10 & Fedora 30

Procedure #1:

Does not safe anonset targets, they are reset to the previous

Procedure #2:

Does safe anonset targets, they are not reset to the previous