From 7372f6f10b8a4d6286cd6a6284cf07d9667ec17f Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Tue, 26 Feb 2019 08:41:07 +0100 Subject: [PATCH] Move RebuildSigShare from CBatchedSigShares to CSigSharesManager Needed as CBatchedSigShares doesn't have the necessary info anymore --- src/llmq/quorums_signing_shares.cpp | 17 ++++++++++++++++- src/llmq/quorums_signing_shares.h | 17 ++--------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/llmq/quorums_signing_shares.cpp b/src/llmq/quorums_signing_shares.cpp index 74286d54eb448..06170ce91181b 100644 --- a/src/llmq/quorums_signing_shares.cpp +++ b/src/llmq/quorums_signing_shares.cpp @@ -324,7 +324,7 @@ void CSigSharesManager::ProcessMessageBatchedSigShares(CNode* pfrom, const CBatc auto& nodeState = nodeStates[pfrom->id]; for (size_t i = 0; i < batchedSigShares.sigShares.size(); i++) { - CSigShare sigShare = batchedSigShares.RebuildSigShare(i); + CSigShare sigShare = RebuildSigShare(sessionInfo, batchedSigShares, i); nodeState.requestedSigShares.Erase(sigShare.GetKey()); // TODO track invalid sig shares received for PoSe? @@ -980,6 +980,21 @@ bool CSigSharesManager::SendMessages() return didSend; } +CSigShare CSigSharesManager::RebuildSigShare(const CSigSharesNodeState::SessionInfo& session, const CBatchedSigShares& batchedSigShares, size_t idx) +{ + assert(idx < batchedSigShares.sigShares.size()); + auto& s = batchedSigShares.sigShares[idx]; + CSigShare sigShare; + sigShare.llmqType = session.llmqType; + sigShare.quorumHash = session.quorumHash; + sigShare.quorumMember = s.first; + sigShare.id = session.id; + sigShare.msgHash = session.msgHash; + sigShare.sigShare = s.second; + sigShare.UpdateKey(); + return sigShare; +} + void CSigSharesManager::Cleanup() { int64_t now = GetTimeMillis(); diff --git a/src/llmq/quorums_signing_shares.h b/src/llmq/quorums_signing_shares.h index f8603aa5d9705..9b37fde5ea0d0 100644 --- a/src/llmq/quorums_signing_shares.h +++ b/src/llmq/quorums_signing_shares.h @@ -127,21 +127,6 @@ class CBatchedSigShares READWRITE(sigShares); } - CSigShare RebuildSigShare(size_t idx) const - { - assert(idx < sigShares.size()); - auto& s = sigShares[idx]; - CSigShare sigShare; - sigShare.llmqType = llmqType; - sigShare.quorumHash = quorumHash; - sigShare.quorumMember = s.first; - sigShare.id = id; - sigShare.msgHash = msgHash; - sigShare.sigShare = s.second; - sigShare.UpdateKey(); - return sigShare; - } - CSigSharesInv ToInv(Consensus::LLMQType llmqType) const; }; @@ -392,6 +377,8 @@ class CSigSharesManager : public CRecoveredSigsListener void TryRecoverSig(const CQuorumCPtr& quorum, const uint256& id, const uint256& msgHash, CConnman& connman); private: + CSigShare RebuildSigShare(const CSigSharesNodeState::SessionInfo& session, const CBatchedSigShares& batchedSigShares, size_t idx); + void Cleanup(); void RemoveSigSharesForSession(const uint256& signHash); void RemoveBannedNodeStates();