Merge pull request #1695 from sipa/noloadorphan
Do not accept orphan blocks in -loadblock mode
This commit is contained in:
commit
1a3dcca8f4
1 changed files with 9 additions and 6 deletions
15
src/main.cpp
15
src/main.cpp
|
@ -1920,17 +1920,20 @@ bool ProcessBlock(CNode* pfrom, CBlock* pblock)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// If don't already have its previous block, shunt it off to holding area until we get it
|
// If we don't already have its previous block, shunt it off to holding area until we get it
|
||||||
if (!mapBlockIndex.count(pblock->hashPrevBlock))
|
if (!mapBlockIndex.count(pblock->hashPrevBlock))
|
||||||
{
|
{
|
||||||
printf("ProcessBlock: ORPHAN BLOCK, prev=%s\n", pblock->hashPrevBlock.ToString().substr(0,20).c_str());
|
printf("ProcessBlock: ORPHAN BLOCK, prev=%s\n", pblock->hashPrevBlock.ToString().substr(0,20).c_str());
|
||||||
CBlock* pblock2 = new CBlock(*pblock);
|
|
||||||
mapOrphanBlocks.insert(make_pair(hash, pblock2));
|
|
||||||
mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrevBlock, pblock2));
|
|
||||||
|
|
||||||
// Ask this guy to fill in what we're missing
|
// Accept orphans as long as there is a node to request its parents from
|
||||||
if (pfrom)
|
if (pfrom) {
|
||||||
|
CBlock* pblock2 = new CBlock(*pblock);
|
||||||
|
mapOrphanBlocks.insert(make_pair(hash, pblock2));
|
||||||
|
mapOrphanBlocksByPrev.insert(make_pair(pblock2->hashPrevBlock, pblock2));
|
||||||
|
|
||||||
|
// Ask this guy to fill in what we're missing
|
||||||
pfrom->PushGetBlocks(pindexBest, GetOrphanRoot(pblock2));
|
pfrom->PushGetBlocks(pindexBest, GetOrphanRoot(pblock2));
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue