Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: improvements for v19, v20 and dip3 - fire up test chains by first block 5/n #6269

Merged
merged 9 commits into from
Sep 27, 2024
2 changes: 1 addition & 1 deletion src/chainparams.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
13 changes: 0 additions & 13 deletions src/evo/specialtxman.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
Comment on lines -51 to -53
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same

return CheckMNHFTx(chainman, qman, tx, pindexPrev, state);
case TRANSACTION_ASSET_LOCK:
if (!DeploymentActiveAfter(pindexPrev, consensusParams, Consensus::DEPLOYMENT_V20)) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why keeping similar checks for "unlock" and "mnhf" if we drop this one?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@UdjinM6 don't we normally keep checks like this? for stuff like new devnets, or in case someone is sending us a bad fork I guess?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what will happen if someone will send us a bad fork for devnet? If fork will be accepted - that's fine, whatever it has asset-unlock/mnehf/etc transaction or not. we have chainlocks also.

That's important to keep conditions like that if they change behavior incompatible way. For example DIP0001 has not only introduced a bigger blocks size, but also introduced a limit for size of transaction and some old blocks do not satisfy that requirement. So, for that type of consensus condition we should keep it, otherwise mainnet/testnet can't re-sync properly for old blocks. But there's completely fine.

Can you show in our code base any condition like that which we keep intentionally over-versions?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, we have all soft-forks on all devnets activated from blocks 300 (soon from block 2), so, it should not be a problem also
https://github.com/dashpay/dash/pull/6187/files#diff-ff53e63501a5e89fd650b378c9708274df8ad5d38fcffa6c64be417c4d438b6dL568-L573

Copy link

@UdjinM6 UdjinM6 Sep 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

with headers-first sync and assumevalid in place these checks do not matter that much anymore and we can drop them safely imo

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");
}
Comment on lines -65 to -67
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as before comment, re: devnets bad chain etc?

return CheckAssetLockUnlockTx(chainman.m_blockman, qman, tx, pindexPrev, indexes, state);
}
} catch (const std::exception& e) {
Expand Down
2 changes: 1 addition & 1 deletion src/test/block_reward_reallocation_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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"})
{
}
Expand Down
43 changes: 43 additions & 0 deletions src/test/evo_deterministicmns_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down
17 changes: 0 additions & 17 deletions src/test/util/setup_common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -358,14 +358,10 @@ TestChainSetup::TestChainSetup(int num_blocks, const std::vector<const char*>& e
{ 100, uint256S("0x6ffb83129c19ebdf1ae3771be6a67fe34b35f4c956326b9ba152fac1649f65ae") },
/* TestChainDIP3BeforeActivationSetup */
{ 430, uint256S("0x0bcefaa33fec56cd84d05d0e76cd6a78badcc20f627d91903646de6a07930a14") },
/* TestChainDIP3Setup */
{ 431, uint256S("0x5fd3aa5ef29464839499d7f847edd9362e3e73392b79d3bd88b1591f5fb17d4e") },
/* TestChainBRRBeforeActivationSetup */
{ 497, uint256S("0x23c31820ec5160b7181bfdf328e2b76cd12c9fa4544d892b7f01e74dd6220849") },
/* TestChainV19BeforeActivationSetup */
{ 894, uint256S("0x2885cf0fe8fdf29803b6c65002ba2570ff011531d8ea92be312a85d655e00c51") },
/* TestChainV19Setup */
{ 899, uint256S("0x7df3c857ce647b3ecd0d4b389b6b0f16e2bdc60b20a8d01c4ad946fe5f15dbc2") },
}
};

Expand Down Expand Up @@ -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);
}
20 changes: 0 additions & 20 deletions src/test/util/setup_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -183,26 +183,6 @@ struct TestChain100Setup : public TestChainSetup {
TestChain100Setup(const std::vector<const char*>& 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.
Expand Down
7 changes: 3 additions & 4 deletions test/functional/feature_asset_locks.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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
Expand Down Expand Up @@ -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()
Expand Down
4 changes: 2 additions & 2 deletions test/functional/feature_block.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_blockfilterindex_prune.py
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
5 changes: 4 additions & 1 deletion test/functional/feature_dip3_v19.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_dip4_coinbasemerkleroots.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_governance.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_governance_cl.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions test/functional/feature_llmq_chainlocks.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):

Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_connections.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_data_recovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_dkgerrors.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_evo.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_is_cl_conflicts.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_is_retroactive.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions test/functional/feature_llmq_rotation.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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']
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_signing.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_llmq_simplepose.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_mnehf.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion test/functional/feature_notifications.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion test/functional/interface_zmq_dash.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
2 changes: 1 addition & 1 deletion test/functional/p2p_ibd_stalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion test/functional/p2p_instantsend.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading
Loading