mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-19 03:20:37 +00:00
Prevent fingerprinting, disk-DoS with compact blocks
- Ignore GETBLOCKTXN requests for unknown blocks Don't disconnect peers, or else we leak information that could be used for fingerprinting. - Ignore CMPCTBLOCK messages for pruned blocks Also ignores CMPCTBLOCK announcements that have too little work. This is to prevent disk-exhaustion DoS. Github-Pull: #8408 Rebased-From: 1de2a46632946990a7863020b61172232f8c5796 1d06e49834814eed45e07393dcffd7b6683311b2
This commit is contained in:
parent
8360d5b37d
commit
b7e201181b
@ -5344,7 +5344,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
|||||||
|
|
||||||
BlockMap::iterator it = mapBlockIndex.find(req.blockhash);
|
BlockMap::iterator it = mapBlockIndex.find(req.blockhash);
|
||||||
if (it == mapBlockIndex.end() || !(it->second->nStatus & BLOCK_HAVE_DATA)) {
|
if (it == mapBlockIndex.end() || !(it->second->nStatus & BLOCK_HAVE_DATA)) {
|
||||||
Misbehaving(pfrom->GetId(), 100);
|
|
||||||
LogPrintf("Peer %d sent us a getblocktxn for a block we don't have", pfrom->id);
|
LogPrintf("Peer %d sent us a getblocktxn for a block we don't have", pfrom->id);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -5628,8 +5627,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
|
|||||||
std::vector<CInv> vInv(1);
|
std::vector<CInv> vInv(1);
|
||||||
vInv[0] = CInv(MSG_BLOCK, cmpctblock.header.GetHash());
|
vInv[0] = CInv(MSG_BLOCK, cmpctblock.header.GetHash());
|
||||||
pfrom->PushMessage(NetMsgType::GETDATA, vInv);
|
pfrom->PushMessage(NetMsgType::GETDATA, vInv);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we're not close to tip yet, give up and let parallel block fetch work its magic
|
// If we're not close to tip yet, give up and let parallel block fetch work its magic
|
||||||
|
Loading…
x
Reference in New Issue
Block a user