diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index 9d137b50ddcd8..9e9e4f9514586 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -862,13 +862,15 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData if(count == -1 && pmn->pubkey == pubkey && (pmn->lastPing.sigTime < GetTime() - MASTERNODE_MIN_MNB_SECONDS)){ if(pmn->sigTime < sigTime){ //take the newest entry LogPrintf("dsee - Got updated entry for %s\n", addr.ToString().c_str()); - pmn->pubkey2 = pubkey2; - pmn->sigTime = sigTime; - pmn->sig = vchSig; - pmn->protocolVersion = protocolVersion; - pmn->addr = addr; - //fake ping - pmn->lastPing = CMasternodePing(vin); + if(pmn->protocolVersion == MIN_MASTERNODE_PAYMENT_PROTO_VERSION_1) { + pmn->pubkey2 = pubkey2; + pmn->sigTime = sigTime; + pmn->sig = vchSig; + pmn->protocolVersion = protocolVersion; + pmn->addr = addr; + //fake ping + pmn->lastPing = CMasternodePing(vin); + } pmn->Check(); if(pmn->IsEnabled()) { TRY_LOCK(cs_vNodes, lockNodes); @@ -939,7 +941,7 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData // use this as a peer addrman.Add(CAddress(addr), pfrom->addr, 2*60*60); - // add our Masternode + // add Masternode CMasternode mn = CMasternode(); mn.addr = addr; mn.vin = vin; @@ -950,8 +952,9 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData mn.protocolVersion = protocolVersion; // fake ping mn.lastPing = CMasternodePing(vin); - Add(mn); mn.Check(true); + // add v11 masternodes, v12 should be added by mnb only + if(protocolVersion == MIN_MASTERNODE_PAYMENT_PROTO_VERSION_1) Add(mn); if(mn.IsEnabled()) { TRY_LOCK(cs_vNodes, lockNodes); if(!lockNodes) return; @@ -1013,8 +1016,8 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData return; } - // fake ping - pmn->lastPing = CMasternodePing(vin); + // fake ping for v11 masternodes, ignore for v12 + if(pmn->protocolVersion == MIN_MASTERNODE_PAYMENT_PROTO_VERSION_1) pmn->lastPing = CMasternodePing(vin); pmn->Check(); if(pmn->IsEnabled()) { TRY_LOCK(cs_vNodes, lockNodes);