Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -230,14 +230,12 @@ BITCOIN_CORE_H = \
evo/types.h \
external_signer.h \
dsnotificationinterface.h \
governance/classes.h \
governance/common.h \
governance/exceptions.h \
governance/governance.h \
governance/net_governance.h \
governance/object.h \
governance/signing.h \
governance/validators.h \
governance/superblock.h \
governance/vote.h \
governance/votedb.h \
gsl/assert.h \
Expand Down Expand Up @@ -521,13 +519,11 @@ libbitcoin_node_a_SOURCES = \
evo/specialtx_filter.cpp \
evo/specialtxman.cpp \
flatfile.cpp \
governance/classes.cpp \
governance/exceptions.cpp \
governance/governance.cpp \
governance/net_governance.cpp \
governance/object.cpp \
governance/signing.cpp \
governance/validators.cpp \
governance/superblock.cpp \
governance/vote.cpp \
governance/votedb.cpp \
gsl/assert.cpp \
Expand Down
6 changes: 4 additions & 2 deletions src/active/context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <evo/deterministicmns.h>
#include <governance/governance.h>
#include <governance/signing.h>
#include <governance/superblock.h>
#include <instantsend/instantsend.h>
#include <instantsend/signing.h>
#include <llmq/debug.h>
Expand All @@ -26,7 +27,8 @@
#include <validationinterface.h>

