Skip to content

Commit 9a60987

Browse files
authored
feat: new -llmqmnhf param for devnet (#5634)
## Issue being fixed or feature implemented By default consensus for devnet if 50_60 that is way too much: ``` consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_50_60; ``` So, `quorum list` on devnet-ouzo is empty: ``` { "llmq_50_60": [ ], ``` ## What was done? Adds new -llmqmnhf param for devnet to change quorum params dynamically. ## How Has This Been Tested? <not tested> ## Breaking Changes n/a ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone
1 parent 5d8ffe5 commit 9a60987

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/chainparams.cpp

+32
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,7 @@ class CDevNetParams : public CChainParams {
659659
UpdateDevnetLLMQInstantSendFromArgs(args);
660660
UpdateDevnetLLMQInstantSendDIP0024FromArgs(args);
661661
UpdateDevnetLLMQPlatformFromArgs(args);
662+
UpdateDevnetLLMQMnhfFromArgs(args);
662663
UpdateLLMQDevnetParametersFromArgs(args);
663664
UpdateDevnetPowTargetSpacingFromArgs(args);
664665

@@ -737,6 +738,14 @@ class CDevNetParams : public CChainParams {
737738
consensus.llmqTypeAssetLocks = llmqType;
738739
}
739740

741+
/**
742+
* Allows modifying the LLMQ type for Mnhf.
743+
*/
744+
void UpdateDevnetLLMQMnhf(Consensus::LLMQType llmqType)
745+
{
746+
consensus.llmqTypeMnhf = llmqType;
747+
}
748+
740749
/**
741750
* Allows modifying PowTargetSpacing
742751
*/
@@ -761,6 +770,7 @@ class CDevNetParams : public CChainParams {
761770
void UpdateDevnetLLMQInstantSendFromArgs(const ArgsManager& args);
762771
void UpdateDevnetLLMQInstantSendDIP0024FromArgs(const ArgsManager& args);
763772
void UpdateDevnetLLMQPlatformFromArgs(const ArgsManager& args);
773+
void UpdateDevnetLLMQMnhfFromArgs(const ArgsManager& args);
764774
void UpdateDevnetPowTargetSpacingFromArgs(const ArgsManager& args);
765775
};
766776

@@ -1321,6 +1331,28 @@ void CDevNetParams::UpdateDevnetLLMQPlatformFromArgs(const ArgsManager& args)
13211331
UpdateDevnetLLMQPlatform(llmqType);
13221332
}
13231333

1334+
void CDevNetParams::UpdateDevnetLLMQMnhfFromArgs(const ArgsManager& args)
1335+
{
1336+
if (!args.IsArgSet("-llmqmnhf")) return;
1337+
1338+
const auto& llmq_params_opt = GetLLMQ(consensus.llmqTypeMnhf);
1339+
assert(llmq_params_opt.has_value());
1340+
1341+
std::string strLLMQType = gArgs.GetArg("-llmqmnhf", std::string(llmq_params_opt->name));
1342+
1343+
Consensus::LLMQType llmqType = Consensus::LLMQType::LLMQ_NONE;
1344+
for (const auto& params : consensus.llmqs) {
1345+
if (params.name == strLLMQType) {
1346+
llmqType = params.type;
1347+
}
1348+
}
1349+
if (llmqType == Consensus::LLMQType::LLMQ_NONE) {
1350+
throw std::runtime_error("Invalid LLMQ type specified for -llmqmnhf.");
1351+
}
1352+
LogPrintf("Setting llmqmnhf to size=%ld\n", static_cast<uint8_t>(llmqType));
1353+
UpdateDevnetLLMQMnhf(llmqType);
1354+
}
1355+
13241356
void CDevNetParams::UpdateDevnetPowTargetSpacingFromArgs(const ArgsManager& args)
13251357
{
13261358
if (!args.IsArgSet("-powtargetspacing")) return;

src/chainparamsbase.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ void SetupChainParamsBaseOptions(ArgsManager& argsman)
2828
argsman.AddArg("-llmqinstantsend=<quorum name>", "Override the default LLMQ type used for InstantSend. Allows using InstantSend with smaller LLMQs. (default: llmq_50_60, devnet-only)", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
2929
argsman.AddArg("-llmqinstantsenddip0024=<quorum name>", "Override the default LLMQ type used for InstantSendDIP0024. (default: llmq_60_75, devnet-only)", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
3030
argsman.AddArg("-llmqplatform=<quorum name>", "Override the default LLMQ type used for Platform. (default: llmq_100_67, devnet-only)", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
31+
argsman.AddArg("-llmqmnhf=<quorum name>", "Override the default LLMQ type used for EHF. (default: llmq_50_60, devnet-only)", ArgsManager::ALLOW_ANY, OptionsCategory::CHAINPARAMS);
3132
argsman.AddArg("-llmqtestparams=<size>:<threshold>", "Override the default LLMQ size for the LLMQ_TEST quorum (default: 3:2, regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS);
3233
argsman.AddArg("-llmqtestinstantsendparams=<size>:<threshold>", "Override the default LLMQ size for the LLMQ_TEST_INSTANTSEND quorums (default: 3:2, regtest-only)", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::CHAINPARAMS);
3334
argsman.AddArg("-powtargetspacing=<n>", "Override the default PowTargetSpacing value in seconds (default: 2.5 minutes, devnet-only)", ArgsManager::ALLOW_INT, OptionsCategory::CHAINPARAMS);

0 commit comments

Comments
 (0)