aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorW. J. van der Laan <laanwj@protonmail.com>2021-08-10 15:41:16 +0200
committerW. J. van der Laan <laanwj@protonmail.com>2021-08-10 16:18:26 +0200
commit0b5344b0d18788e011f2d4a279c8c12a29f1428a (patch)
treea78a2441c7d97ce63414588b446109e4af25d9ab
parentce0913148b687310f2933397d0bbe4bd014c178e (diff)
parentfafe896a0b870d85250927bd5374caf73d379468 (diff)
Merge bitcoin/bitcoin#22632: test: Set regtest.BIP66Height = 102 to speed up tests
fafe896a0b870d85250927bd5374caf73d379468 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](https://github.com/bitcoin/bitcoin/pull/22632/commits/fafe896a0b870d85250927bd5374caf73d379468) 0xB10C: crACK fafe896a0b870d85250927bd5374caf73d379468 laanwj: ACK fafe896a0b870d85250927bd5374caf73d379468 Zero-1729: tACK fafe896 kristapsk: ACK fafe896a0b870d85250927bd5374caf73d379468. 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 fafe896a0b870d85250927bd5374caf73d379468 hg333: tACK https://github.com/bitcoin/bitcoin/commit/fafe896a0b870d85250927bd5374caf73d379468 Tree-SHA512: 4bbee3c8587d612e74a59fde49b6439c1296f2fc27d3a7cf59a35e920f729fdd581c930290bd04def618f81412236676ddb99b4ceb4d80dfb9fd610b128a04b1
-rw-r--r--doc/release-notes.md3
-rw-r--r--src/chainparams.cpp2
-rwxr-xr-xtest/functional/feature_dersig.py7
-rwxr-xr-xtest/functional/rpc_blockchain.py3
-rw-r--r--test/functional/test_framework/blocktools.py1
5 files changed, 11 insertions, 5 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 61c65d5a3e..01ef3610c9 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -108,6 +108,9 @@ RPC
Tests
-----
+- For the `regtest` network the BIP 66 (DERSIG) activation height was changed
+ from 1251 to 102. (#22632)
+
Credits
=======
diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index 0b3242b1aa..c3bbb147be 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -393,7 +393,7 @@ public:
consensus.BIP34Height = 2; // BIP34 activated on regtest (Block at height 1 not enforced for testing purposes)
consensus.BIP34Hash = uint256();
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.SegwitHeight = 0; // SEGWIT is always activated on regtest unless overridden
consensus.MinBIP9WarningHeight = 0;
diff --git a/test/functional/feature_dersig.py b/test/functional/feature_dersig.py
index eb027c554a..5dd6cb6cb2 100755
--- a/test/functional/feature_dersig.py
+++ b/test/functional/feature_dersig.py
@@ -4,10 +4,11 @@
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""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 (
+ DERSIG_HEIGHT,
create_block,
create_coinbase,
)
@@ -23,8 +24,6 @@ from test_framework.wallet import (
MiniWalletMode,
)
-DERSIG_HEIGHT = 1251
-
# A canonical signature consists of:
# <30> <total len> <02> <len R> <R> <02> <len S> <S> <hashtype>
@@ -90,8 +89,10 @@ class BIP66Test(BitcoinTestFramework):
block.rehash()
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
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
assert_equal(self.nodes[0].getbestblockhash(), block.hash)
diff --git a/test/functional/rpc_blockchain.py b/test/functional/rpc_blockchain.py
index 721e3f93a3..1e73dcf5cd 100755
--- a/test/functional/rpc_blockchain.py
+++ b/test/functional/rpc_blockchain.py
@@ -27,6 +27,7 @@ import subprocess
from test_framework.address import ADDRESS_BCRT1_P2WSH_OP_TRUE
from test_framework.blocktools import (
+ DERSIG_HEIGHT,
create_block,
create_coinbase,
TIME_GENESIS_BLOCK,
@@ -141,7 +142,7 @@ class BlockchainTest(BitcoinTestFramework):
assert_equal(res['softforks'], {
'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},
'csv': {'type': 'buried', 'active': False, 'height': 432},
'segwit': {'type': 'buried', 'active': True, 'height': 0},
diff --git a/test/functional/test_framework/blocktools.py b/test/functional/test_framework/blocktools.py
index 52ca579b1b..11d0ab40d5 100644
--- a/test/functional/test_framework/blocktools.py
+++ b/test/functional/test_framework/blocktools.py
@@ -54,6 +54,7 @@ TIME_GENESIS_BLOCK = 1296688602
COINBASE_MATURITY = 100
# Soft-fork activation heights
+DERSIG_HEIGHT = 102 # BIP 66
CLTV_HEIGHT = 1351
CSV_ACTIVATION_HEIGHT = 432