diff options
author | Eric Lombrozo <elombrozo@gmail.com> | 2012-12-21 00:53:16 -0800 |
---|---|---|
committer | bitcoindev <bitcoindev@gnusha.org> | 2012-12-21 08:53:30 +0000 |
commit | c23867b641ef1bb498de3e89c5b4c15c80d4110e (patch) | |
tree | 4dfad70512f2d552b8e51ab0b4ecdd8477331d0f | |
parent | 38546dc01692e1d2087066fc6da07e2ad3aada48 (diff) | |
download | pi-bitcoindev-c23867b641ef1bb498de3e89c5b4c15c80d4110e.tar.gz pi-bitcoindev-c23867b641ef1bb498de3e89c5b4c15c80d4110e.zip |
[Bitcoin-development] Multiwallet support
-rw-r--r-- | 04/19999b544deea0b8bf096f610354a1689059c2 | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/04/19999b544deea0b8bf096f610354a1689059c2 b/04/19999b544deea0b8bf096f610354a1689059c2 new file mode 100644 index 000000000..0fd7898e2 --- /dev/null +++ b/04/19999b544deea0b8bf096f610354a1689059c2 @@ -0,0 +1,187 @@ +Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] + helo=mx.sourceforge.net) + by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) + (envelope-from <elombrozo@gmail.com>) id 1TlyME-0005g2-E7 + for bitcoin-development@lists.sourceforge.net; + Fri, 21 Dec 2012 08:53:30 +0000 +Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com + designates 209.85.220.46 as permitted sender) + client-ip=209.85.220.46; envelope-from=elombrozo@gmail.com; + helo=mail-pa0-f46.google.com; +Received: from mail-pa0-f46.google.com ([209.85.220.46]) + by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) + (Exim 4.76) id 1TlyM9-0004vO-5I + for bitcoin-development@lists.sourceforge.net; + Fri, 21 Dec 2012 08:53:30 +0000 +Received: by mail-pa0-f46.google.com with SMTP id bh2so2676482pad.19 + for <bitcoin-development@lists.sourceforge.net>; + Fri, 21 Dec 2012 00:53:19 -0800 (PST) +X-Received: by 10.68.234.229 with SMTP id uh5mr37541746pbc.123.1356079999339; + Fri, 21 Dec 2012 00:53:19 -0800 (PST) +Received: from [192.168.1.100] (cpe-72-130-140-12.san.res.rr.com. + [72.130.140.12]) + by mx.google.com with ESMTPS id hs2sm6638719pbc.22.2012.12.21.00.53.18 + (version=TLSv1/SSLv3 cipher=OTHER); + Fri, 21 Dec 2012 00:53:18 -0800 (PST) +From: Eric Lombrozo <elombrozo@gmail.com> +Content-Type: multipart/alternative; + boundary="Apple-Mail=_7AD35CF4-8C03-4D70-B3F9-F58F2329330B" +Message-Id: <B03D534F-BAB6-4068-A8B4-AE28764F3D88@gmail.com> +Date: Fri, 21 Dec 2012 00:53:16 -0800 +To: Bitcoin Dev <bitcoin-development@lists.sourceforge.net> +Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) +X-Mailer: Apple Mail (2.1499) +X-Spam-Score: -0.6 (/) +X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. + See http://spamassassin.org/tag/ for more details. + -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for + sender-domain + 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider + (elombrozo[at]gmail.com) + -0.0 SPF_PASS SPF: sender matches SPF record + 1.0 HTML_MESSAGE BODY: HTML included in message + -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from + author's domain + 0.1 DKIM_SIGNED Message has a DKIM or DK signature, + not necessarily valid + -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature +X-Headers-End: 1TlyM9-0004vO-5I +Subject: [Bitcoin-development] Multiwallet support +X-BeenThere: bitcoin-development@lists.sourceforge.net +X-Mailman-Version: 2.1.9 +Precedence: list +List-Id: <bitcoin-development.lists.sourceforge.net> +List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>, + <mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe> +List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development> +List-Post: <mailto:bitcoin-development@lists.sourceforge.net> +List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help> +List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>, + <mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe> +X-List-Received-Date: Fri, 21 Dec 2012 08:53:30 -0000 + + +--Apple-Mail=_7AD35CF4-8C03-4D70-B3F9-F58F2329330B +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; + charset=us-ascii + +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. + + + +--Apple-Mail=_7AD35CF4-8C03-4D70-B3F9-F58F2329330B +Content-Transfer-Encoding: quoted-printable +Content-Type: text/html; + charset=us-ascii + +<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html = +charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; = +-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I = +started working on a new feature to allow for watch-only addresses in = +wallets. <a = +href=3D"https://github.com/bitcoin/bitcoin/pull/2121">https://github.com/b= +itcoin/bitcoin/pull/2121</a><div><br></div><div>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:</div><div><br></div><div>1) full = +signing wallet</div><div><span class=3D"Apple-tab-span" = +style=3D"white-space:pre"> </span>- importaddress is = +disabled.</div><div><br></div><div>2) watch-only wallet</div><div><span = +class=3D"Apple-tab-span" style=3D"white-space:pre"> = +</span>- signing and privkey export operations are = +disabled.</div><div><span class=3D"Apple-tab-span" = +style=3D"white-space:pre"> </span>- importprivkey only saves = +the associated address but not the private key. (behaves like = +importaddress <address for privkey>)</div><div><br></div><div>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.</div><div><br></div><div>----------------------</div><div><br></d= +iv><div>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.</div><div><br></div><div><span style=3D"color: rgb(51, 51, 51); = +font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: = +13px; line-height: 20px; background-color: rgb(251, 251, 251); ">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).</span></div><div><span = +style=3D"color: rgb(51, 51, 51); font-family: Helvetica, arial, = +freesans, clean, sans-serif; font-size: 13px; line-height: 20px; = +background-color: rgb(251, 251, 251); "><br></span></div><div><span = +style=3D"color: rgb(51, 51, 51); font-family: Helvetica, arial, = +freesans, clean, sans-serif; font-size: 13px; line-height: 20px; = +background-color: rgb(251, 251, 251); ">For = +instance,</span></div><div><span style=3D"color: rgb(51, 51, 51); = +font-family: Helvetica, arial, freesans, clean, sans-serif; font-size: = +13px; line-height: 20px; background-color: rgb(251, 251, 251); "><span = +class=3D"Apple-tab-span" style=3D"white-space:pre"> = +</span></span><span style=3D"font-family: Consolas, 'Liberation Mono', = +Courier, monospace; font-size: 12px; color: rgb(51, 51, 51); = +line-height: 19px; ">walletsendtoaddress <walletname> = +<passphrase> <bitcoinaddress> <amount> [comment] = +[comment-to]</span></div><div><br></div><div>I welcome any proposals or = +suggestions as to how this should be = +done.</div><div><br></div><div><br></div></body></html>= + +--Apple-Mail=_7AD35CF4-8C03-4D70-B3F9-F58F2329330B-- + + |