summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Lombrozo <elombrozo@gmail.com>2012-12-21 00:53:16 -0800
committerbitcoindev <bitcoindev@gnusha.org>2012-12-21 08:53:30 +0000
commitc23867b641ef1bb498de3e89c5b4c15c80d4110e (patch)
tree4dfad70512f2d552b8e51ab0b4ecdd8477331d0f
parent38546dc01692e1d2087066fc6da07e2ad3aada48 (diff)
downloadpi-bitcoindev-c23867b641ef1bb498de3e89c5b4c15c80d4110e.tar.gz
pi-bitcoindev-c23867b641ef1bb498de3e89c5b4c15c80d4110e.zip
[Bitcoin-development] Multiwallet support
-rw-r--r--04/19999b544deea0b8bf096f610354a1689059c2187
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.&nbsp;<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) &nbsp;full =
+signing wallet</div><div><span class=3D"Apple-tab-span" =
+style=3D"white-space:pre"> </span>-&nbsp;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>-&nbsp;signing and privkey export operations are =
+disabled.</div><div><span class=3D"Apple-tab-span" =
+style=3D"white-space:pre"> </span>-&nbsp;importprivkey only saves =
+the associated address but not the private key. (behaves like =
+importaddress &lt;address for privkey&gt;)</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 &lt;walletname&gt; =
+&lt;passphrase&gt; &lt;bitcoinaddress&gt; &lt;amount&gt; [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--
+
+