ActiveContext::ActiveContext(CBLSWorker& bls_worker, ChainstateManager& chainman, CConnman& connman,
CDeterministicMNManager& dmnman, CGovernanceManager& govman, CMasternodeMetaMan& mn_metaman,
CDeterministicMNManager& dmnman, CGovernanceManager& govman,
governance::SuperblockManager& superblocks, CMasternodeMetaMan& mn_metaman,
CSporkManager& sporkman, const chainlock::Chainlocks& chainlocks, CTxMemPool& mempool,
chainlock::ChainlockHandler& clhandler, llmq::CInstantSendManager& isman,
llmq::CQuorumBlockProcessor& qblockman, llmq::CQuorumManager& qman,
Expand All @@ -40,7 +42,7 @@ ActiveContext::ActiveContext(CBLSWorker& bls_worker, ChainstateManager& chainman
dkgdbgman{std::make_unique<llmq::CDKGDebugManager>(dmnman, qsnapman, chainman)},
qdkgsman{std::make_unique<llmq::CDKGSessionManager>(dmnman, qsnapman, chainman, sporkman, db_params, quorums_watch)},
shareman{std::make_unique<llmq::CSigSharesManager>(connman, chainman, sigman, *nodeman, qman, sporkman)},
gov_signer{std::make_unique<GovernanceSigner>(connman, dmnman, govman, *nodeman, chainman, mn_sync)},
gov_signer{std::make_unique<GovernanceSigner>(connman, dmnman, govman, superblocks, *nodeman, chainman, mn_sync)},
ehf_sighandler{std::make_unique<llmq::CEHFSignalsHandler>(chainman, sigman, *shareman, qman)},
cl_signer{std::make_unique<chainlock::ChainLockSigner>(chainman.ActiveChainstate(), chainlocks, clhandler, isman,
qman, sigman, *shareman, mn_sync)},
Expand Down
6 changes: 5 additions & 1 deletion src/active/context.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ class Chainlocks;
class ChainlockHandler;
class ChainLockSigner;
} // namespace chainlock
namespace governance {
class SuperblockManager;
} // namespace governance
namespace instantsend {
class InstantSendSigner;
} // namespace instantsend
Expand All @@ -55,7 +58,8 @@ struct ActiveContext final : public llmq::QuorumRole, public CValidationInterfac
ActiveContext(const ActiveContext&) = delete;
ActiveContext& operator=(const ActiveContext&) = delete;
explicit ActiveContext(CBLSWorker& bls_worker, ChainstateManager& chainman, CConnman& connman,
CDeterministicMNManager& dmnman, CGovernanceManager& govman, CMasternodeMetaMan& mn_metaman,
CDeterministicMNManager& dmnman, CGovernanceManager& govman,
governance::SuperblockManager& superblocks, CMasternodeMetaMan& mn_metaman,
CSporkManager& sporkman, const chainlock::Chainlocks& chainlocks, CTxMemPool& mempool,
chainlock::ChainlockHandler& clhandler, llmq::CInstantSendManager& isman,
llmq::CQuorumBlockProcessor& qblockman, llmq::CQuorumManager& qman,
Expand Down
25 changes: 21 additions & 4 deletions src/evo/chainhelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,49 @@

#include <evo/chainhelper.h>

#include <chainparams.h>

#include <chainlock/chainlock.h>
#include <chainparams.h>
#include <evo/creditpool.h>
#include <evo/mnhftx.h>
#include <evo/specialtxman.h>
#include <governance/superblock.h>
#include <instantsend/instantsend.h>
#include <instantsend/lock.h>
#include <logging.h>
#include <masternode/payments.h>
#include <masternode/sync.h>

CChainstateHelper::CChainstateHelper(CEvoDB& evodb, CDeterministicMNManager& dmnman, CGovernanceManager& govman,
CChainstateHelper::CChainstateHelper(CEvoDB& evodb, CDeterministicMNManager& dmnman, const CMasternodeSync& mn_sync,
llmq::CInstantSendManager& isman, llmq::CQuorumBlockProcessor& qblockman,
llmq::CQuorumSnapshotManager& qsnapman, const ChainstateManager& chainman,
const Consensus::Params& consensus_params, const chainlock::Chainlocks& chainlocks,
const llmq::CQuorumManager& qman) :
isman{isman},
mn_sync{mn_sync},
credit_pool_manager{std::make_unique<CCreditPoolManager>(evodb, chainman)},
m_chainlocks{chainlocks},
ehf_manager{std::make_unique<CMNHFManager>(evodb, chainman, qman)},
mn_payments{std::make_unique<CMNPaymentsProcessor>(dmnman, govman, chainman, consensus_params)},
superblocks{std::make_unique<governance::SuperblockManager>()},
mn_payments{std::make_unique<CMNPaymentsProcessor>(dmnman, *superblocks, chainman, consensus_params)},
special_tx{std::make_unique<CSpecialTxProcessor>(*credit_pool_manager, dmnman, *ehf_manager, qblockman, qsnapman,
chainman, consensus_params, chainlocks, qman)}
{}

CChainstateHelper::~CChainstateHelper() = default;

bool CChainstateHelper::IsSuperblockValidationRequired(const CBlockIndex* const pindex)
{
if (m_chainlocks.GetBestChainLockHeight() >= pindex->nHeight) {
LogPrint(BCLog::MNPAYMENTS, "%s -- validation of chainlocked block=%s is skipped\n", __func__, pindex->GetBlockHash().ToString());
return false;
}
if (!mn_sync.IsSynced()) {
LogPrint(BCLog::MNPAYMENTS, "%s -- WARNING! Node is not fully synced, checked superblock for block=%s max bounds only\n", __func__, pindex->GetBlockHash().ToString());
return false;
}
return true;
}

/** Passthrough functions to chainlock::Chainlocks */
bool CChainstateHelper::HasConflictingChainLock(int nHeight, const uint256& blockHash) const
{
Expand Down
11 changes: 9 additions & 2 deletions src/evo/chainhelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ class CBlockIndex;
class CCreditPoolManager;
class CDeterministicMNManager;
class CEvoDB;
class CGovernanceManager;
class ChainstateManager;
class CMasternodeSync;
class CMNHFManager;
class CMNPaymentsProcessor;
class CSpecialTxProcessor;
Expand All @@ -24,6 +24,9 @@ struct CCreditPool;
namespace chainlock {
class Chainlocks;
} // namespace chainlock
namespace governance {
class SuperblockManager;
} // namespace governance
namespace Consensus {
struct Params;
} // namespace Consensus
Expand All @@ -37,25 +40,29 @@ class CChainstateHelper
{
private:
llmq::CInstantSendManager& isman;
const CMasternodeSync& mn_sync;

public:
const std::unique_ptr<CCreditPoolManager> credit_pool_manager;
const chainlock::Chainlocks& m_chainlocks;
const std::unique_ptr<CMNHFManager> ehf_manager;
const std::unique_ptr<governance::SuperblockManager> superblocks;
const std::unique_ptr<CMNPaymentsProcessor> mn_payments;
const std::unique_ptr<CSpecialTxProcessor> special_tx;

public:
CChainstateHelper() = delete;
CChainstateHelper(const CChainstateHelper&) = delete;
CChainstateHelper& operator=(const CChainstateHelper&) = delete;
explicit CChainstateHelper(CEvoDB& evodb, CDeterministicMNManager& dmnman, CGovernanceManager& govman,
explicit CChainstateHelper(CEvoDB& evodb, CDeterministicMNManager& dmnman, const CMasternodeSync& mn_sync,
llmq::CInstantSendManager& isman, llmq::CQuorumBlockProcessor& qblockman,
llmq::CQuorumSnapshotManager& qsnapman, const ChainstateManager& chainman,
const Consensus::Params& consensus_params, const chainlock::Chainlocks& chainlocks,
const llmq::CQuorumManager& qman);
~CChainstateHelper();

bool IsSuperblockValidationRequired(const CBlockIndex* const pindex);

/** Passthrough functions to chainlock::Chainlocks */
bool HasConflictingChainLock(int nHeight, const uint256& blockHash) const;
bool HasChainLock(int nHeight, const uint256& blockHash) const;
Expand Down
117 changes: 0 additions & 117 deletions src/governance/classes.h

This file was deleted.

5 changes: 3 additions & 2 deletions src/governance/core_write.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

#include <core_io.h>
#include <governance/common.h>
#include <governance/governance.h>

#include <core_io.h>
#include <governance/object.h>
#include <rpc/util.h>
#include <tinyformat.h>
#include <util/check.h>

#include <univalue.h>
Expand Down
39 changes: 0 additions & 39 deletions src/governance/exceptions.cpp

This file was deleted.

Loading
Loading