<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=BIP_0016_QA</id>
	<title>BIP 0016 QA - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=BIP_0016_QA"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=BIP_0016_QA&amp;action=history"/>
	<updated>2026-05-15T23:46:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=BIP_0016_QA&amp;diff=2973&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;This page is a Quality Assurance test plan for BIP 16.  If you see a test missing, please add it. If you can help test, please edit this page to sign-off on it.  {| class=...&quot;</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=BIP_0016_QA&amp;diff=2973&amp;oldid=prev"/>
		<updated>2019-04-06T06:45:57Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;This page is a Quality Assurance test plan for &lt;a href=&quot;/BIP_16&quot; class=&quot;mw-redirect&quot; title=&quot;BIP 16&quot;&gt;BIP 16&lt;/a&gt;.  If you see a test missing, please add it. If you can help test, please edit this page to sign-off on it.  {| class=...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page is a Quality Assurance test plan for [[BIP 16]].  If you see a test missing, please add it.&lt;br /&gt;
If you can help test, please edit this page to sign-off on it.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Done !! Test Procedure !! Tested by&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable Bitcoin 0.6 on testnet and main net&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Send coins using GUI, RCP sendtoaddress, and RCP sendmany commands&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: coins sent in all cases&lt;br /&gt;
| Gavin Andresen&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Test multisig 1-of-1&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Run 0.6 bitcoind, get a public key with: ./bitcoind -testnet validateaddress $(./bitcoind -testnet getnewaddress)&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Generate a multisig 1-of-1 address: ./bitcoind addmultisigaddress 1 {public key from above}&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Send-to-self some bitcoins using that address&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: transaction is confirmed by network, displays properly in listtransactions.&lt;br /&gt;
Result: balance is unaffected&lt;br /&gt;
| Gavin Andresen; see transactions in [http://blockexplorer.com/testnet/block/000000001bdceba3936f2ea6a55311ac7b6030e327f1960e892620fcde6abf5f testnet block 44989]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Test multisig 1-of-2&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Run 0.6 bitcoind, get 2 new bitcoin addresses&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Generate a multisig 1-of-2 address: ./bitcoind addmultisigaddress 1 {address1} {address2}&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Send-to-self some bitcoins using that address&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: transaction is confirmed by network, displays properly in listtransactions.&lt;br /&gt;
Result: bitcoin balance is unaffected.&lt;br /&gt;
| Gavin Andresen; see transactions in [http://blockexplorer.com/testnet/block/000000001bdceba3936f2ea6a55311ac7b6030e327f1960e892620fcde6abf5f testnet block 44989]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Test multisig 1-of-3, 2-of-3, 3-of-3&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Repeat test procedures above, with the other new multisignature transaction types&lt;br /&gt;
| Gavin Andresen; see transactions in [http://blockexplorer.com/testnet/block/000000001bdceba3936f2ea6a55311ac7b6030e327f1960e892620fcde6abf5f testnet block 44989]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Test multisig send-to-other&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Repeat test procedures above, but use two bitcoinds, prepared as follows:&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
bitcoind 1 : Run getnewaddress and addmultisigaddress&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
bitcoind 2 : Just addmultisigaddress&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Send coins from 2 to 1 using the address&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: transaction is accepted/confirmed by network&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: balance for 2 goes down, listtransactions for 2 displays correct result&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: balance for 1 goes up, listtransactions for 1 displays correct result&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
| Gavin Andresen; see transactions in [http://blockexplorer.com/testnet/block/000000001bdceba3936f2ea6a55311ac7b6030e327f1960e892620fcde6abf5f testnet block 44989]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Test redeeming multisignature transactions&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Fund a new, empty wallet entirely with multisig transactions&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Wait for transactions to confirm&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Use sendtoaddress and sendmany to generate spend-from-multisig transactions&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Spend to both single-address and multisig address, and test send-to-other and send-to-self&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: transactions are accepted/confirmed by network&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: balance decreases, listtransactions displays correct information&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
| Gavin Andresen; see transactions in [http://blockexplorer.com/testnet/block/000000001bdceba3936f2ea6a55311ac7b6030e327f1960e892620fcde6abf5f testnet block 44989]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run 0.6 Bitcoin-Qt GUI on one of the test wallets from above&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: balance and transactions displayed correctly&lt;br /&gt;
| Gavin Andresen&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:orange;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable backport Bitcoin 0.3.19 through 0.5.1 on testnet and main net&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Send coins using GUI, RCP sendtoaddress, and RCP sendmany commands&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: coins sent in all cases&lt;br /&gt;
| Gavin Andresen (tested 0.3.19, 0.3.24 and 0.5.1)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable Bitcoin 0.6.0 on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using built-in miner&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| Gavin Andresen&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable Bitcoin 0.6.0 on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using getwork interface&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| Gavin Andresen&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| Run BIP-16-capable Bitcoin 0.6.0 on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using getmemorypool interface&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| Gregory Maxwell; Using p2pool see [https://blockexplorer.com/testnet/rawblock/00000000040367fcb750b6f064db6955b6c7c6218fb625e3dfed6b5c19c97107 testnet block 45400] (and many others, also tested on mainnet) &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable Bitcoin 0.3.19 through 0.5.1 backports on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using built-in miner&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| Gavin Andresen (tested all on a testnet-in-a-box)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable Bitcoin 3.19 through 0.5.1 backports on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using getwork interface&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| Gavin Andresen (tested all on a testnet-in-a-box)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable Bitcoin 0.3.19 through 0.5.1 backports on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using built-in miner&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| Gavin Andresen (tested all on a testnet-in-a-box)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP-16-capable Bitcoin 3.19 through 0.5.1 backports on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using getwork interface&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| Gavin Andresen (tested all on a testnet-in-a-box)&lt;br /&gt;
|- style=&amp;quot;color:red;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:red;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
| Run BIP-16-capable Bitcoin 3.19 through 0.5.1 backports on testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Mine coins using getmemorypool interface&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks accepted, show up on blockexplorer.com/testnet&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: mined blocks' coinbase contains /P2SH/ string&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Create/run unit tests for:&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
multisignature signing/verification&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
multisignature invalid signature failure&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
multisignature IsStandard() success/failure&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
extraction of addresses from multisignature transactions&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
BIP 16 IsStandard() success/failure (including failure with OP_PUSHDATA1/2/4)&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
BIP 16 AreInputsStandard() success/failure&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
BIP 16 compatibility with other 3 standard transaction types&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
BIP 16 no-recursion test&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
BIP 16 switchover date logic&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
OP_CHECKMULTISIG counting of signature operations inside BIP 16 transactions&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
| Gavin Andresen (see test/multisig_tests.cpp, test/script_tests.cpp, test/script_P2SH_tests.cpp, test/sigopcount_tests.cpp in the bitcoin source tree; 'make test_bitcoin' in src/ directory to compile)&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Create/run 'transaction fuzzer' to stress-test BIP 16 transactions&lt;br /&gt;
| Gavin Andresen (https://github.com/gavinandresen/bitcoin-git/tree/fuzzer , run twice on both testnet-in-a-box and testnet with 100,000 'fuzzed' transactions each test run) Valid fuzzed transactions appeared in (for example) [http://blockexplorer.com/testnet/block/000000001587c859649cea954e921ba4efd77707fb327dd53e122fd7b89636c4 testnet block 44987]&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run Bitcoin 0.6 on main net &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks created properly&lt;br /&gt;
Result: blocks include /P2SH/ string in their coinbase&lt;br /&gt;
| various mining pools&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Run BIP 16 vinced_mergedmine backport on main net &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Result: blocks created properly&lt;br /&gt;
Result: blocks include /P2SH/ string in their coinbase&lt;br /&gt;
| (Gavin for slush: after bug fixes, running with no issues)&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;color:green;&amp;quot;&lt;br /&gt;
| &amp;amp;#x2713;&lt;br /&gt;
| Test chain-split handling on testnet-in-a-box &amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Create two valid hash, invalid signature transactions in two blocks separated in time on a testnet-in-a-box chain&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
Run a bitcoind to synchronize with the chain, with -paytoscripthashtime set in between the two blocks&amp;amp;lt;br/&amp;amp;gt;&lt;br /&gt;
Result: first transaction/block accepted, second causes a chain split&amp;amp;lt;br/&amp;amp;gt;&lt;br /&gt;
Re-run bitcoind with -paytoscripthashtime in the future&amp;amp;lt;br/&amp;amp;gt;&lt;br /&gt;
Result: entire chain accepted&lt;br /&gt;
| Gavin Andresen: testnet-in-a-box files at: http://www.skypaint.com/bitcoin/bip16chain.tar.gz first half-valid BIP16 transaction at block 2431 (time 1328202835) second at block 2436 (time 1328204241)&amp;amp;lt;br /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
&lt;br /&gt;
[http://bitcoin.it/ http://bitcoin.it/]&lt;br /&gt;
==See Also on BitcoinWiki==&lt;br /&gt;
* [[Ubitious]]&lt;br /&gt;
* [[Virtual private server]]&lt;br /&gt;
* [[Bitcoin Porn]]&lt;br /&gt;
* [[UkrPlat]]&lt;br /&gt;
* [[TimeNewBank]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>