diff --git a/src/avalanche/avalanche.h b/src/avalanche/avalanche.h --- a/src/avalanche/avalanche.h +++ b/src/avalanche/avalanche.h @@ -47,12 +47,9 @@ /** * Default minimum cumulative stake of all known peers that constitutes a usable * quorum. - * - * FIXME: The default is set to 0 to allow existing tests to pass for now. We - * need to set a sane default and update tests later. */ -static constexpr const Amount AVALANCHE_DEFAULT_MIN_QUORUM_STAKE = - Amount::zero(); +static constexpr Amount AVALANCHE_DEFAULT_MIN_QUORUM_STAKE = + int64_t(1'000'000'000'000) * SATOSHI; // 10B XEC /** * Default minimum percentage of stake-weighted peers we must have a node for to diff --git a/src/avalanche/test/init_tests.cpp b/src/avalanche/test/init_tests.cpp --- a/src/avalanche/test/init_tests.cpp +++ b/src/avalanche/test/init_tests.cpp @@ -19,17 +19,6 @@ BOOST_AUTO_TEST_CASE(avalanche_flag_tests) { gArgs.ForceSetArg("-ecash", "1"); - const Amount tenBillion = - int64_t(10'000'000'000) * Currency::get().baseunit; - - auto getAvaMinQuorumStakeAmount = [](const ArgsManager &args, - const Amount defaultAmount) { - Amount avaminquorumstake; - BOOST_CHECK(ParseMoney( - args.GetArg("-avaminquorumstake", FormatMoney(defaultAmount)), - avaminquorumstake)); - return avaminquorumstake; - }; { // Check the feature flags when avalanche is set @@ -42,8 +31,6 @@ BOOST_CHECK_EQUAL( args.GetBoolArg("-enableavalancheproofreplacement", false), true); BOOST_CHECK_EQUAL(args.GetBoolArg("-automaticunparking", true), false); - BOOST_CHECK_EQUAL(getAvaMinQuorumStakeAmount(args, 42 * COIN), - tenBillion); BOOST_CHECK_EQUAL( args.GetArg("-avaminquorumconnectedstakeratio", "0.42"), "0.8"); BOOST_CHECK_EQUAL(args.GetArg("-avaminavaproofsnodecount", 42), 8); @@ -61,8 +48,6 @@ BOOST_CHECK_EQUAL( args.GetBoolArg("-enableavalancheproofreplacement", true), false); BOOST_CHECK_EQUAL(args.GetBoolArg("-automaticunparking", false), true); - BOOST_CHECK_EQUAL(getAvaMinQuorumStakeAmount(args, tenBillion), - AVALANCHE_DEFAULT_MIN_QUORUM_STAKE); BOOST_CHECK_EQUAL( args.GetArg("-avaminquorumconnectedstakeratio", "0.8"), ToString(AVALANCHE_DEFAULT_MIN_QUORUM_CONNECTED_STAKE_RATIO)); @@ -77,7 +62,6 @@ args.ForceSetArg("-legacyavaproof", "1"); args.ForceSetArg("-enableavalancheproofreplacement", "0"); args.ForceSetArg("-automaticunparking", "1"); - args.ForceSetArg("-avaminquorumstake", FormatMoney(123 * COIN)); args.ForceSetArg("-avaminavaproofsnodecount", "42"); InitParameterInteraction(args); @@ -86,8 +70,6 @@ BOOST_CHECK_EQUAL( args.GetBoolArg("-enableavalancheproofreplacement", true), false); BOOST_CHECK_EQUAL(args.GetBoolArg("-automaticunparking", false), true); - BOOST_CHECK_EQUAL(getAvaMinQuorumStakeAmount(args, tenBillion), - 123 * COIN); BOOST_CHECK_EQUAL( args.GetArg("-avaminquorumconnectedstakeratio", "0.42"), "0.8"); BOOST_CHECK_EQUAL(args.GetArg("-avaminavaproofsnodecount", 0), 42); diff --git a/src/avalanche/test/processor_tests.cpp b/src/avalanche/test/processor_tests.cpp --- a/src/avalanche/test/processor_tests.cpp +++ b/src/avalanche/test/processor_tests.cpp @@ -107,6 +107,7 @@ m_node.chain = interfaces::MakeChain(m_node, config.GetChainParams()); // Get the processor ready. + gArgs.ForceSetArg("-avaminquorumstake", "0"); bilingual_str error; m_processor = Processor::MakeProcessor( *m_node.args, *m_node.chain, m_node.connman.get(), @@ -123,6 +124,7 @@ gArgs.ClearForcedArg("-avaproofstakeutxoconfirmations"); gArgs.ClearForcedArg("-enableavalancheproofreplacement"); + gArgs.ClearForcedArg("-avaminquorumstake"); } CNode *ConnectNode(ServiceFlags nServices) { @@ -849,6 +851,7 @@ auto queryTimeDuration = std::chrono::milliseconds(10); argsman.ForceSetArg("-avatimeout", ToString(queryTimeDuration.count())); + argsman.ForceSetArg("-avaminquorumstake", "0"); bilingual_str error; m_processor = diff --git a/src/init.cpp b/src/init.cpp --- a/src/init.cpp +++ b/src/init.cpp @@ -1695,11 +1695,6 @@ : AVALANCHE_DEFAULT_LEGACY_PROOF); args.SoftSetBoolArg("-enableavalancheproofreplacement", fAvalanche); args.SoftSetBoolArg("-automaticunparking", !fAvalanche); - args.SoftSetArg( - "-avaminquorumstake", - fAvalanche - ? FormatMoney(int64_t(1'000'000'000'000) * SATOSHI) // 10B XEC - : FormatMoney(AVALANCHE_DEFAULT_MIN_QUORUM_STAKE)); args.SoftSetArg( "-avaminquorumconnectedstakeratio", fAvalanche diff --git a/test/functional/abc_p2p_avalanche_proof_voting.py b/test/functional/abc_p2p_avalanche_proof_voting.py --- a/test/functional/abc_p2p_avalanche_proof_voting.py +++ b/test/functional/abc_p2p_avalanche_proof_voting.py @@ -37,11 +37,18 @@ self.conflicting_proof_cooldown = 100 self.peer_replacement_cooldown = 2000 self.extra_args = [ - ['-enableavalanche=1', - '-avaproofstakeutxodustthreshold=1000000', - '-enableavalancheproofreplacement=1', - '-avaproofstakeutxoconfirmations=2', - f'-avalancheconflictingproofcooldown={self.conflicting_proof_cooldown}', f'-avalanchepeerreplacementcooldown={self.peer_replacement_cooldown}', '-avacooldown=0', '-avastalevotethreshold=140', '-avastalevotefactor=1'], + [ + '-enableavalanche=1', + '-avaproofstakeutxodustthreshold=1000000', + '-enableavalancheproofreplacement=1', + '-avaproofstakeutxoconfirmations=2', + f'-avalancheconflictingproofcooldown={self.conflicting_proof_cooldown}', + f'-avalanchepeerreplacementcooldown={self.peer_replacement_cooldown}', + '-avacooldown=0', + '-avastalevotethreshold=140', + '-avastalevotefactor=1', + '-avaminquorumstake=0', + ], ] self.supports_cli = False @@ -316,6 +323,7 @@ '-avaproofstakeutxoconfirmations=2', '-avacooldown=0', '-avalancheconflictingproofcooldown=0', + '-avaminquorumstake=0', '-whitelist=noban@127.0.0.1', ]) self.get_quorum(node) @@ -489,6 +497,7 @@ '-avaproofstakeutxoconfirmations=2', '-avalancheconflictingproofcooldown=0', '-avacooldown=0', + '-avaminquorumstake=0', ]) self.quorum = self.get_quorum(node) diff --git a/test/functional/abc_p2p_avalanche_voting.py b/test/functional/abc_p2p_avalanche_voting.py --- a/test/functional/abc_p2p_avalanche_voting.py +++ b/test/functional/abc_p2p_avalanche_voting.py @@ -23,13 +23,22 @@ self.setup_clean_chain = True self.num_nodes = 2 self.extra_args = [ - ['-enableavalanche=1', - '-avaproofstakeutxodustthreshold=1000000', - '-avaproofstakeutxoconfirmations=1', - '-avacooldown=0'], - ['-enableavalanche=1', - '-avaproofstakeutxoconfirmations=1', - '-avacooldown=0', '-noparkdeepreorg', '-maxreorgdepth=-1']] + [ + '-enableavalanche=1', + '-avaproofstakeutxodustthreshold=1000000', + '-avaproofstakeutxoconfirmations=1', + '-avacooldown=0', + '-avaminquorumstake=0', + ], + [ + '-enableavalanche=1', + '-avaproofstakeutxoconfirmations=1', + '-avacooldown=0', + '-avaminquorumstake=0', + '-noparkdeepreorg', + '-maxreorgdepth=-1' + ], + ] self.supports_cli = False self.rpc_timeout = 120 diff --git a/test/functional/abc_p2p_getavaaddr.py b/test/functional/abc_p2p_getavaaddr.py --- a/test/functional/abc_p2p_getavaaddr.py +++ b/test/functional/abc_p2p_getavaaddr.py @@ -84,11 +84,17 @@ def set_test_params(self): self.setup_clean_chain = False self.num_nodes = 1 - self.extra_args = [['-enableavalanche=1', - '-avaproofstakeutxodustthreshold=1000000', - '-enableavalancheproofreplacement=1', - '-avaproofstakeutxoconfirmations=1', - '-avacooldown=0', '-whitelist=noban@127.0.0.1']] + self.extra_args = [ + [ + '-enableavalanche=1', + '-avaproofstakeutxodustthreshold=1000000', + '-enableavalancheproofreplacement=1', + '-avaproofstakeutxoconfirmations=1', + '-avacooldown=0', + '-avaminquorumstake=0', + '-whitelist=noban@127.0.0.1', + ] + ] def check_all_peers_received_getavaaddr_once(self, avapeers): def received_all_getavaaddr(avapeers):