public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [Bitcoin-development] Multisignature transaction support in the GUI
@ 2012-02-06 16:07 Gavin Andresen
  2012-02-06 17:27 ` Wladimir
  0 siblings, 1 reply; 4+ messages in thread
From: Gavin Andresen @ 2012-02-06 16:07 UTC (permalink / raw)
  To: Bitcoin Dev

I've been testing how the Bitcoin-Qt GUI deals with multisignature transactions.

The good news is it seems to display them just fine; even my
insanely-messy test wallets look reasonable.

It does not support sending multisig/BIP16 transactions, which is
definitely a feature for the main network (we don't want users sending
them until they will get relayed, get mined, AND will be fully
verified by a large super-majority of miners).

But... to encourage more testing it might make sense to enable sending
multisig transactions in the GUI if (fTestNet).

So I see two possible paths:

1) Leave the GUI as-is; require multisig testing to use the RPC interface.
 Note: the RPC call that make multisig sends possible
(addmultisigaddress) is disabled for the main network for the 0.6
release.
 Don't start rolling out GUI support until the next (0.7?) release cycle.

2) Start implementing multisig support in the GUI during the 0.6
release process, enabled only for test network. This could be as
simple as allowing the 35-character BIP16 multisig addresses in the
'send' dialog, to as complicated as adding/extending dialogs that let
you create multisig addresses to add to your address book.

Advantage of (1) is it should mean 0.6 gets to final release faster.

Advantage of (2) is it should mean more testing of multisig, and fewer
bug reports of "I added a multisig address via RPC but I can't send to
it using the GUI"

My opinion: I think it is worth allowing send-to-multisig-address via
the GUI (should be a very simple change to the address validation
logic).  But creating multisig addresses via the GUI should wait until
the next release.

-- 
--
Gavin Andresen



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Bitcoin-development] Multisignature transaction support in the GUI
  2012-02-06 16:07 [Bitcoin-development] Multisignature transaction support in the GUI Gavin Andresen
@ 2012-02-06 17:27 ` Wladimir
  2012-02-06 18:03   ` Wladimir
  2012-02-07 11:52   ` Aidan Thornton
  0 siblings, 2 replies; 4+ messages in thread
From: Wladimir @ 2012-02-06 17:27 UTC (permalink / raw)
  To: Gavin Andresen; +Cc: Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 1063 bytes --]

On Mon, Feb 6, 2012 at 5:07 PM, Gavin Andresen <gavinandresen@gmail.com>wrote:

>
> Advantage of (2) is it should mean more testing of multisig, and fewer
> bug reports of "I added a multisig address via RPC but I can't send to
> it using the GUI"
>
> My opinion: I think it is worth allowing send-to-multisig-address via
> the GUI (should be a very simple change to the address validation
> logic).  But creating multisig addresses via the GUI should wait until
> the next release.
>

I think we should go with (2), changing the maximum address length and
validation is very easy. We'd need to

   - Change BitcoinAddressValidator::MaxAddressLength to 35
   - The addresses are validated with walletmodel->validateAddress which in
   turn calls CBitcoinAddress addressParsed(addr) and then isValid(). Does
   this work for the new addresses?

The set of allowed characters is still the same, so BitcoinAddressValidator
doesn't have to be changed.

Advanced dialogs for constructing the addresses / adding them to the
address book could wait for 0.7.0.

Wladimir

[-- Attachment #2: Type: text/html, Size: 1593 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Bitcoin-development] Multisignature transaction support in the GUI
  2012-02-06 17:27 ` Wladimir
@ 2012-02-06 18:03   ` Wladimir
  2012-02-07 11:52   ` Aidan Thornton
  1 sibling, 0 replies; 4+ messages in thread
From: Wladimir @ 2012-02-06 18:03 UTC (permalink / raw)
  To: Gavin Andresen; +Cc: Bitcoin Dev

[-- Attachment #1: Type: text/plain, Size: 808 bytes --]

On Mon, Feb 6, 2012 at 6:27 PM, Wladimir <laanwj@gmail.com> wrote:

> On Mon, Feb 6, 2012 at 5:07 PM, Gavin Andresen <gavinandresen@gmail.com>wrote:
>
>>
>> Advantage of (2) is it should mean more testing of multisig, and fewer
>> bug reports of "I added a multisig address via RPC but I can't send to
>> it using the GUI"
>>
>> My opinion: I think it is worth allowing send-to-multisig-address via
>> the GUI (should be a very simple change to the address validation
>> logic).  But creating multisig addresses via the GUI should wait until
>> the next release.
>>
>
> I think we should go with (2), changing the maximum address length and
> validation is very easy. We'd need to
>

And maybe WalletModel::sendCoins has to be changed.
Does CScript.SetBitcoinAddress work for the new address type?

Wladimir

[-- Attachment #2: Type: text/html, Size: 1451 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Bitcoin-development] Multisignature transaction support in the GUI
  2012-02-06 17:27 ` Wladimir
  2012-02-06 18:03   ` Wladimir
@ 2012-02-07 11:52   ` Aidan Thornton
  1 sibling, 0 replies; 4+ messages in thread
From: Aidan Thornton @ 2012-02-07 11:52 UTC (permalink / raw)
  To: Wladimir; +Cc: Bitcoin Dev

On Mon, Feb 6, 2012 at 5:27 PM, Wladimir <laanwj@gmail.com> wrote:
> Change BitcoinAddressValidator::MaxAddressLength to 35
> The addresses are validated with walletmodel->validateAddress which in turn
> calls CBitcoinAddress addressParsed(addr) and then isValid(). Does this work
> for the new addresses?

Should do (unless BIP 16 broke something). In fact both the GUI and
RPC commands use CBitcoinAddress and IsValid to validate addresses in
that way.

> And maybe WalletModel::sendCoins has to be changed.
> Does CScript.SetBitcoinAddress work for the new address type?

Again, should do, and it's used by the RPC commands for sending
Bitcoins as well. Really there's not a lot that needs to be changed.
I'm pretty sure even the change in MaxAddressLength is only necessary
to send coins to multisig addresses on testnet, sending them on
mainnet should just work.



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-02-07 11:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-06 16:07 [Bitcoin-development] Multisignature transaction support in the GUI Gavin Andresen
2012-02-06 17:27 ` Wladimir
2012-02-06 18:03   ` Wladimir
2012-02-07 11:52   ` Aidan Thornton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox