BIP 0017 QA

This page is a Quality Assurance test plan for BIP 17. If you see a test missing, please add it. If you can help test, please edit this page to sign-off on it.

Testnet Mainnet Test Procedure Tested by
Run BIP-17-capable Bitcoin 0.6<br />

Send coins using GUI, RPC sendtoaddress, and RPC sendmany commands<br /> Result: coins sent in all cases

Luke Dashjr (block 164676)
Test multisig 1-of-1<br />

Run 0.6 bitcoind, get a public key with: ./bitcoind validateaddress $(./bitcoind getnewaddress)<br /> Generate a multisig 1-of-1 address: ./bitcoind addmultisigaddress 1 {public key from above}<br /> Send-to-self some bitcoins using that address<br /> Result: transaction is confirmed by network, displays properly in listtransactions.<br /> Result: balance is unaffected

Luke Dashjr (block 163685)
Test multisig 1-of-2<br />

Run 0.6 bitcoind, get 2 new bitcoin addresses<br /> Generate a multisig 1-of-2 address: ./bitcoind addmultisigaddress 1 {address1} {address2}<br /> Send-to-self some bitcoins using that address<br /> Result: transaction is confirmed by network, displays properly in listtransactions.<br /> Result: bitcoin balance is unaffected.

Luke Dashjr (block 164676)
Test multisig 1-of-3, 2-of-3, 3-of-3<br />

Repeat test procedures above, with the other new multisignature transaction types

Luke Dashjr (block 164676)
Test multisig send-to-other<br />

Repeat test procedures above, but use two bitcoinds, prepared as follows:<br /> bitcoind 1 : Run getnewaddress and addmultisigaddress<br /> bitcoind 2 : Just addmultisigaddress<br /> Send coins from 2 to 1 using the address<br /> Result: transaction is accepted/confirmed by network<br /> Result: balance for 2 goes down, listtransactions for 2 displays correct result<br /> Result: balance for 1 goes up, listtransactions for 1 displays correct result<br />

Luke Dashjr (block 164676)
Test redeeming multisignature transactions<br />

Fund a new, empty wallet entirely with multisig transactions<br /> Wait for transactions to confirm<br /> Use sendtoaddress and sendmany to generate spend-from-multisig transactions<br /> Spend to both single-address and multisig address, and test send-to-other and send-to-self<br /> Result: transactions are accepted/confirmed by network<br /> Result: balance decreases, listtransactions displays correct information<br />

Luke Dashjr (block 164676)
Run 0.6 Bitcoin-Qt GUI on one of the test wallets from above<br />

Result: balance and transactions displayed correctly

Luke Dashjr
Run BIP-17-capable backport Bitcoin 0.3.19 through 0.5.1<br />

Send coins using GUI, RPC sendtoaddress, and RPC sendmany commands<br /> Result: coins sent in all cases

Luke Dashjr
n/a Run BIP-17-capable Bitcoin 0.6.0<br />

Mine coins using built-in miner<br /> Result: blocks accepted, show up on pre-BIP17 clients<br /> Result: mined blocks’ coinbase contains p2sh/CHV string

Luke Dashjr
Run BIP-17-capable Bitcoin 0.6.0<br />

Mine coins using getwork interface<br /> Result: blocks accepted, show up on pre-BIP17 clients<br /> Result: mined blocks’ coinbase contains p2sh/CHV string

Luke Dashjr
Run BIP-17-capable Bitcoin 0.6.0<br />

Mine coins using getmemorypool interface<br /> Result: blocks accepted, show up on pre-BIP17 clients<br />

Luke Dashjr (block 164895)
n/a Run BIP-17-capable Bitcoin 0.3.19 through 0.5.1 backports<br />

Mine coins using built-in miner<br /> Result: blocks accepted, show up on pre-BIP17 clients<br /> Result: mined blocks’ coinbase contains p2sh/CHV string

Luke Dashjr
Run BIP-17-capable Bitcoin 3.19 through 0.5.1 backports<br />

Mine coins using getwork interface<br /> Result: blocks accepted, show up on pre-BIP17 clients<br /> Result: mined blocks’ coinbase contains p2sh/CHV string

Luke Dashjr (block 164676)
Run BIP-17-capable Bitcoin 3.19 through 0.5.1 backports<br />

Mine coins using getmemorypool interface<br /> Result: blocks accepted, show up on pre-BIP17 clients<br />

Luke Dashjr (block 164733)
n/a Create/run unit tests for:<br />

multisignature signing/verification<br /> multisignature invalid signature failure<br /> multisignature IsStandard() success/failure<br /> extraction of addresses from multisignature transactions<br /> BIP 17 IsStandard() success/failure<br /> BIP 17 AreInputsStandard() success/failure<br /> BIP 17 compatibility with other 3 standard transaction types<br /> BIP 17 switchover date logic<br />

Luke Dashjr, Gavin Andresen
Create/run ‘transaction fuzzer’ to stress-test BIP 17 transactions

Source

http://bitcoin.it/

See Also on BitcoinWiki