1. Файл main.cpp, метод bool CBlock::CheckBlock:
// Check timestamp
if (GetBlockTime() > GetAdjustedTime() + 2 * 60 * 60)
return state.Invalid(error("CheckBlock() : block timestamp too far in the future"));
Т.е. блоки с меткой времени больше чем на 2 часа в будущем будут отброшены.
2. Файл тот же, метод bool CBlock::AcceptBlock:
if (hash != hashGenesisBlock) {
map::iterator mi = mapBlockIndex.find(hashPrevBlock);
if (mi == mapBlockIndex.end())
return state.DoS(10, error("AcceptBlock() : prev block not found"));
Если пул удержит блок и выпустит новый, а хэш предыдущего блока будет указывать на удержанный, то остальные ноды не будут его искать, а лишь увидят, что удержанного блока у них нет - новый попросту будет отброшен.