mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
refactor: minimize GetLLMQParams calls (#5211)
## Issue being fixed or feature implemented Avoid redundant calls to GetLLMQParams ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] 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
This commit is contained in:
parent
0ee3974d1f
commit
9f4d431b52
@ -97,7 +97,7 @@ std::string CBatchedSigShares::ToInvString() const
|
|||||||
|
|
||||||
static void InitSession(CSigSharesNodeState::Session& s, const uint256& signHash, CSigBase from)
|
static void InitSession(CSigSharesNodeState::Session& s, const uint256& signHash, CSigBase from)
|
||||||
{
|
{
|
||||||
const auto& llmq_params = GetLLMQParams((Consensus::LLMQType)from.getLlmqType());
|
const auto& llmq_params = GetLLMQParams(from.getLlmqType());
|
||||||
|
|
||||||
s.llmqType = from.getLlmqType();
|
s.llmqType = from.getLlmqType();
|
||||||
s.quorumHash = from.getQuorumHash();
|
s.quorumHash = from.getQuorumHash();
|
||||||
|
@ -35,7 +35,7 @@ namespace utils
|
|||||||
{
|
{
|
||||||
// Forward declarations
|
// Forward declarations
|
||||||
static std::vector<CDeterministicMNCPtr> ComputeQuorumMembers(Consensus::LLMQType llmqType, const CBlockIndex* pQuorumBaseBlockIndex);
|
static std::vector<CDeterministicMNCPtr> ComputeQuorumMembers(Consensus::LLMQType llmqType, const CBlockIndex* pQuorumBaseBlockIndex);
|
||||||
static std::vector<std::vector<CDeterministicMNCPtr>> ComputeQuorumMembersByQuarterRotation(Consensus::LLMQType llmqType, const CBlockIndex* pCycleQuorumBaseBlockIndex);
|
static std::vector<std::vector<CDeterministicMNCPtr>> ComputeQuorumMembersByQuarterRotation(const Consensus::LLMQParams& llmqParams, const CBlockIndex* pCycleQuorumBaseBlockIndex);
|
||||||
|
|
||||||
static std::vector<std::vector<CDeterministicMNCPtr>> BuildNewQuorumQuarterMembers(const Consensus::LLMQParams& llmqParams, const CBlockIndex* pQuorumBaseBlockIndex, const PreviousQuorumQuarters& quarters);
|
static std::vector<std::vector<CDeterministicMNCPtr>> BuildNewQuorumQuarterMembers(const Consensus::LLMQParams& llmqParams, const CBlockIndex* pQuorumBaseBlockIndex, const PreviousQuorumQuarters& quarters);
|
||||||
|
|
||||||
@ -112,7 +112,7 @@ std::vector<CDeterministicMNCPtr> GetAllQuorumMembers(Consensus::LLMQType llmqTy
|
|||||||
return quorumMembers;
|
return quorumMembers;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto q = ComputeQuorumMembersByQuarterRotation(llmqType, pCycleQuorumBaseBlockIndex);
|
auto q = ComputeQuorumMembersByQuarterRotation(llmqParams, pCycleQuorumBaseBlockIndex);
|
||||||
LOCK(cs_indexed_members);
|
LOCK(cs_indexed_members);
|
||||||
for (const size_t i : irange::range(q.size())) {
|
for (const size_t i : irange::range(q.size())) {
|
||||||
mapIndexedQuorumMembers[llmqType].insert(std::make_pair(pCycleQuorumBaseBlockIndex->GetBlockHash(), i), q[i]);
|
mapIndexedQuorumMembers[llmqType].insert(std::make_pair(pCycleQuorumBaseBlockIndex->GetBlockHash(), i), q[i]);
|
||||||
@ -136,9 +136,9 @@ std::vector<CDeterministicMNCPtr> ComputeQuorumMembers(Consensus::LLMQType llmqT
|
|||||||
return allMns.CalculateQuorum(GetLLMQParams(llmqType).size, modifier, HPMNOnly);
|
return allMns.CalculateQuorum(GetLLMQParams(llmqType).size, modifier, HPMNOnly);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::vector<CDeterministicMNCPtr>> ComputeQuorumMembersByQuarterRotation(Consensus::LLMQType llmqType, const CBlockIndex* pCycleQuorumBaseBlockIndex)
|
std::vector<std::vector<CDeterministicMNCPtr>> ComputeQuorumMembersByQuarterRotation(const Consensus::LLMQParams& llmqParams, const CBlockIndex* pCycleQuorumBaseBlockIndex)
|
||||||
{
|
{
|
||||||
const Consensus::LLMQParams& llmqParams = GetLLMQParams(llmqType);
|
const Consensus::LLMQType llmqType = llmqParams.type;
|
||||||
|
|
||||||
const int cycleLength = llmqParams.dkgInterval;
|
const int cycleLength = llmqParams.dkgInterval;
|
||||||
assert(pCycleQuorumBaseBlockIndex->nHeight % cycleLength == 0);
|
assert(pCycleQuorumBaseBlockIndex->nHeight % cycleLength == 0);
|
||||||
@ -610,12 +610,14 @@ bool IsQuorumRotationEnabled(Consensus::LLMQType llmqType, const CBlockIndex* pi
|
|||||||
{
|
{
|
||||||
assert(pindex);
|
assert(pindex);
|
||||||
|
|
||||||
if (!GetLLMQParams(llmqType).useRotation) {
|
const auto& llmqParams = GetLLMQParams(llmqType);
|
||||||
|
|
||||||
|
if (!llmqParams.useRotation) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOCK(cs_llmq_vbc);
|
LOCK(cs_llmq_vbc);
|
||||||
int cycleQuorumBaseHeight = pindex->nHeight - (pindex->nHeight % GetLLMQParams(llmqType).dkgInterval);
|
int cycleQuorumBaseHeight = pindex->nHeight - (pindex->nHeight % llmqParams.dkgInterval);
|
||||||
if (cycleQuorumBaseHeight < 1) {
|
if (cycleQuorumBaseHeight < 1) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user