BIP 0017 QA

From Bitcoin Wiki
Revision as of 23:26, 30 January 2012 by Luke-jr (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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
P Run BIP-17-capable Bitcoin 0.6

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

Luke Dashjr
Test multisig 1-of-1

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

Luke Dashjr
Test multisig 1-of-2

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

Luke Dashjr
Test multisig 1-of-3, 2-of-3, 3-of-3

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

Luke Dashjr
Test multisig send-to-other

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

Luke Dashjr
P Test redeeming multisignature transactions

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

Luke Dashjr
Run 0.6 Bitcoin-Qt GUI on one of the test wallets from above

Result: balance and transactions displayed correctly

Luke Dashjr
Run BIP-17-capable backport Bitcoin 0.3.19 through 0.5.1

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

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

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

Luke Dashjr
Run BIP-17-capable Bitcoin 0.6.0

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

Luke Dashjr
Run BIP-17-capable Bitcoin 0.6.0

Mine coins using getmemorypool interface
Result: blocks accepted, show up on pre-BIP17 clients
Result: mined blocks' coinbase contains p2sh/CHV string

Luke Dashjr
n/a Run BIP-17-capable Bitcoin 0.3.19 through 0.5.1 backports

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

Luke Dashjr
P Run BIP-17-capable Bitcoin 3.19 through 0.5.1 backports

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

Luke Dashjr
Run BIP-17-capable Bitcoin 3.19 through 0.5.1 backports

Mine coins using getmemorypool interface
Result: blocks accepted, show up on pre-BIP17 clients
Result: mined blocks' coinbase contains p2sh/CHV string

Luke Dashjr
n/a Create/run unit tests for:

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

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