Author

Topic: [Feature request] Loading different wallets on the fly (Read 796 times)

sr. member
Activity: 434
Merit: 250
100%
An easy to use feature in the client that allows you to load different wallets that you've created for different businesses or purposes.
The groundwork for supporting multiple loaded wallets is already there (multiple CWallet objects).

Quote
You click on a button "Load wallet file" > It asks you "Do you want to create a backup of the wallet currently in use (recommended for most users)?" > Yes/No > You pick any wallet file from your storage device > The client briefly disconnects from the network, replaces the previous wallet with the new one, reconnects to the network.

Disconnecting you from the network is not even needed as the network code is not dependent on wallets; however you do need a rescan through the block chain (as 2112 mentions) to pick up new transactions "owned" by the wallet.

I've proposed this feature for the qt client once when asking what to do next, but there were not too many people interested, so it's currently at very low priority.




Thanks for your efforts. I'll just wait for what comes around then.

hero member
Activity: 812
Merit: 1022
No Maps for These Territories
An easy to use feature in the client that allows you to load different wallets that you've created for different businesses or purposes.
The groundwork for supporting multiple loaded wallets is already there (multiple CWallet objects).

Quote
You click on a button "Load wallet file" > It asks you "Do you want to create a backup of the wallet currently in use (recommended for most users)?" > Yes/No > You pick any wallet file from your storage device > The client briefly disconnects from the network, replaces the previous wallet with the new one, reconnects to the network.

Disconnecting you from the network is not even needed as the network code is not dependent on wallets; however you do need a rescan through the block chain (as 2112 mentions) to pick up new transactions "owned" by the wallet.

I've proposed this feature for the qt client once when asking what to do next, but there were not too many people interested, so it's currently at very low priority.

legendary
Activity: 2128
Merit: 1073
Yeah, you've missed chain reorganization / rollback / chargeback. Pretty much like anybody else who tries to modify the Satoshi client without understanding of the Satoshi whitepaper.

Loading a new wallet requires a rescan of the block-chain.

Theoretically, wallet.dat could be modified to store the hash coordinate of the tip of the block-chain when it gets "unloaded". Then upon "loading" instead of the full rescan the code could do a partial rescan "up the chain" (or "down and then up the chain" in case of the reorganization).

The amount of coding to do it properly is significantly nontrivial. About the same order of magnitude as developing a properly architectured split "bitcoind" & "bitcoinui".
sr. member
Activity: 434
Merit: 250
100%
Hello, searching the archives I didn't find a thread that covered this, so I may be the first to suggest this:


An easy to use feature in the client that allows you to load different wallets that you've created for different businesses or purposes.

You click on a button "Load wallet file" > It asks you "Do you want to create a backup of the wallet currently in use (recommended for most users)?" > Yes/No > You pick any wallet file from your storage device > The client briefly disconnects from the network, replaces the previous wallet with the new one, reconnects to the network.

The above is the simple solution, ideally you would want it to do this:

Instead of replacing wallet.dat with another wallet.dat and requiring backups before replacing, it would directly access any given wallet file in a given location and write to it directly (when creating new addresses, for instance).

This eliminates having to rename and move wallet files around folders and you could store them in a centralized folder somewhere or in multiple locations.

I want to be able to give my wallet files individual names, such as BusinessA_last_backup_01-01-2012 or BusinessB_last_backup_02_02_2012. Pick one of them from the folder and have the client load it. Also, the client could offer me to name my wallet file upon creation and ask what location to save it in. The client would have to remember where it accessed the last wallet from.

As a bonus, I'd find it cool if we could introduce a wallet file extension other than .dat. My suggestion: .btc


Let me know if I missed anything there.


Jump to: