diff --git a/src/chainparams.cpp b/src/chainparams.cpp index fdd96c01e07d7..9b48ea2527251 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -789,7 +789,7 @@ class CRegTestParams : public CChainParams { consensus.DIP0024Height = 900; consensus.DIP0024QuorumsHeight = 900; consensus.V19Height = 900; - consensus.V20Height = 1200; + consensus.V20Height = 900; consensus.MinBIP9WarningHeight = 0; consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); // ~uint256(0) >> 1 consensus.nPowTargetTimespan = 24 * 60 * 60; // Dash: 1 day diff --git a/src/evo/specialtxman.cpp b/src/evo/specialtxman.cpp index 2e1b29ce8ece0..e20a9e0d4f7b3 100644 --- a/src/evo/specialtxman.cpp +++ b/src/evo/specialtxman.cpp @@ -48,23 +48,10 @@ static bool CheckSpecialTxInner(CDeterministicMNManager& dmnman, const Chainstat case TRANSACTION_QUORUM_COMMITMENT: return llmq::CheckLLMQCommitment(dmnman, chainman, tx, pindexPrev, state); case TRANSACTION_MNHF_SIGNAL: - if (!DeploymentActiveAfter(pindexPrev, consensusParams, Consensus::DEPLOYMENT_V20)) { - return state.Invalid(TxValidationResult::TX_CONSENSUS, "mnhf-before-v20"); - } return CheckMNHFTx(chainman, qman, tx, pindexPrev, state); case TRANSACTION_ASSET_LOCK: - if (!DeploymentActiveAfter(pindexPrev, consensusParams, Consensus::DEPLOYMENT_V20)) { - return state.Invalid(TxValidationResult::TX_CONSENSUS, "assetlocks-before-v20"); - } return CheckAssetLockUnlockTx(chainman.m_blockman, qman, tx, pindexPrev, indexes, state); case TRANSACTION_ASSET_UNLOCK: - if (Params().NetworkIDString() == CBaseChainParams::REGTEST && !DeploymentActiveAfter(pindexPrev, consensusParams, Consensus::DEPLOYMENT_V20)) { - // TODO: adjust functional tests to make it activated by MN_RR on regtest too - return state.Invalid(TxValidationResult::TX_CONSENSUS, "assetunlocks-before-v20"); - } - if (Params().NetworkIDString() != CBaseChainParams::REGTEST && !DeploymentActiveAfter(pindexPrev, consensusParams, Consensus::DEPLOYMENT_MN_RR)) { - return state.Invalid(TxValidationResult::TX_CONSENSUS, "assetunlocks-before-mn_rr"); - } return CheckAssetLockUnlockTx(chainman.m_blockman, qman, tx, pindexPrev, indexes, state); } } catch (const std::exception& e) { diff --git a/src/test/block_reward_reallocation_tests.cpp b/src/test/block_reward_reallocation_tests.cpp index bd87cf7f06739..4e9aa135f90ad 100644 --- a/src/test/block_reward_reallocation_tests.cpp +++ b/src/test/block_reward_reallocation_tests.cpp @@ -36,7 +36,7 @@ struct TestChainBRRBeforeActivationSetup : public TestChainSetup { // Force fast DIP3 activation TestChainBRRBeforeActivationSetup() : - TestChainSetup(497, {"-dip3params=30:50", "-testactivationheight=brr@1000", + TestChainSetup(497, {"-dip3params=30:50", "-testactivationheight=brr@1000", "-testactivationheight=v20@1200", "-vbparams=mn_rr:0:999999999999:0:20:16:12:5:1"}) { } diff --git a/src/test/evo_deterministicmns_tests.cpp b/src/test/evo_deterministicmns_tests.cpp index caedcca2d9295..20ebfeea1f7bb 100644 --- a/src/test/evo_deterministicmns_tests.cpp +++ b/src/test/evo_deterministicmns_tests.cpp @@ -814,6 +814,49 @@ void FuncVerifyDB(TestChainSetup& setup) BOOST_AUTO_TEST_SUITE(evo_dip3_activation_tests) +struct TestChainDIP3BeforeActivationSetup : public TestChainSetup { + TestChainDIP3BeforeActivationSetup() : + TestChainSetup(430) + { + } +}; + +struct TestChainDIP3Setup : public TestChainDIP3BeforeActivationSetup { + TestChainDIP3Setup() + { + // Activate DIP3 here + CreateAndProcessBlock({}, coinbaseKey); + } +}; + +struct TestChainV19BeforeActivationSetup : public TestChainSetup { + TestChainV19BeforeActivationSetup(); +}; + +struct TestChainV19Setup : public TestChainV19BeforeActivationSetup { + TestChainV19Setup() + { + // Activate V19 + for (int i = 0; i < 5; ++i) { + CreateAndProcessBlock({}, coinbaseKey); + } + bool v19_just_activated{DeploymentActiveAfter(m_node.chainman->ActiveChain().Tip(), Params().GetConsensus(), + Consensus::DEPLOYMENT_V19) && + !DeploymentActiveAt(*m_node.chainman->ActiveChain().Tip(), Params().GetConsensus(), + Consensus::DEPLOYMENT_V19)}; + assert(v19_just_activated); + } +}; + +// 5 blocks earlier +TestChainV19BeforeActivationSetup::TestChainV19BeforeActivationSetup() : + TestChainSetup(894) +{ + bool v19_active{DeploymentActiveAfter(m_node.chainman->ActiveChain().Tip(), Params().GetConsensus(), + Consensus::DEPLOYMENT_V19)}; + assert(!v19_active); +} + // DIP3 can only be activated with legacy scheme (v19 is activated later) BOOST_AUTO_TEST_CASE(dip3_activation_legacy) { diff --git a/src/test/util/setup_common.cpp b/src/test/util/setup_common.cpp index e3453a9a6e401..74770c301fb27 100644 --- a/src/test/util/setup_common.cpp +++ b/src/test/util/setup_common.cpp @@ -358,14 +358,10 @@ TestChainSetup::TestChainSetup(int num_blocks, const std::vector& e { 100, uint256S("0x6ffb83129c19ebdf1ae3771be6a67fe34b35f4c956326b9ba152fac1649f65ae") }, /* TestChainDIP3BeforeActivationSetup */ { 430, uint256S("0x0bcefaa33fec56cd84d05d0e76cd6a78badcc20f627d91903646de6a07930a14") }, - /* TestChainDIP3Setup */ - { 431, uint256S("0x5fd3aa5ef29464839499d7f847edd9362e3e73392b79d3bd88b1591f5fb17d4e") }, /* TestChainBRRBeforeActivationSetup */ { 497, uint256S("0x23c31820ec5160b7181bfdf328e2b76cd12c9fa4544d892b7f01e74dd6220849") }, /* TestChainV19BeforeActivationSetup */ { 894, uint256S("0x2885cf0fe8fdf29803b6c65002ba2570ff011531d8ea92be312a85d655e00c51") }, - /* TestChainV19Setup */ - { 899, uint256S("0x7df3c857ce647b3ecd0d4b389b6b0f16e2bdc60b20a8d01c4ad946fe5f15dbc2") }, } }; @@ -571,16 +567,3 @@ CBlock getBlock13b8a() return block; } -TestChainV19Setup::TestChainV19Setup() : TestChainSetup(899) -{ - bool v19_just_activated{DeploymentActiveAfter(m_node.chainman->ActiveChain().Tip(), Params().GetConsensus(), Consensus::DEPLOYMENT_V19) && - !DeploymentActiveAt(*m_node.chainman->ActiveChain().Tip(), Params().GetConsensus(), Consensus::DEPLOYMENT_V19)}; - assert(v19_just_activated); -} - -// 5 blocks earlier -TestChainV19BeforeActivationSetup::TestChainV19BeforeActivationSetup() : TestChainSetup(894) -{ - bool v19_active{DeploymentActiveAfter(m_node.chainman->ActiveChain().Tip(), Params().GetConsensus(), Consensus::DEPLOYMENT_V19)}; - assert(!v19_active); -} diff --git a/src/test/util/setup_common.h b/src/test/util/setup_common.h index 25884a9cf09b2..f21205cff26c3 100644 --- a/src/test/util/setup_common.h +++ b/src/test/util/setup_common.h @@ -183,26 +183,6 @@ struct TestChain100Setup : public TestChainSetup { TestChain100Setup(const std::vector& extra_args = {}); }; -struct TestChainDIP3Setup : public TestChainSetup -{ - TestChainDIP3Setup() : TestChainSetup(431) {} -}; - -struct TestChainV19Setup : public TestChainSetup -{ - TestChainV19Setup(); -}; - -struct TestChainDIP3BeforeActivationSetup : public TestChainSetup -{ - TestChainDIP3BeforeActivationSetup() : TestChainSetup(430) {} -}; - -struct TestChainV19BeforeActivationSetup : public TestChainSetup -{ - TestChainV19BeforeActivationSetup(); -}; - /** * Make a test setup that has disk access to the debug.log file disabled. Can * be used in "hot loops", for example fuzzing or benchmarking. diff --git a/test/functional/feature_asset_locks.py b/test/functional/feature_asset_locks.py index de207dbb94024..5f0f03e77a0d4 100755 --- a/test/functional/feature_asset_locks.py +++ b/test/functional/feature_asset_locks.py @@ -242,8 +242,8 @@ def run_test(self): self.set_sporks() - self.activate_v19(expected_activation_height=900) - self.log.info("Activated v19 at height:" + str(node.getblockcount())) + self.activate_v20(expected_activation_height=900) + self.log.info("Activated v20 at height:" + str(node.getblockcount())) self.nodes[0].sporkupdate("SPORK_2_INSTANTSEND_ENABLED", 0) self.wait_for_sporks_same() @@ -256,7 +256,6 @@ def run_test(self): self.sync_blocks() self.set_sporks() - self.activate_v20() node.generate(1) self.sync_all() self.mempool_size = 0 @@ -640,7 +639,7 @@ def test_mn_rr(self, node_wallet, node, pubkey): all_mn_rewards = platform_reward + owner_reward + operator_reward assert_equal(all_mn_rewards, bt['coinbasevalue'] * 3 // 4) # 75/25 mn/miner reward split assert_equal(platform_reward, all_mn_rewards * 375 // 1000) # 0.375 platform share - assert_equal(platform_reward, 31916328) + assert_equal(platform_reward, 37015386) assert_equal(locked, self.get_credit_pool_balance()) node.generate(1) self.sync_all() diff --git a/test/functional/feature_block.py b/test/functional/feature_block.py index 50140901eafc7..460cf4571d015 100755 --- a/test/functional/feature_block.py +++ b/test/functional/feature_block.py @@ -85,12 +85,12 @@ def set_test_params(self): # Very large reorgs cause cs_main to be held for a very long time in ActivateBestChainStep, # which causes RPC to hang, so we need to increase RPC timeouts self.rpc_timeout = 180 - # Must set '-dip3params=2000:2000' to create pre-dip3 blocks only self.extra_args = [[ - '-dip3params=2000:2000', + '-dip3params=2000:2000', # Must set '-dip3params=2000:2000' to create pre-dip3 blocks only '-acceptnonstdtxn=1', # This is a consensus block test, we don't care about tx policy '-testactivationheight=bip34@2', '-testactivationheight=dip0001@2000', + '-testactivationheight=v20@2000', ]] def setup_nodes(self): diff --git a/test/functional/feature_blockfilterindex_prune.py b/test/functional/feature_blockfilterindex_prune.py index 9cc2d16d919a1..2f60d214563cb 100755 --- a/test/functional/feature_blockfilterindex_prune.py +++ b/test/functional/feature_blockfilterindex_prune.py @@ -43,7 +43,7 @@ def run_test(self): assert_greater_than(len(self.nodes[0].getblockfilter(self.nodes[0].getblockhash(2))['filter']), 0) self.log.info("start node without blockfilterindex") - self.restart_node(0, extra_args=["-fastprune", "-prune=1"], expected_stderr=EXPECTED_STDERR_NO_GOV_PRUNE) + self.restart_node(0, extra_args=["-fastprune", "-prune=1", '-testactivationheight=v20@2000'], expected_stderr=EXPECTED_STDERR_NO_GOV_PRUNE) self.log.info("make sure accessing the blockfilters throws an error") assert_raises_rpc_error(-1, "Index is not enabled for filtertype basic", self.nodes[0].getblockfilter, self.nodes[0].getblockhash(2)) diff --git a/test/functional/feature_dip3_v19.py b/test/functional/feature_dip3_v19.py index fd987c7be2181..6ff2611bbd9e7 100755 --- a/test/functional/feature_dip3_v19.py +++ b/test/functional/feature_dip3_v19.py @@ -43,7 +43,10 @@ def getmnlistdiff(self, base_block_hash, block_hash): class DIP3V19Test(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(6, 5, fast_dip3_enforcement=True, evo_count=2) + self.extra_args = [[ + '-testactivationheight=v20@1200', # required otherwise mine_quorum("llmq_test [100]") fails + ]] * 6 + self.set_dash_test_params(6, 5, evo_count=2, extra_args=self.extra_args) def run_test(self): # Connect all nodes to node1 so that we always have the whole network connected diff --git a/test/functional/feature_dip4_coinbasemerkleroots.py b/test/functional/feature_dip4_coinbasemerkleroots.py index f0287c0796b50..d4fbf60795fc3 100755 --- a/test/functional/feature_dip4_coinbasemerkleroots.py +++ b/test/functional/feature_dip4_coinbasemerkleroots.py @@ -44,7 +44,7 @@ def getmnlistdiff(self, baseBlockHash, blockHash): class LLMQCoinbaseCommitmentsTest(DashTestFramework): def set_test_params(self): self.extra_args = [[ f'-testactivationheight=dip0008@{DIP0008_HEIGHT}', "-vbparams=testdummy:999999999999:999999999999" ]] * 4 - self.set_dash_test_params(4, 3, extra_args = self.extra_args, fast_dip3_enforcement=True) + self.set_dash_test_params(4, 3, extra_args = self.extra_args) def run_test(self): # No IS or Chainlocks in this test self.bump_mocktime(1) diff --git a/test/functional/feature_governance.py b/test/functional/feature_governance.py index 0a38ac1eaa93a..58e4188824e25 100755 --- a/test/functional/feature_governance.py +++ b/test/functional/feature_governance.py @@ -18,7 +18,7 @@ def set_test_params(self): self.set_dash_test_params(6, 5, [[ "-budgetparams=10:10:10", '-testactivationheight=v20@160', - ]] * 6, fast_dip3_enforcement=True) + ]] * 6) def check_superblockbudget(self, v20_active): v20_state = self.nodes[0].getblockchaininfo()["softforks"]["v20"] diff --git a/test/functional/feature_governance_cl.py b/test/functional/feature_governance_cl.py index 99bdf3dfdd864..718bdc80d3456 100755 --- a/test/functional/feature_governance_cl.py +++ b/test/functional/feature_governance_cl.py @@ -14,7 +14,7 @@ class DashGovernanceTest (DashTestFramework): def set_test_params(self): - self.set_dash_test_params(6, 5, [["-budgetparams=10:10:10"]] * 6, fast_dip3_enforcement=True) + self.set_dash_test_params(6, 5, [["-budgetparams=10:10:10"]] * 6) def prepare_object(self, object_type, parent_hash, creation_time, revision, name, amount, payment_address): proposal_rev = revision diff --git a/test/functional/feature_llmq_chainlocks.py b/test/functional/feature_llmq_chainlocks.py index 72f2cd6f93c8a..49563bb46eadc 100755 --- a/test/functional/feature_llmq_chainlocks.py +++ b/test/functional/feature_llmq_chainlocks.py @@ -20,7 +20,7 @@ class LLMQChainLocksTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(5, 4, fast_dip3_enforcement=True) + self.set_dash_test_params(5, 4) def run_test(self): @@ -33,7 +33,7 @@ def run_test(self): self.test_coinbase_best_cl(self.nodes[0], expected_cl_in_cb=False) - self.activate_v20(expected_activation_height=1200) + self.activate_v20(expected_activation_height=900) self.log.info("Activated v20 at height:" + str(self.nodes[0].getblockcount())) # v20 is active for the next block, not for the tip diff --git a/test/functional/feature_llmq_connections.py b/test/functional/feature_llmq_connections.py index 644084107134e..f75edc94d5e2c 100755 --- a/test/functional/feature_llmq_connections.py +++ b/test/functional/feature_llmq_connections.py @@ -17,7 +17,7 @@ class LLMQConnections(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(15, 14, fast_dip3_enforcement=True) + self.set_dash_test_params(15, 14) self.set_dash_llmq_test_params(5, 3) # Probes should age after this many seconds. # NOTE: mine_quorum() can bump mocktime quite often internally so make sure this number is high enough. diff --git a/test/functional/feature_llmq_data_recovery.py b/test/functional/feature_llmq_data_recovery.py index f6dcc395bbf00..97c12c6fd027d 100755 --- a/test/functional/feature_llmq_data_recovery.py +++ b/test/functional/feature_llmq_data_recovery.py @@ -25,7 +25,7 @@ class QuorumDataRecoveryTest(DashTestFramework): def set_test_params(self): extra_args = [["-vbparams=testdummy:0:999999999999:0:10:8:6:5:-1"] for _ in range(9)] - self.set_dash_test_params(9, 7, fast_dip3_enforcement=True, extra_args=extra_args) + self.set_dash_test_params(9, 7, extra_args=extra_args) self.set_dash_llmq_test_params(4, 3) def restart_mn(self, mn, reindex=False, qvvec_sync=None, qdata_recovery_enabled=True): diff --git a/test/functional/feature_llmq_dkgerrors.py b/test/functional/feature_llmq_dkgerrors.py index 762dfe09bb4b1..cbf461e03ca90 100755 --- a/test/functional/feature_llmq_dkgerrors.py +++ b/test/functional/feature_llmq_dkgerrors.py @@ -14,7 +14,7 @@ class LLMQDKGErrors(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(4, 3, [["-whitelist=127.0.0.1"]] * 4, fast_dip3_enforcement=True) + self.set_dash_test_params(4, 3, [["-whitelist=127.0.0.1"]] * 4) def run_test(self): self.nodes[0].sporkupdate("SPORK_17_QUORUM_DKG_ENABLED", 0) diff --git a/test/functional/feature_llmq_evo.py b/test/functional/feature_llmq_evo.py index e3a95cea676af..a26f385995a21 100755 --- a/test/functional/feature_llmq_evo.py +++ b/test/functional/feature_llmq_evo.py @@ -46,7 +46,7 @@ def getmnlistdiff(self, baseBlockHash, blockHash): class LLMQEvoNodesTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(5, 4, fast_dip3_enforcement=True, evo_count=5) + self.set_dash_test_params(5, 4, evo_count=5) self.set_dash_llmq_test_params(4, 4) def run_test(self): diff --git a/test/functional/feature_llmq_is_cl_conflicts.py b/test/functional/feature_llmq_is_cl_conflicts.py index a6677bedb4906..f7cf10cd139d2 100755 --- a/test/functional/feature_llmq_is_cl_conflicts.py +++ b/test/functional/feature_llmq_is_cl_conflicts.py @@ -49,7 +49,7 @@ def on_getdata(self, message): class LLMQ_IS_CL_Conflicts(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(5, 4, fast_dip3_enforcement=True) + self.set_dash_test_params(5, 4) self.set_dash_llmq_test_params(4, 4) self.supports_cli = False diff --git a/test/functional/feature_llmq_is_retroactive.py b/test/functional/feature_llmq_is_retroactive.py index d4e5bb1429491..f026091c84abc 100755 --- a/test/functional/feature_llmq_is_retroactive.py +++ b/test/functional/feature_llmq_is_retroactive.py @@ -22,7 +22,7 @@ class LLMQ_IS_RetroactiveSigning(DashTestFramework): def set_test_params(self): # -whitelist is needed to avoid the trickling logic on node0 - self.set_dash_test_params(5, 4, [["-whitelist=127.0.0.1"], [], [], [], ["-minrelaytxfee=0.001"]], fast_dip3_enforcement=True) + self.set_dash_test_params(5, 4, [["-whitelist=127.0.0.1"], [], [], [], ["-minrelaytxfee=0.001"]]) def run_test(self): self.nodes[0].sporkupdate("SPORK_17_QUORUM_DKG_ENABLED", 0) diff --git a/test/functional/feature_llmq_rotation.py b/test/functional/feature_llmq_rotation.py index 8bfcbbd6a60b5..04ad6bd40b65a 100755 --- a/test/functional/feature_llmq_rotation.py +++ b/test/functional/feature_llmq_rotation.py @@ -51,7 +51,7 @@ def getmnlistdiff(self, baseBlockHash, blockHash): class LLMQQuorumRotationTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(9, 8, fast_dip3_enforcement=True) + self.set_dash_test_params(9, 8) self.set_dash_llmq_test_params(4, 4) def run_test(self): @@ -113,9 +113,9 @@ def run_test(self): expectedNew = [h_100_0, h_106_0, h_104_0, h_100_1, h_106_1, h_104_1] quorumList = self.test_getmnlistdiff_quorums(b_h_0, b_h_1, {}, expectedDeleted, expectedNew, testQuorumsCLSigs=False) - projected_activation_height = 1200 + projected_activation_height = 900 - self.activate_v20(expected_activation_height=1200) + self.activate_v20(expected_activation_height=900) self.log.info("Activated v20 at height:" + str(self.nodes[0].getblockcount())) softfork_info = self.nodes[0].getblockchaininfo()['softforks']['v20'] diff --git a/test/functional/feature_llmq_signing.py b/test/functional/feature_llmq_signing.py index 08edc8827fdfb..8206e7dde41d3 100755 --- a/test/functional/feature_llmq_signing.py +++ b/test/functional/feature_llmq_signing.py @@ -18,7 +18,7 @@ class LLMQSigningTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(6, 5, fast_dip3_enforcement=True) + self.set_dash_test_params(6, 5) self.set_dash_llmq_test_params(5, 3) def add_options(self, parser): diff --git a/test/functional/feature_llmq_simplepose.py b/test/functional/feature_llmq_simplepose.py index 6ca819968adfc..b26b964fef862 100755 --- a/test/functional/feature_llmq_simplepose.py +++ b/test/functional/feature_llmq_simplepose.py @@ -18,7 +18,7 @@ class LLMQSimplePoSeTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(6, 5, fast_dip3_enforcement=True) + self.set_dash_test_params(6, 5) self.set_dash_llmq_test_params(5, 3) def run_test(self): diff --git a/test/functional/feature_mnehf.py b/test/functional/feature_mnehf.py index cadbbbc2caa95..17eab92f15045 100755 --- a/test/functional/feature_mnehf.py +++ b/test/functional/feature_mnehf.py @@ -25,7 +25,7 @@ class MnehfTest(DashTestFramework): def set_test_params(self): extra_args = [["-vbparams=testdummy:0:999999999999:0:12:12:12:5:1", "-persistmempool=0"] for _ in range(4)] - self.set_dash_test_params(4, 3, fast_dip3_enforcement=True, extra_args=extra_args) + self.set_dash_test_params(4, 3, extra_args=extra_args) def skip_test_if_missing_module(self): self.skip_if_no_wallet() diff --git a/test/functional/feature_notifications.py b/test/functional/feature_notifications.py index 44957d0eecec1..5dee940fa562d 100755 --- a/test/functional/feature_notifications.py +++ b/test/functional/feature_notifications.py @@ -27,7 +27,7 @@ def notify_outputname(walletname, txid): class NotificationsTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(6, 4, fast_dip3_enforcement=True) + self.set_dash_test_params(6, 4) def setup_network(self): self.wallet = ''.join(chr(i) for i in range(FILE_CHAR_START, FILE_CHAR_END) if chr(i) not in FILE_CHARS_DISALLOWED) diff --git a/test/functional/interface_zmq_dash.py b/test/functional/interface_zmq_dash.py index c0366d27ef76c..d5e2a9852ab86 100755 --- a/test/functional/interface_zmq_dash.py +++ b/test/functional/interface_zmq_dash.py @@ -108,7 +108,7 @@ def set_test_params(self): extra_args = [[]] * 5 extra_args[0] = node0_extra_args - self.set_dash_test_params(5, 4, fast_dip3_enforcement=True, extra_args=extra_args) + self.set_dash_test_params(5, 4, extra_args=extra_args) self.set_dash_llmq_test_params(4, 4) def skip_test_if_missing_module(self): diff --git a/test/functional/p2p_ibd_stalling.py b/test/functional/p2p_ibd_stalling.py index e74c18827b8bf..11380abd62b00 100755 --- a/test/functional/p2p_ibd_stalling.py +++ b/test/functional/p2p_ibd_stalling.py @@ -48,7 +48,7 @@ def on_getheaders(self, message): class P2PIBDStallingTest(BitcoinTestFramework): def set_test_params(self): self.disable_mocktime = True - self.extra_args = [["-dip3params=2000:2000"]] + self.extra_args = [["-dip3params=2000:2000", "-testactivationheight=v20@2000"]] self.setup_clean_chain = True self.num_nodes = 1 diff --git a/test/functional/p2p_instantsend.py b/test/functional/p2p_instantsend.py index 044f869df9bf9..d7dec82adbc2d 100755 --- a/test/functional/p2p_instantsend.py +++ b/test/functional/p2p_instantsend.py @@ -14,7 +14,7 @@ class InstantSendTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(8, 4, fast_dip3_enforcement=True) + self.set_dash_test_params(8, 4) # set sender, receiver, isolated nodes self.isolated_idx = 1 self.receiver_idx = 2 diff --git a/test/functional/p2p_quorum_data.py b/test/functional/p2p_quorum_data.py index 7257007f8a8f6..e736b118717c9 100755 --- a/test/functional/p2p_quorum_data.py +++ b/test/functional/p2p_quorum_data.py @@ -118,7 +118,7 @@ def get_qdata(self): class QuorumDataMessagesTest(DashTestFramework): def set_test_params(self): extra_args = [["-llmq-data-recovery=0", "-deprecatedrpc=banscore"]] * 4 - self.set_dash_test_params(4, 3, fast_dip3_enforcement=True, extra_args=extra_args) + self.set_dash_test_params(4, 3, extra_args=extra_args) def restart_mn(self, mn, reindex=False): args = self.extra_args[mn.node.index] + ['-masternodeblsprivkey=%s' % mn.keyOperator] diff --git a/test/functional/rpc_blockchain.py b/test/functional/rpc_blockchain.py index 28deda69088f1..c5720db5138a0 100755 --- a/test/functional/rpc_blockchain.py +++ b/test/functional/rpc_blockchain.py @@ -155,7 +155,7 @@ def _test_getblockchaininfo(self): 'dip0024': { 'type': 'buried', 'active': False, 'height': 900}, 'realloc': { 'type': 'buried', 'active': True, 'height': 1}, 'v19': { 'type': 'buried', 'active': False, 'height': 900}, - 'v20': { 'type': 'buried', 'active': False, 'height': 1200}, + 'v20': { 'type': 'buried', 'active': False, 'height': 900}, 'mn_rr': { 'type': 'bip9', 'bip9': { diff --git a/test/functional/rpc_masternode.py b/test/functional/rpc_masternode.py index 30a4f10a0778b..158b8cbb67d86 100755 --- a/test/functional/rpc_masternode.py +++ b/test/functional/rpc_masternode.py @@ -13,7 +13,7 @@ class RPCMasternodeTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(4, 3, fast_dip3_enforcement=True) + self.set_dash_test_params(4, 3) def run_test(self): self.log.info("test that results from `winners` and `payments` RPCs match") diff --git a/test/functional/rpc_mnauth.py b/test/functional/rpc_mnauth.py index 09b4a7c2f905f..253b7955db8f9 100755 --- a/test/functional/rpc_mnauth.py +++ b/test/functional/rpc_mnauth.py @@ -17,7 +17,7 @@ class FakeMNAUTHTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(2, 1, fast_dip3_enforcement=True) + self.set_dash_test_params(2, 1) def run_test(self): diff --git a/test/functional/rpc_net.py b/test/functional/rpc_net.py index 1972a949844df..9d6c47ce07840 100755 --- a/test/functional/rpc_net.py +++ b/test/functional/rpc_net.py @@ -41,7 +41,7 @@ def assert_net_servicesnames(servicesflag, servicenames): class NetTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(3, 1, fast_dip3_enforcement=True) + self.set_dash_test_params(3, 1) self.supports_cli = False def run_test(self): diff --git a/test/functional/rpc_quorum.py b/test/functional/rpc_quorum.py index 80cd910624f69..e97b65c143927 100755 --- a/test/functional/rpc_quorum.py +++ b/test/functional/rpc_quorum.py @@ -13,7 +13,7 @@ class RPCMasternodeTest(DashTestFramework): def set_test_params(self): - self.set_dash_test_params(4, 3, fast_dip3_enforcement=True) + self.set_dash_test_params(4, 3) def run_test(self): self.nodes[0].sporkupdate("SPORK_17_QUORUM_DKG_ENABLED", 0) diff --git a/test/functional/rpc_verifychainlock.py b/test/functional/rpc_verifychainlock.py index 4e3447048b4c1..42d05597331df 100755 --- a/test/functional/rpc_verifychainlock.py +++ b/test/functional/rpc_verifychainlock.py @@ -19,7 +19,7 @@ class RPCVerifyChainLockTest(DashTestFramework): def set_test_params(self): # -whitelist is needed to avoid the trickling logic on node0 - self.set_dash_test_params(5, 3, [["-whitelist=127.0.0.1"], [], [], [], []], fast_dip3_enforcement=True) + self.set_dash_test_params(5, 3, [["-whitelist=127.0.0.1"], [], [], [], []]) self.set_dash_llmq_test_params(3, 2) def cl_helper(self, height, chainlock, mempool): diff --git a/test/functional/rpc_verifyislock.py b/test/functional/rpc_verifyislock.py index 534bbe1c57bfa..10309b6e584f0 100755 --- a/test/functional/rpc_verifyislock.py +++ b/test/functional/rpc_verifyislock.py @@ -17,7 +17,7 @@ class RPCVerifyISLockTest(DashTestFramework): def set_test_params(self): # -whitelist is needed to avoid the trickling logic on node0 - self.set_dash_test_params(6, 5, [["-whitelist=127.0.0.1"], [], [], [], [], []], fast_dip3_enforcement=True) + self.set_dash_test_params(6, 5, [["-whitelist=127.0.0.1"], [], [], [], [], []]) def get_request_id(self, tx_hex): tx = from_hex(CTransaction(), tx_hex) diff --git a/test/functional/test_framework/test_framework.py b/test/functional/test_framework/test_framework.py index d94a17f56f76d..eebc89d266b0b 100755 --- a/test/functional/test_framework/test_framework.py +++ b/test/functional/test_framework/test_framework.py @@ -1108,7 +1108,7 @@ def connect_nodes(self, a, b): if mn2.node is not None: mn2.node.setmnthreadactive(True) - def set_dash_test_params(self, num_nodes, masterodes_count, extra_args=None, fast_dip3_enforcement=False, evo_count=0): + def set_dash_test_params(self, num_nodes, masterodes_count, extra_args=None, evo_count=0): self.mn_count = masterodes_count self.evo_count = evo_count self.num_nodes = num_nodes @@ -1120,10 +1120,8 @@ def set_dash_test_params(self, num_nodes, masterodes_count, extra_args=None, fas assert_equal(len(extra_args), num_nodes) self.extra_args = [copy.deepcopy(a) for a in extra_args] self.extra_args[0] += ["-sporkkey=cP4EKFyJsHT39LDqgdcB43Y3YXjNyjb5Fuas1GQSeAtjnZWmZEQK"] - self.fast_dip3_enforcement = fast_dip3_enforcement - if fast_dip3_enforcement: - for i in range(0, num_nodes): - self.extra_args[i].append("-dip3params=30:50") + for i in range(0, num_nodes): + self.extra_args[i].append("-dip3params=2:2") # LLMQ default test params (no need to pass -llmqtestparams) self.llmq_size = 3 @@ -1482,12 +1480,6 @@ def setup_nodes(self): self.bump_mocktime(1) self.nodes[0].generate(10) - self.log.info("Activating DIP3") - if not self.fast_dip3_enforcement: - while self.nodes[0].getblockcount() < 500: - self.nodes[0].generate(10) - self.sync_all() - # create masternodes self.prepare_masternodes() self.prepare_datadirs()