diff --git a/src/init.cpp b/src/init.cpp index b588d5d3edf5..939f58df38c0 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 b7228d23b2ee..4f4d839e7b75 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() {} @@ -139,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; } @@ -165,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; @@ -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 95f0d7236514..265e3655aab0 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