diff --git a/src/dsnotificationinterface.cpp b/src/dsnotificationinterface.cpp index 828371665b400..579723e97d79c 100644 --- a/src/dsnotificationinterface.cpp +++ b/src/dsnotificationinterface.cpp @@ -10,18 +10,16 @@ #include "masternode-sync.h" #include "privatesend-client.h" -CDSNotificationInterface::CDSNotificationInterface() -{ -} - -CDSNotificationInterface::~CDSNotificationInterface() +void CDSNotificationInterface::InitializeCurrentBlockTip() { + LOCK(cs_main); + UpdatedBlockTip(chainActive.Tip(), NULL, IsInitialBlockDownload()); } void CDSNotificationInterface::UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) { if (fInitialDownload || pindexNew == pindexFork) // In IBD or blocks were disconnected without any new ones - return; + return; mnodeman.UpdatedBlockTip(pindexNew); privateSendClient.UpdatedBlockTip(pindexNew); diff --git a/src/dsnotificationinterface.h b/src/dsnotificationinterface.h index f2d47207f66e6..594e43bf654ca 100644 --- a/src/dsnotificationinterface.h +++ b/src/dsnotificationinterface.h @@ -10,14 +10,16 @@ class CDSNotificationInterface : public CValidationInterface { public: - // virtual CDSNotificationInterface(); - CDSNotificationInterface(); - virtual ~CDSNotificationInterface(); + CDSNotificationInterface() = default; + virtual ~CDSNotificationInterface() = default; + + // a small helper to initialize current block height in sub-modules on startup + void InitializeCurrentBlockTip(); protected: // CValidationInterface - void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload); - void SyncTransaction(const CTransaction &tx, const CBlock *pblock); + void UpdatedBlockTip(const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) override; + void SyncTransaction(const CTransaction &tx, const CBlock *pblock) override; private: }; diff --git a/src/init.cpp b/src/init.cpp index 16bea9fd35217..c9fdd1a434f81 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1975,11 +1975,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) // force UpdatedBlockTip to initialize nCachedBlockHeight for DS, MN payments and budgets // but don't call it directly to prevent triggering of other listeners like zmq etc. // GetMainSignals().UpdatedBlockTip(chainActive.Tip()); - mnodeman.UpdatedBlockTip(chainActive.Tip()); - privateSendClient.UpdatedBlockTip(chainActive.Tip()); - mnpayments.UpdatedBlockTip(chainActive.Tip()); - masternodeSync.UpdatedBlockTip(chainActive.Tip(), IsInitialBlockDownload()); - governance.UpdatedBlockTip(chainActive.Tip()); + pdsNotificationInterface->InitializeCurrentBlockTip(); // ********************************************************* Step 11d: start dash-ps- threads