Difference between revisions of "BIP 0017 QA"

From Bitcoin Wiki
Jump to: navigation, search
(Created page with "This page is a Quality Assurance test plan for BIPs 17 and <?>. If you see a test missing, please add it. If you can help test, please edit this page to sign-off on it. NOTE...")
 
 
(25 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page is a Quality Assurance test plan for BIPs 17 and <?>.  If you see a test missing, please add it.
+
This page is a Quality Assurance test plan for [[BIP 0017|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.
 
If you can help test, please edit this page to sign-off on it.
 
NOTE: new multisig BIP is still in progress; BIP 17 had been tested with BIP 11 multisigs already
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 8: Line 6:
 
! Testnet !! Mainnet !! Test Procedure !! Tested by
 
! Testnet !! Mainnet !! Test Procedure !! Tested by
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| || &#x2713;
| Run BIP-17-capable Bitcoin 0.6 on testnet and main net<br />
+
| Run BIP-17-capable Bitcoin 0.6<br />
 
Send coins using GUI, RPC sendtoaddress, and RPC sendmany commands<br />
 
Send coins using GUI, RPC sendtoaddress, and RPC sendmany commands<br />
 
Result: coins sent in all cases
 
Result: coins sent in all cases
|  
+
| Luke Dashjr ([http://blockexplorer.com/b/164676 block 164676])
  
|- style="color:red;"
+
|- style="background: #90ff90"
| ||
+
| &#x2713; || &#x2713;
 
| Test multisig 1-of-1<br />
 
| Test multisig 1-of-1<br />
Run 0.6 bitcoind, get a public key with: ./bitcoind -testnet validateaddress $(./bitcoind -testnet getnewaddress)<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 />
 
Generate a multisig 1-of-1 address: ./bitcoind addmultisigaddress 1 {public key from above}<br />
 
Send-to-self some bitcoins using that address<br />
 
Send-to-self some bitcoins using that address<br />
Result: transaction is confirmed by network, displays properly in listtransactions.
+
Result: transaction is confirmed by network, displays properly in listtransactions.<br />
 
Result: balance is unaffected
 
Result: balance is unaffected
|  
+
| Luke Dashjr ([http://blockexplorer.com/b/163685 block 163685])
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| || &#x2713;
 
| Test multisig 1-of-2<br />
 
| Test multisig 1-of-2<br />
 
Run 0.6 bitcoind, get 2 new bitcoin addresses<br />
 
Run 0.6 bitcoind, get 2 new bitcoin addresses<br />
 
Generate a multisig 1-of-2 address: ./bitcoind addmultisigaddress 1 {address1} {address2}<br />
 
Generate a multisig 1-of-2 address: ./bitcoind addmultisigaddress 1 {address1} {address2}<br />
 
Send-to-self some bitcoins using that address<br />
 
Send-to-self some bitcoins using that address<br />
Result: transaction is confirmed by network, displays properly in listtransactions.
+
Result: transaction is confirmed by network, displays properly in listtransactions.<br />
 
Result: bitcoin balance is unaffected.
 
Result: bitcoin balance is unaffected.
|  
+
| Luke Dashjr ([http://blockexplorer.com/b/164676 block 164676])
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| || &#x2713;
 
| Test multisig 1-of-3, 2-of-3, 3-of-3<br />
 
| Test multisig 1-of-3, 2-of-3, 3-of-3<br />
 
Repeat test procedures above, with the other new multisignature transaction types
 
Repeat test procedures above, with the other new multisignature transaction types
|  
+
| Luke Dashjr ([http://blockexplorer.com/b/164676 block 164676])
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| || &#x2713;
 
| Test multisig send-to-other<br />
 
| Test multisig send-to-other<br />
 
Repeat test procedures above, but use two bitcoinds, prepared as follows:<br />
 
Repeat test procedures above, but use two bitcoinds, prepared as follows:<br />
Line 51: Line 49:
 
Result: balance for 2 goes down, listtransactions for 2 displays correct result<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 />
 
Result: balance for 1 goes up, listtransactions for 1 displays correct result<br />
|  
+
| Luke Dashjr ([http://blockexplorer.com/b/164676 block 164676])
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| || &#x2713;
 
| Test redeeming multisignature transactions<br />
 
| Test redeeming multisignature transactions<br />
 
Fund a new, empty wallet entirely with multisig transactions<br />
 
Fund a new, empty wallet entirely with multisig transactions<br />
Line 62: Line 60:
 
Result: transactions are accepted/confirmed by network<br />
 
Result: transactions are accepted/confirmed by network<br />
 
Result: balance decreases, listtransactions displays correct information<br />
 
Result: balance decreases, listtransactions displays correct information<br />
|  
+
| Luke Dashjr ([http://blockexplorer.com/b/164676 block 164676])
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| || &#x2713;
 
| Run 0.6 Bitcoin-Qt GUI on one of the test wallets from above<br />
 
| Run 0.6 Bitcoin-Qt GUI on one of the test wallets from above<br />
 
Result: balance and transactions displayed correctly
 
Result: balance and transactions displayed correctly
|
+
| Luke Dashjr
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| &#x2713; || &#x2713;
| Run BIP-16-capable backport Bitcoin 0.3.19 through 0.5.1 on testnet and main net<br />
+
| 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 />
 
Send coins using GUI, RPC sendtoaddress, and RPC sendmany commands<br />
 
Result: coins sent in all cases
 
Result: coins sent in all cases
|  
+
| Luke Dashjr
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| &#x2713; || n/a
| Run BIP-16-capable Bitcoin 0.6.0 on testnet<br />
+
| Run BIP-17-capable Bitcoin 0.6.0<br />
 
Mine coins using built-in miner<br />
 
Mine coins using built-in miner<br />
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
+
Result: blocks accepted, show up on pre-BIP17 clients<br />
 
Result: mined blocks' coinbase contains p2sh/CHV string
 
Result: mined blocks' coinbase contains p2sh/CHV string
|  
+
| Luke Dashjr
  
|- style="color:red;"
+
|- style="background:#ffff90"
| ||
+
| &#x2713; ||
| Run BIP-16-capable Bitcoin 0.6.0 on testnet<br />
+
| Run BIP-17-capable Bitcoin 0.6.0<br />
 
Mine coins using getwork interface<br />
 
Mine coins using getwork interface<br />
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
+
Result: blocks accepted, show up on pre-BIP17 clients<br />
 
Result: mined blocks' coinbase contains p2sh/CHV string
 
Result: mined blocks' coinbase contains p2sh/CHV string
|  
+
| Luke Dashjr
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| &#x2713; || &#x2713;
| Run BIP-16-capable Bitcoin 0.6.0 on testnet<br />
+
| Run BIP-17-capable Bitcoin 0.6.0<br />
 
Mine coins using getmemorypool interface<br />
 
Mine coins using getmemorypool interface<br />
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
+
Result: blocks accepted, show up on pre-BIP17 clients<br />
Result: mined blocks' coinbase contains p2sh/CHV string
+
| Luke Dashjr ([http://blockexplorer.com/b/164895 block 164895])
|
 
 
 
|- style="color:red;"
 
| ||
 
| Run BIP-16-capable Bitcoin 0.3.19 through 0.5.1 backports on testnet<br />
 
Mine coins using built-in miner<br />
 
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
 
Result: mined blocks' coinbase contains p2sh/CHV string
 
|
 
 
 
|- style="color:red;"
 
| ||
 
| Run BIP-16-capable Bitcoin 3.19 through 0.5.1 backports on testnet<br />
 
Mine coins using getwork interface<br />
 
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
 
Result: mined blocks' coinbase contains p2sh/CHV string
 
|
 
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| &#x2713; || n/a
| Run BIP-16-capable Bitcoin 0.3.19 through 0.5.1 backports on testnet<br />
+
| Run BIP-17-capable Bitcoin 0.3.19 through 0.5.1 backports<br />
 
Mine coins using built-in miner<br />
 
Mine coins using built-in miner<br />
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
+
Result: blocks accepted, show up on pre-BIP17 clients<br />
 
Result: mined blocks' coinbase contains p2sh/CHV string
 
Result: mined blocks' coinbase contains p2sh/CHV string
|  
+
| Luke Dashjr
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| &#x2713; || &#x2713;
| Run BIP-16-capable Bitcoin 3.19 through 0.5.1 backports on testnet<br />
+
| Run BIP-17-capable Bitcoin 3.19 through 0.5.1 backports<br />
 
Mine coins using getwork interface<br />
 
Mine coins using getwork interface<br />
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
+
Result: blocks accepted, show up on pre-BIP17 clients<br />
 
Result: mined blocks' coinbase contains p2sh/CHV string
 
Result: mined blocks' coinbase contains p2sh/CHV string
|  
+
| Luke Dashjr ([http://blockexplorer.com/b/164676 block 164676])
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| &#x2713; || &#x2713;
| Run BIP-16-capable Bitcoin 3.19 through 0.5.1 backports on testnet<br />
+
| Run BIP-17-capable Bitcoin 3.19 through 0.5.1 backports<br />
 
Mine coins using getmemorypool interface<br />
 
Mine coins using getmemorypool interface<br />
Result: blocks accepted, show up on blockexplorer.com/testnet<br />
+
Result: blocks accepted, show up on pre-BIP17 clients<br />
Result: mined blocks' coinbase contains p2sh/CHV string
+
| Luke Dashjr ([http://blockexplorer.com/b/164733 block 164733])
|
 
  
|- style="color:red;"
+
|- style="background:#90ff90"
| ||
+
| &#x2713; || n/a
 
| Create/run unit tests for:<br />
 
| Create/run unit tests for:<br />
 
multisignature signing/verification<br />
 
multisignature signing/verification<br />
Line 152: Line 132:
 
BIP 17 compatibility with other 3 standard transaction types<br />
 
BIP 17 compatibility with other 3 standard transaction types<br />
 
BIP 17 switchover date logic<br />
 
BIP 17 switchover date logic<br />
|  
+
| Luke Dashjr, Gavin Andresen
  
|- style="color:red;"
+
|- style="background:#ff9090"
 
| ||
 
| ||
 
| Create/run 'transaction fuzzer' to stress-test BIP 17 transactions
 
| Create/run 'transaction fuzzer' to stress-test BIP 17 transactions
|
 
 
|- style="color:red;"
 
| ||
 
| Run Bitcoin 0.6 on main net <br />
 
Result: blocks created properly
 
Result: blocks include p2sh/CHV string in their coinbase
 
|
 
 
|- style="color:red;"
 
| ||
 
| Run BIP 17 vinced_mergedmine backport on main net <br />
 
Result: blocks created properly
 
Result: blocks include p2sh/CHV string in their coinbase
 
 
|  
 
|  
  
 
|}
 
|}

Latest revision as of 20:34, 1 February 2012

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

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

Luke Dashjr (block 164676)
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 (block 163685)
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 (block 164676)
Test multisig 1-of-3, 2-of-3, 3-of-3

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

Luke Dashjr (block 164676)
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 (block 164676)
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 (block 164676)
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

Luke Dashjr (block 164895)
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
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 (block 164676)
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

Luke Dashjr (block 164733)
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