mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
feat(llmq): llmq_25_67 for Platform (Testnet only) (#5225)
- Added new LLMQ type `llmq_25_67` - The above LLMQ is added only for Testnet and it is activated with v19 fork. - [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 **For repository code-owners and collaborators only** - [x] I have assigned this pull request to a milestone --------- Co-authored-by: pasta <pasta@dashboost.org>
This commit is contained in:
parent
cc4239d497
commit
0fa86b3446
10
doc/release-notes-5225.md
Normal file
10
doc/release-notes-5225.md
Normal file
@ -0,0 +1,10 @@
|
||||
Testnet Breaking Changes
|
||||
------------------------
|
||||
|
||||
A new testnet only LLMQ has been added. This LLMQ is of the type LLMQ_25_67; this LLMQ is only active on testnet.
|
||||
This LLMQ will not remove the LLMQ_100_67 from testnet; however that quorum (likely) will not form and will perform no role.
|
||||
See the [diff](https://github.com/dashpay/dash/pull/5225/files#diff-e70a38a3e8c2a63ca0494627301a5c7042141ad301193f78338d97cb1b300ff9R451-R469) for specific parameters of the LLMQ.
|
||||
|
||||
This LLMQ will become active at the height of 847000. **This will be a breaking change and a hard fork for testnet**
|
||||
This LLMQ is not activated with the v19 hardfork; as such testnet will experience two hardforks. One at height 847000,
|
||||
and the other to be determined by the BIP9 hard fork process.
|
@ -523,10 +523,11 @@ public:
|
||||
AddLLMQ(Consensus::LLMQType::LLMQ_400_60);
|
||||
AddLLMQ(Consensus::LLMQType::LLMQ_400_85);
|
||||
AddLLMQ(Consensus::LLMQType::LLMQ_100_67);
|
||||
AddLLMQ(Consensus::LLMQType::LLMQ_25_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.llmqTypePlatform = Consensus::LLMQType::LLMQ_25_67;
|
||||
consensus.llmqTypeMnhf = Consensus::LLMQType::LLMQ_50_60;
|
||||
|
||||
fDefaultConsistencyChecks = false;
|
||||
|
@ -19,6 +19,7 @@ enum class LLMQType : uint8_t {
|
||||
LLMQ_400_85 = 3, // 400 members, 340 (85%) threshold, one every 24 hours
|
||||
LLMQ_100_67 = 4, // 100 members, 67 (67%) threshold, one per hour
|
||||
LLMQ_60_75 = 5, // 60 members, 45 (75%) threshold, one every 12 hours
|
||||
LLMQ_25_67 = 6, // 25 members, 67 (67%) threshold, one per hour
|
||||
|
||||
// for testing only
|
||||
LLMQ_TEST = 100, // 3 members, 2 (66%) threshold, one per hour. Params might differ when -llmqtestparams is used
|
||||
@ -106,7 +107,7 @@ struct LLMQParams {
|
||||
};
|
||||
|
||||
|
||||
static constexpr std::array<LLMQParams, 11> available_llmqs = {
|
||||
static constexpr std::array<LLMQParams, 12> available_llmqs = {
|
||||
|
||||
/**
|
||||
* llmq_test
|
||||
@ -388,6 +389,33 @@ static constexpr std::array<LLMQParams, 11> available_llmqs = {
|
||||
.recoveryMembers = 50,
|
||||
},
|
||||
|
||||
/**
|
||||
* llmq_25_67
|
||||
* This quorum is deployed on Testnet and requires
|
||||
* 25 participants
|
||||
*
|
||||
* Used by Dash Platform
|
||||
*/
|
||||
LLMQParams{
|
||||
.type = LLMQType::LLMQ_25_67,
|
||||
.name = "llmq_25_67",
|
||||
.useRotation = false,
|
||||
.size = 25,
|
||||
.minSize = 22,
|
||||
.threshold = 17,
|
||||
|
||||
.dkgInterval = 24, // one DKG per hour
|
||||
.dkgPhaseBlocks = 2,
|
||||
.dkgMiningWindowStart = 10, // dkgPhaseBlocks * 5 = after finalization
|
||||
.dkgMiningWindowEnd = 18,
|
||||
.dkgBadVotesThreshold = 22,
|
||||
|
||||
.signingActiveQuorumCount = 24, // a full day worth of LLMQs
|
||||
|
||||
.keepOldConnections = 25,
|
||||
.recoveryMembers = 12,
|
||||
},
|
||||
|
||||
}; // available_llmqs
|
||||
|
||||
} // namespace Consensus
|
||||
|
@ -23,6 +23,8 @@
|
||||
|
||||
#include <optional>
|
||||
|
||||
static constexpr int TESTNET_LLMQ_25_67_ACTIVATION_HEIGHT = 847000;
|
||||
|
||||
namespace llmq
|
||||
{
|
||||
|
||||
@ -915,6 +917,11 @@ bool IsQuorumTypeEnabledInternal(Consensus::LLMQType llmqType, const CQuorumMana
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Consensus::LLMQType::LLMQ_25_67:
|
||||
if (pindex->nHeight < TESTNET_LLMQ_25_67_ACTIVATION_HEIGHT) {
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw std::runtime_error(strprintf("%s: Unknown LLMQ type %d", __func__, static_cast<uint8_t>(llmqType)));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user