Fix an issue where a block previously failing duplicate
proof-of-stake check was not asked for again
// Ask this guy to fill in what we're missing
if (pfrom)
+ {
pfrom->PushGetBlocks(pindexBest, GetOrphanRoot(pblock2));
+ // ppcoin: getblocks may not obtain the parent block rejected earlier
+ // by duplicate-stake check so we must ask for it again directly
+ if (!mapOrphanBlocks.count(pblock->hashPrevBlock))
+ pfrom->AskFor(CInv(MSG_BLOCK, pblock->hashPrevBlock));
+ }
return true;
}