Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 4 additions & 6 deletions src/budget/budgetmanager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1074,7 +1074,8 @@ bool CBudgetManager::ProcessProposalVote(CBudgetVote& vote, CNode* pfrom, CValid
CMasternode* pmn = mnodeman.Find(voteVin.prevout);
if (!pmn) {
err = strprintf("unknown masternode - vin: %s", voteVin.prevout.ToString());
mnodeman.AskForMN(pfrom, voteVin);
// Ask for MN only if we finished syncing the MN list.
if (pfrom && masternodeSync.IsMasternodeListSynced()) mnodeman.AskForMN(pfrom, voteVin);
return state.DoS(0, false, REJECT_INVALID, "bad-mvote", false, err);
}

Expand All @@ -1085,8 +1086,6 @@ bool CBudgetManager::ProcessProposalVote(CBudgetVote& vote, CNode* pfrom, CValid
err = strprintf("signature from masternode %s invalid", voteVin.prevout.ToString());
return state.DoS(20, false, REJECT_INVALID, "bad-fbvote", false, err);
}
// it could just be a non-synced masternode
mnodeman.AskForMN(pfrom, voteVin);
return false;
}

Expand Down Expand Up @@ -1175,7 +1174,8 @@ bool CBudgetManager::ProcessFinalizedBudgetVote(CFinalizedBudgetVote& vote, CNod
CMasternode* pmn = mnodeman.Find(voteVin.prevout);
if (!pmn) {
err = strprintf("unknown masternode - vin: %s", voteVin.prevout.ToString());
mnodeman.AskForMN(pfrom, voteVin);
// Ask for MN only if we finished syncing the MN list.
if (pfrom && masternodeSync.IsMasternodeListSynced()) mnodeman.AskForMN(pfrom, voteVin);
return state.DoS(0, false, REJECT_INVALID, "bad-fbvote", false, err);
}

Expand All @@ -1186,8 +1186,6 @@ bool CBudgetManager::ProcessFinalizedBudgetVote(CFinalizedBudgetVote& vote, CNod
err = strprintf("signature from masternode %s invalid", voteVin.prevout.ToString());
return state.DoS(20, false, REJECT_INVALID, "bad-fbvote", false, err);
}
// it could just be a non-synced masternode
mnodeman.AskForMN(pfrom, voteVin);
return false;
}

Expand Down
2 changes: 1 addition & 1 deletion src/masternode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ bool CMasternodeBroadcast::CheckAndUpdate(int& nDos)
if (!CheckSignature()) {
// For now (till v6.0), let's be "naive" and not fully ban nodes when the node is syncing
// This could be a bad parsed BIP155 address that got stored on db on an old software version.
nDos = masternodeSync.IsSynced() ? 100 : 10;
nDos = masternodeSync.IsSynced() ? 100 : 5;
return error("%s : Got bad Masternode address signature", __func__);
}

Expand Down