Merge bitcoin/bitcoin#22632: test: Set regtest.BIP66Height = 102 to speed up tests

fafe896a0b test: Set regtest.BIP66Height = 102 to speed up tests (MarcoFalke)

Pull request description:

  No need to waste time by forcing creation of more than 1000 blocks to get the benefits of being able to test BIP 66. Also, reducing the height makes it more likely that (third-party) tests are conforming to BIP 66, which is enforced on mainnet for all new blocks.

ACKs for top commit:
  GeneFerneau:
    Concept + code review ACK [fafe896](fafe896a0b)
  0xB10C:
    crACK fafe896a0b
  laanwj:
    ACK fafe896a0b
  Zero-1729:
    tACK fafe896
  kristapsk:
    ACK fafe896a0b. Full functional test suite showed few second speed incrase on my laptop (although I didn't do proper benchmarking with multiple runs, just single `time ./test/functional/test_runner.py` on current master vs this PR).
  theStack:
    Tested ACK fafe896a0b
  hg333:
    tACK fafe896a0b

Tree-SHA512: 4bbee3c8587d612e74a59fde49b6439c1296f2fc27d3a7cf59a35e920f729fdd581c930290bd04def618f81412236676ddb99b4ceb4d80dfb9fd610b128a04b1
pull/22582/head
W. J. van der Laan 3 years ago
commit 0b5344b0d1
No known key found for this signature in database
GPG Key ID: 1E4AED62986CD25D

@ -108,6 +108,9 @@ RPC
Tests Tests
----- -----
- For the `regtest` network the BIP 66 (DERSIG) activation height was changed
from 1251 to 102. (#22632)
Credits Credits
======= =======

@ -393,7 +393,7 @@ public:
consensus.BIP34Height = 2; // BIP34 activated on regtest (Block at height 1 not enforced for testing purposes) consensus.BIP34Height = 2; // BIP34 activated on regtest (Block at height 1 not enforced for testing purposes)
consensus.BIP34Hash = uint256(); consensus.BIP34Hash = uint256();
consensus.BIP65Height = 1351; // BIP65 activated on regtest (Used in functional tests) consensus.BIP65Height = 1351; // BIP65 activated on regtest (Used in functional tests)
consensus.BIP66Height = 1251; // BIP66 activated on regtest (Used in functional tests) consensus.BIP66Height = 102; // BIP66 activated on regtest (Block at height 101 and earlier not enforced for testing purposes)
consensus.CSVHeight = 432; // CSV activated on regtest (Used in rpc activation tests) consensus.CSVHeight = 432; // CSV activated on regtest (Used in rpc activation tests)
consensus.SegwitHeight = 0; // SEGWIT is always activated on regtest unless overridden consensus.SegwitHeight = 0; // SEGWIT is always activated on regtest unless overridden
consensus.MinBIP9WarningHeight = 0; consensus.MinBIP9WarningHeight = 0;

@ -4,10 +4,11 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test BIP66 (DER SIG). """Test BIP66 (DER SIG).
Test that the DERSIG soft-fork activates at (regtest) height 1251. Test the DERSIG soft-fork activation on regtest.
""" """
from test_framework.blocktools import ( from test_framework.blocktools import (
DERSIG_HEIGHT,
create_block, create_block,
create_coinbase, create_coinbase,
) )
@ -23,8 +24,6 @@ from test_framework.wallet import (
MiniWalletMode, MiniWalletMode,
) )
DERSIG_HEIGHT = 1251
# A canonical signature consists of: # A canonical signature consists of:
# <30> <total len> <02> <len R> <R> <02> <len S> <S> <hashtype> # <30> <total len> <02> <len R> <R> <02> <len S> <S> <hashtype>
@ -90,8 +89,10 @@ class BIP66Test(BitcoinTestFramework):
block.rehash() block.rehash()
block.solve() block.solve()
assert_equal(self.nodes[0].getblockcount(), DERSIG_HEIGHT - 2)
self.test_dersig_info(is_active=False) # Not active as of current tip and next block does not need to obey rules self.test_dersig_info(is_active=False) # Not active as of current tip and next block does not need to obey rules
peer.send_and_ping(msg_block(block)) peer.send_and_ping(msg_block(block))
assert_equal(self.nodes[0].getblockcount(), DERSIG_HEIGHT - 1)
self.test_dersig_info(is_active=True) # Not active as of current tip, but next block must obey rules self.test_dersig_info(is_active=True) # Not active as of current tip, but next block must obey rules
assert_equal(self.nodes[0].getbestblockhash(), block.hash) assert_equal(self.nodes[0].getbestblockhash(), block.hash)

@ -27,6 +27,7 @@ import subprocess
from test_framework.address import ADDRESS_BCRT1_P2WSH_OP_TRUE from test_framework.address import ADDRESS_BCRT1_P2WSH_OP_TRUE
from test_framework.blocktools import ( from test_framework.blocktools import (
DERSIG_HEIGHT,
create_block, create_block,
create_coinbase, create_coinbase,
TIME_GENESIS_BLOCK, TIME_GENESIS_BLOCK,
@ -141,7 +142,7 @@ class BlockchainTest(BitcoinTestFramework):
assert_equal(res['softforks'], { assert_equal(res['softforks'], {
'bip34': {'type': 'buried', 'active': True, 'height': 2}, 'bip34': {'type': 'buried', 'active': True, 'height': 2},
'bip66': {'type': 'buried', 'active': False, 'height': 1251}, 'bip66': {'type': 'buried', 'active': True, 'height': DERSIG_HEIGHT},
'bip65': {'type': 'buried', 'active': False, 'height': 1351}, 'bip65': {'type': 'buried', 'active': False, 'height': 1351},
'csv': {'type': 'buried', 'active': False, 'height': 432}, 'csv': {'type': 'buried', 'active': False, 'height': 432},
'segwit': {'type': 'buried', 'active': True, 'height': 0}, 'segwit': {'type': 'buried', 'active': True, 'height': 0},

@ -54,6 +54,7 @@ TIME_GENESIS_BLOCK = 1296688602
COINBASE_MATURITY = 100 COINBASE_MATURITY = 100
# Soft-fork activation heights # Soft-fork activation heights
DERSIG_HEIGHT = 102 # BIP 66
CLTV_HEIGHT = 1351 CLTV_HEIGHT = 1351
CSV_ACTIVATION_HEIGHT = 432 CSV_ACTIVATION_HEIGHT = 432

Loading…
Cancel
Save