forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
DIP Quorum rotation #4512
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
Closed
ogabrielides
wants to merge
111
commits into
dashpay:develop
from
ogabrielides:quorum_rotation_dip_dev
Closed
DIP Quorum rotation #4512
Changes from all commits
Commits
Show all changes
111 commits
Select commit
Hold shift + click to select a range
771c2c2
Added GET_SNAPSHOT_INFO message handling
ogabrielides 40562e1
Quorum members by rotation
ogabrielides b7a0945
Quorum utils functions
ogabrielides 42cb0bc
Handle GET_QUORUM_ROTATION_INFO with baseBlockHash from client
ogabrielides f20720a
Storing QuorumSnaphots in evoDB when requesting them
ogabrielides ef7beb1
Added DIP Enforcement param
ogabrielides d5e273b
quorumIndex cache
ogabrielides bc2abda
Quorum Rotation deployment control
ogabrielides f2bef5b
Usage of Bitsets for storing CQuorumSnapshots
ogabrielides 1143773
Correct handling of early quorum quarters
ogabrielides 8eac583
More asserts
ogabrielides 765629b
Corrections
ogabrielides 9651229
Handling of quorumIndex
ogabrielides d149b58
Refactoring of truncate mechanism
ogabrielides 905147c
Various fixes
ogabrielides 8274b32
Interface correction
ogabrielides f330530
Added template type for indexed cache
ogabrielides ae6d8e8
Added quorumIndex into commitmenHash
ogabrielides f5c3330
Various changes
ogabrielides 24a6837
Needs to update maqQuorumsCache along with indexedQuorumsCache
ogabrielides b93a7fa
Added CFinalCommitment version 2
ogabrielides f9d4b7b
Renamed variables
ogabrielides caff9e4
Fixes
ogabrielides 4c32ee4
Refactoring & correct caching of quorumMembers by rotation
ogabrielides c77a9d0
Added assertions
ogabrielides 3dc0c2c
Refactoring
ogabrielides 6a01797
Interface change
ogabrielides 0cf55f5
Handling of previous DKG session failure
ogabrielides 0684558
Applied refactoring
ogabrielides 78c3245
Build quarter members improvments
ogabrielides c74dbb2
Merge Quorum Rotation and Decreased fee into one deployment (DIP24)
ogabrielides 19924b8
Added new LLMQ Type
ogabrielides 8728e50
Added functional tests + refactoring
ogabrielides 5792b1d
Refactoring
ogabrielides dc7fe2a
Spreaded Quorum creation and Quorum Index adaptation
ogabrielides 11cdc64
quorumIndex adaptations
ogabrielides bfe0f1c
Added quorumIndex in CFinalCommitment
ogabrielides 1e643e8
Latest work
ogabrielides 4630d5b
Final refactoring
ogabrielides 2d07540
Batch of refactoring
kwvg b3eea5c
Fixes for tests
ogabrielides 4f1357a
Fix for CFinalCommitment
ogabrielides 28da1fb
Fix for Quorums
ogabrielides 44eafbc
Fix
ogabrielides 706f3d8
Small changes
ogabrielides c032720
Thread sync fic
ogabrielides ffb2eab
Safety changes
ogabrielides 5baeb7f
Reuse mns when needed
ogabrielides d809f0c
Refactoring
ogabrielides d1aa32d
More refactoring
ogabrielides 24231c9
Fixes for rotationinfo handling
ogabrielides 42a7486
Fix for rotation of members
ogabrielides 8a57c09
Correct order of MNs lists in Quorum Snapshots
ogabrielides 38815a1
Adding extra logs
ogabrielides 528587d
Sync rotation quorums + qrinfo changes
ogabrielides 5741e0e
Fix + extra logs
ogabrielides a51898e
Removed redundant field
ogabrielides 1ca80bc
Fix for null final commitment + refactoring
ogabrielides 60dcb77
Added timers in tests
ogabrielides ad39d74
Fix for qrinfo message: quorumdiff and merkleRootQuorums
ogabrielides d53de5c
Small changes for rotation test
ogabrielides e0087e0
Remove reading from scanQuorumCache
ogabrielides 6964c1b
Added quorum list output
ogabrielides ff5300d
Crash fix
ogabrielides 399cfbc
Experimental commit
ogabrielides 841b8c4
apply changes to specialtxman.cpp from specialtx.cpp
PastaPastaPasta ddbc160
all the changes
PastaPastaPasta 7dadb51
substancially speed up feature_llmq_rotation.py
PastaPastaPasta 071b8c2
reenable asserts, add check for reorgs
PastaPastaPasta 8eb1cc1
Refactoring
ogabrielides f1fe7fc
Added extra logs
ogabrielides 0be7f7b
format
ogabrielides c2cc9a5
trivial
UdjinM6 4edcdff
drop extra boost includes
UdjinM6 5f8d172
drop ContainsMN
UdjinM6 cac0344
fix ScanQuorums
UdjinM6 4cb36cb
check quorum hash and index in CFinalCommitment::Verify
UdjinM6 fa41c16
fix/tweak tests
UdjinM6 dc795e8
IsQuorumRotationEnabled should be aware of the context
UdjinM6 66a9fd5
Calculating members based on earlier block.
ogabrielides c88fe0a
Fix for Quorum Members Cache
ogabrielides 31682e9
Removed duplicate size of baseBlockHashes
ogabrielides 879e82c
Adaptations of qrinfo to -8 mn lists
ogabrielides c4a088a
Introduction of llmqTypeDIP24InstantSend
ogabrielides 6aba9c1
Adaptation for llmqTypeDIP24InstantSend
ogabrielides 442effc
Adaptations for IS
ogabrielides f29794a
bump protocol version
PastaPastaPasta e30a07b
Added feature_llmq_is_migration test
ogabrielides 173cf02
Various cleanups
ogabrielides e14b953
use unordered_lru_cache for quorumSnapshotCache
UdjinM6 578a313
trivial refactor ComputeQuorumMembersByQuarterRotation
UdjinM6 e520357
Reduced CFinalCommitment::quorumIndex from 32 to 16 bits
ogabrielides 967d7d0
Keep verified LLMQ relay connections
ogabrielides 1b1807f
Experimental Relay connection fix
ogabrielides 8595527
Fix for EnsureQuorumConnections rotation
ogabrielides 2b4d369
Using only valid Mns for checking
ogabrielides 3cc69b8
Override of nPowTargetSpacing (devnet only)
ogabrielides 34ccdcf
Show penalty score in masternode rpc
ogabrielides e0abf1d
fixup! not relevant whitespace diff
PastaPastaPasta 33786d2
fixup! use int() instead of static_cast
PastaPastaPasta fc02e29
fixup! not-relevant whitespace
PastaPastaPasta a4c4a00
fixup! TODOs
PastaPastaPasta 6190ad9
fixup! use more verbose name
PastaPastaPasta d5a1513
fixup! default quorumIndex to 0
PastaPastaPasta e9b1df1
fixup! default quorumIndex to 0
PastaPastaPasta 5eb4139
fixup! formatting
PastaPastaPasta edaee1f
fixup! remove unneeded includes
PastaPastaPasta 2b2eeba
fixup! use Mutex instead of CCriticalSection
PastaPastaPasta c0b6ea0
fix: linter fixes
PastaPastaPasta 4087309
Applied corrections
ogabrielides da5a28c
Applied corrections
ogabrielides File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -240,14 +240,14 @@ class CMainParams : public CChainParams { | |
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nThresholdMin = 2420; // 60% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
|
|
||
| // Deployment of decreased proposal fee, script addresses for Governance Proposals | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nStartTime = 1638316800; // Dec 1st, 2021 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nTimeout = 1669852800; // Dec 1st, 2022 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nWindowSize = 4032; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdStart = 3226; // 80% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdMin = 2420; // 60% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
| // Deployment of Quorum Rotation DIP and decreased proposal fee (Values to be determined) | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nStartTime = 1638316800; // Dec 1st, 2021 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nTimeout = 1669852800; // Dec 1st, 2022 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nWindowSize = 4032; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdStart = 3226; // 80% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdMin = 2420; // 60% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
|
|
||
| // The best chain should have at least this much work. | ||
| consensus.nMinimumChainWork = uint256S("0x00000000000000000000000000000000000000000000549cd3ccb81a55892330"); // 1450000 | ||
|
|
@@ -299,11 +299,13 @@ class CMainParams : public CChainParams { | |
|
|
||
| // long living quorum params | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_50_60); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_60_75); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_400_60); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_400_85); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_100_67); | ||
| consensus.llmqTypeChainLocks = Consensus::LLMQType::LLMQ_400_60; | ||
| consensus.llmqTypeInstantSend = Consensus::LLMQType::LLMQ_50_60; | ||
| consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_60_75; | ||
| consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_100_67; | ||
| consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_400_85; | ||
|
|
||
|
|
@@ -461,14 +463,14 @@ class CTestNetParams : public CChainParams { | |
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nThresholdMin = 60; // 60% of 100 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
|
|
||
| // Deployment of decreased proposal fee, script addresses for Governance Proposals | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nStartTime = 999999999999ULL; // TODO renable this before first RC | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nTimeout = 999999999999ULL; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nWindowSize = 4032; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdStart = 3226; // 80% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdMin = 2420; // 60% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
| // Deployment of Quorum Rotation DIP and decreased proposal fee (Values to be determined) | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nStartTime = 1625097600; // July 1st, 2021 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nTimeout = 1656633600; // July 1st, 2022 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nWindowSize = 4032; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdStart = 3226; // 80% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdMin = 2420; // 60% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
|
|
||
| // The best chain should have at least this much work. | ||
| consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000000022f14ac5d56b5ef"); // 470000 | ||
|
|
@@ -513,11 +515,13 @@ class CTestNetParams : public CChainParams { | |
|
|
||
| // long living quorum params | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_50_60); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_60_75); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_400_60); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_400_85); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_100_67); | ||
| consensus.llmqTypeChainLocks = Consensus::LLMQType::LLMQ_50_60; | ||
| consensus.llmqTypeInstantSend = Consensus::LLMQType::LLMQ_50_60; | ||
| consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_60_75; | ||
| consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_100_67; | ||
| consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_50_60; | ||
|
|
||
|
|
@@ -654,14 +658,13 @@ class CDevNetParams : public CChainParams { | |
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nThresholdMin = 60; // 60% of 100 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
|
|
||
| // Deployment of decreased proposal fee, script addresses for Governance Proposals | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nStartTime = 1635724800; // Nov 1st, 2021 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nTimeout = 999999999999ULL; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nWindowSize = 100; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdStart = 80; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdMin = 60; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nStartTime = 1625097600; // July 1st, 2021 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nTimeout = 1656633600; // July 1st, 2022 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nWindowSize = 100; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdStart = 80; // 80% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdMin = 60; // 60% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
|
|
||
| // The best chain should have at least this much work. | ||
| consensus.nMinimumChainWork = uint256S("0x000000000000000000000000000000000000000000000000000000000000000"); | ||
|
|
@@ -707,17 +710,20 @@ class CDevNetParams : public CChainParams { | |
|
|
||
| // long living quorum params | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_50_60); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_60_75); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_400_60); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_400_85); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_100_67); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_DEVNET); | ||
| consensus.llmqTypeChainLocks = Consensus::LLMQType::LLMQ_50_60; | ||
| consensus.llmqTypeInstantSend = Consensus::LLMQType::LLMQ_50_60; | ||
| consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_60_75; | ||
| consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_100_67; | ||
| consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_50_60; | ||
|
|
||
| UpdateDevnetLLMQChainLocksFromArgs(args); | ||
| UpdateDevnetLLMQInstantSendFromArgs(args); | ||
| UpdateDevnetLLMQInstantSendDIP0024FromArgs(args); | ||
| UpdateLLMQDevnetParametersFromArgs(args); | ||
| UpdateDevnetPowTargetSpacingFromArgs(args); | ||
|
|
||
|
|
@@ -788,6 +794,14 @@ class CDevNetParams : public CChainParams { | |
| consensus.nPowTargetSpacing = nPowTargetSpacing; | ||
| } | ||
|
|
||
| /** | ||
| * Allows modifying the LLMQ type for InstantSend (DIP0024). | ||
| */ | ||
| void UpdateDevnetLLMQDIP0024InstantSend(Consensus::LLMQType llmqType) | ||
| { | ||
| consensus.llmqTypeDIP0024InstantSend = llmqType; | ||
| } | ||
|
|
||
| /** | ||
| * Allows modifying parameters of the devnet LLMQ | ||
| */ | ||
|
|
@@ -800,8 +814,10 @@ class CDevNetParams : public CChainParams { | |
| params->threshold = threshold; | ||
| params->dkgBadVotesThreshold = threshold; | ||
| } | ||
|
|
||
| void UpdateLLMQDevnetParametersFromArgs(const ArgsManager& args); | ||
| void UpdateDevnetLLMQInstantSendFromArgs(const ArgsManager& args); | ||
| void UpdateDevnetLLMQInstantSendDIP0024FromArgs(const ArgsManager& args); | ||
| void UpdateDevnetPowTargetSpacingFromArgs(const ArgsManager& args); | ||
| }; | ||
|
|
||
|
|
@@ -879,13 +895,15 @@ class CRegTestParams : public CChainParams { | |
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nThresholdStart = 80; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nThresholdMin = 60; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0020].nFalloffCoeff = 5; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nStartTime = 0; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nTimeout = 999999999999ULL; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nWindowSize = 100; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdStart = 80; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nThresholdMin = 60; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_GOV_FEE].nFalloffCoeff = 5; | ||
|
|
||
| // Deployment of Quorum Rotation DIP and decreased proposal fee (Values to be determined) | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].bit = 7; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nStartTime = 0; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nTimeout = 999999999999ULL; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nWindowSize = 300; | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdStart = 240; // 80% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nThresholdMin = 180; // 60% of 4032 | ||
| consensus.vDeployments[Consensus::DEPLOYMENT_DIP0024].nFalloffCoeff = 5; // this corresponds to 10 periods | ||
|
|
||
| // The best chain should have at least this much work. | ||
| consensus.nMinimumChainWork = uint256S("0x00"); | ||
|
|
@@ -962,8 +980,10 @@ class CRegTestParams : public CChainParams { | |
| // long living quorum params | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_TEST); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_TEST_V17); | ||
| AddLLMQ(Consensus::LLMQType::LLMQ_TEST_DIP0024); | ||
| consensus.llmqTypeChainLocks = Consensus::LLMQType::LLMQ_TEST; | ||
| consensus.llmqTypeInstantSend = Consensus::LLMQType::LLMQ_TEST; | ||
| consensus.llmqTypeDIP0024InstantSend = Consensus::LLMQType::LLMQ_TEST_DIP0024; | ||
| consensus.llmqTypePlatform = Consensus::LLMQType::LLMQ_TEST; | ||
| consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_TEST; | ||
|
|
||
|
|
@@ -1222,6 +1242,25 @@ void CDevNetParams::UpdateDevnetLLMQInstantSendFromArgs(const ArgsManager& args) | |
| UpdateDevnetLLMQInstantSend(llmqType); | ||
| } | ||
|
|
||
| void CDevNetParams::UpdateDevnetLLMQInstantSendDIP0024FromArgs(const ArgsManager& args) | ||
| { | ||
| if (!args.IsArgSet("-llmqinstantsenddip0024")) return; | ||
|
|
||
| std::string strLLMQType = gArgs.GetArg("-llmqinstantsenddip0024", std::string(GetLLMQ(consensus.llmqTypeDIP0024InstantSend).name)); | ||
|
|
||
| Consensus::LLMQType llmqType = Consensus::LLMQType::LLMQ_NONE; | ||
| for (const auto& params : consensus.llmqs) { | ||
| if (params.name == strLLMQType) { | ||
| llmqType = params.type; | ||
| } | ||
| } | ||
| if (llmqType == Consensus::LLMQType::LLMQ_NONE) { | ||
| throw std::runtime_error("Invalid LLMQ type specified for -llmqinstantsenddip0024."); | ||
| } | ||
| LogPrintf("Setting llmqinstantsenddip0024 to size=%ld\n", static_cast<uint8_t>(llmqType)); | ||
| UpdateDevnetLLMQDIP0024InstantSend(llmqType); | ||
| } | ||
|
|
||
| void CDevNetParams::UpdateDevnetPowTargetSpacingFromArgs(const ArgsManager& args) | ||
| { | ||
| if (!args.IsArgSet("-powtargetspacing")) return; | ||
|
|
@@ -1275,9 +1314,9 @@ std::unique_ptr<const CChainParams> CreateChainParams(const std::string& chain) | |
| return std::make_unique<CMainParams>(); | ||
| else if (chain == CBaseChainParams::TESTNET) | ||
| return std::make_unique<CTestNetParams>(); | ||
| else if (chain == CBaseChainParams::DEVNET) { | ||
| else if (chain == CBaseChainParams::DEVNET) | ||
| return std::make_unique<CDevNetParams>(gArgs); | ||
| } else if (chain == CBaseChainParams::REGTEST) | ||
| else if (chain == CBaseChainParams::REGTEST) | ||
|
||
| return std::make_unique<CRegTestParams>(gArgs); | ||
|
|
||
| throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain)); | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.