From 4af7c7411ac6837260ff5ff04ee4a4a944ac2082 Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sun, 1 Mar 2015 02:56:52 +0300 Subject: [PATCH 1/2] check and remove expired masternodes on client start / more info on load/flush --- src/init.cpp | 6 ++++-- src/masternodeman.cpp | 15 ++++++++++++++- src/masternodeman.h | 2 ++ 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index b588d5d3edf57..939f58df38c0f 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1160,10 +1160,12 @@ bool AppInit2(boost::thread_group& threadGroup) CMasternodeDB mndb; if (!mndb.Read(mnodeman)) LogPrintf("Invalid or missing masternodes.dat; recreating\n"); + else + mnodeman.CheckAndRemove(); // clean out expired } - LogPrintf("Loaded %i masternodes from masternodes.dat %dms\n", - mnodeman.size(), GetTimeMillis() - nStart); + LogPrintf("Loaded info from masternodes.dat %dms\n", GetTimeMillis() - nStart); + LogPrintf(" %s\n", mnodeman.ToString()); fMasterNode = GetBoolArg("-masternode", false); diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index b7228d23b2eeb..b32080a8b31f7 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -123,7 +123,8 @@ void DumpMasternodes() CMasternodeDB mndb; mndb.Write(mnodeman); - LogPrintf("Flushed %d masternodes to masternodes.dat %dms\n", mnodeman.size(), GetTimeMillis() - nStart); + LogPrintf("Flushed info to masternodes.dat %dms\n", GetTimeMillis() - nStart); + LogPrintf(" %s\n", mnodeman.ToString()); } CMasternodeMan::CMasternodeMan() {} @@ -628,3 +629,15 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData } } + +std::string CMasternodeMan::ToString() +{ + std::ostringstream info; + + info << "masternodes: " << (int)vMasternodes.size() << + ", peers who asked us for masternode list: " << (int)mAskedUsForMasternodeList.size() << + ", peers we asked for masternode list: " << (int)mWeAskedForMasternodeList.size() << + ", entries in masternode list we asked for: " << (int)mWeAskedForMasternodeListEntry.size(); + + return info.str(); +} diff --git a/src/masternodeman.h b/src/masternodeman.h index 95f0d72365147..265e3655aab0b 100644 --- a/src/masternodeman.h +++ b/src/masternodeman.h @@ -113,6 +113,8 @@ class CMasternodeMan // Return the number of (unique) masternodes int size() { return vMasternodes.size(); } + std::string ToString(); + }; #endif From 7b1efb8997cd0f36d14bdb1edcd4db0cc4d8eecd Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Sun, 1 Mar 2015 03:26:29 +0300 Subject: [PATCH 2/2] show new number of MNs on add/remove in logs / move output to debug level --- src/masternodeman.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index b32080a8b31f7..4f4d839e7b75e 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -140,7 +140,7 @@ bool CMasternodeMan::Add(CMasternode &mn) if (pmn == NULL) { - LogPrintf("CMasternodeMan: Adding new masternode %s\n", mn.addr.ToString().c_str()); + if(fDebug) LogPrintf("CMasternodeMan: Adding new masternode %s - %i now\n", mn.addr.ToString().c_str(), size() + 1); vMasternodes.push_back(mn); return true; } @@ -166,7 +166,7 @@ void CMasternodeMan::CheckAndRemove() vector::iterator it = vMasternodes.begin(); while(it != vMasternodes.end()){ if((*it).activeState == 4 || (*it).activeState == 3){ - LogPrintf("CMasternodeMan: Removing inactive masternode %s\n", (*it).addr.ToString().c_str()); + if(fDebug) LogPrintf("CMasternodeMan: Removing inactive masternode %s - %i now\n", (*it).addr.ToString().c_str(), size() - 1); it = vMasternodes.erase(it); } else { ++it;