Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: Farghaly on April 04, 2014, 05:36:07 PM



Title: Single bitcoind instance and multiple wallets, is it possible ?
Post by: Farghaly on April 04, 2014, 05:36:07 PM
Is it possible to interact with multiple wallets using a single bitcoind instance ?
i know that the wallet on which bitcoind operate can be changed using -datadir option, but this is per bitcoind instance. is it possible to make somethig like this ? assuming there are multiple wallets

Code:
getnewaddress <account:Foo> <wallet:wallet1.dat>
listunspent <wallet:wallet5.dat>
keypoolrefill 100 <wallet:wallet7.dat>





Title: Re: Single bitcoind instance and multiple wallets, is it possible ?
Post by: behindtext on April 06, 2014, 01:14:49 PM
not sure it works for your application, but you should have a look at btcd and btcwallet: they were built to accommodate just this scenario.

https://github.com/conformal/btcd (https://github.com/conformal/btcd)
https://github.com/conformal/btcwallet (https://github.com/conformal/btcwallet)

iirc bitcoind's account feature is deprecated and does not work how one would hope or expect.


Title: Re: Single bitcoind instance and multiple wallets, is it possible ?
Post by: jedunnigan on April 06, 2014, 04:48:59 PM
You should read through this thread to get some insights on how to do it: http://thread.gmane.org/gmane.comp.bitcoin.devel/4009

Quote
Multiple wallets, used serially, works fine today.  I manage multiple wallets using symlink replacement.



Title: Re: Single bitcoind instance and multiple wallets, is it possible ?
Post by: gwlloyd on April 06, 2014, 05:42:41 PM
I just use the account functionality to separate, but symlinks would work too (as mentioned above) and are also easy to set-up. Or perhaps look into using something like sx tools to perform the transactions through bitcoind rather than bitcoind itself.


Title: Re: Single bitcoind instance and multiple wallets, is it possible ?
Post by: jedunnigan on April 06, 2014, 05:52:22 PM
I just use the account functionality to separate, but symlinks would work too (as mentioned above) and are also easy to set-up. Or perhaps look into using something like sx tools to perform the transactions through bitcoind rather than bitcoind itself.

There are a few reasons not use accounts, but mainly this one:

Quote
The accounts code does not scale up to thousands of accounts with tens of thousands of transactions, because by-account (and by-account-by-time) indices are not implemented. So many operations (like computing an account balance) require accessing every wallet transaction.

https://en.bitcoin.it/wiki/Accounts_explained#Account_Weaknesses

Personally I don't think libbitcoin/obelisk/sx is production ready, but I respect the work genjix is doing.