From 0f485b1a05a6446976ce2d0bcf9eeda115982a37 Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Mon, 11 Feb 2019 12:16:16 +0300 Subject: [PATCH 1/2] Do not process blocks in CDeterministicMNManager before dip3 activation This should save us some cpu/disk on initial sync/reindex --- src/evo/deterministicmns.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/evo/deterministicmns.cpp b/src/evo/deterministicmns.cpp index 35281e037088..c1a60cc5d3c3 100644 --- a/src/evo/deterministicmns.cpp +++ b/src/evo/deterministicmns.cpp @@ -446,6 +446,13 @@ CDeterministicMNManager::CDeterministicMNManager(CEvoDB& _evoDb) : bool CDeterministicMNManager::ProcessBlock(const CBlock& block, const CBlockIndex* pindex, CValidationState& _state, bool fJustCheck) { + AssertLockHeld(cs_main); + + bool fDIP0003Active = VersionBitsState(pindex->pprev, Params().GetConsensus(), Consensus::DEPLOYMENT_DIP0003, versionbitscache) == THRESHOLD_ACTIVE; + if (!fDIP0003Active) { + return true; + } + CDeterministicMNList oldList, newList; CDeterministicMNListDiff diff; From cfe58eaa0dffc322507e1c5369bbd7e80cb7d1cc Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Mon, 11 Feb 2019 15:51:59 +0300 Subject: [PATCH 2/2] Write initial snapshot on dip3 activation --- src/evo/deterministicmns.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/evo/deterministicmns.cpp b/src/evo/deterministicmns.cpp index c1a60cc5d3c3..e516501aeb88 100644 --- a/src/evo/deterministicmns.cpp +++ b/src/evo/deterministicmns.cpp @@ -479,7 +479,7 @@ bool CDeterministicMNManager::ProcessBlock(const CBlock& block, const CBlockInde diff = oldList.BuildDiff(newList); evoDb.Write(std::make_pair(DB_LIST_DIFF, diff.blockHash), diff); - if ((nHeight % SNAPSHOT_LIST_PERIOD) == 0) { + if ((nHeight % SNAPSHOT_LIST_PERIOD) == 0 || oldList.GetHeight() == -1) { evoDb.Write(std::make_pair(DB_LIST_SNAPSHOT, diff.blockHash), newList); LogPrintf("CDeterministicMNManager::%s -- Wrote snapshot. nHeight=%d, mapCurMNs.allMNsCount=%d\n", __func__, nHeight, newList.GetAllMNsCount());