I started working on a new feature to allow for watch-only addresses in 
wallets. https://github.com/bitcoin/bitcoin/pull/2121

In order to integrate this feature nicely into bitcoin / bitcoin, it will be 
necessary to disable signing and privkey export operations for watch-only 
addresses. Since disabling these things for only some of the keys in a wallet 
but not others is an API nightmare and complicates CreateTransaction logic, I 
propose adding multiple wallet capabilities and specifying upon creation 
whether a wallet is a:

1)  full signing wallet
        - importaddress is disabled.

2) watch-only wallet
        - signing and privkey export operations are disabled.
        - importprivkey only saves the associated address but not the private 
key. (behaves like importaddress <address for privkey>)

In order to do the above, it will be necessary to add multiple wallet support. 
Anyhow, that was my initial motivation for multiple wallets - but obviously, 
there are a number of other reasons why people might want multiple wallet 
support.

----------------------

Adding the ability to specify multiple wallets with associated names and 
passphrases in the config file should be fairly straightforward. However, 
exposing multiple wallets via RPC will be tricky as the existing RPC is not 
designed to support multiple wallets.

As to not break compatibility with the existing RPC calls, we can have a main 
wallet which is always used as the default wallet. If the user wants to use a 
different wallet, the name of the wallet would have to be specified in the 
call. Unfortunately, it doesn't look like we can use many of the existing RPC 
calls (sendfrom, sendmany,sendtoaddress, etc...) since they all have optional 
parameters already and it would be awkward to just tack on the wallet name 
parameter at the end. Also, walletpassphrase is problematic as it is not 
stateless. So it looks like we need a whole separate set of calls which require 
a wallet name and passphrase (if the wallet is encrypted).

For instance,
        walletsendtoaddress <walletname> <passphrase> <bitcoinaddress> <amount> 
[comment] [comment-to]

I welcome any proposals or suggestions as to how this should be done.


------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development

Reply via email to