|
|
|
@ -1356,7 +1356,7 @@ bool CTransaction::CheckInputs(CCoinsViewCache &inputs, enum CheckSig_mode csmod
@@ -1356,7 +1356,7 @@ bool CTransaction::CheckInputs(CCoinsViewCache &inputs, enum CheckSig_mode csmod
|
|
|
|
|
// Helps prevent CPU exhaustion attacks.
|
|
|
|
|
|
|
|
|
|
// Skip ECDSA signature verification when connecting blocks
|
|
|
|
|
// before the last blockchain checkpoint. This is safe because block merkle hashes are
|
|
|
|
|
// before the last block chain checkpoint. This is safe because block merkle hashes are
|
|
|
|
|
// still computed and checked, and any change will be caught at the next checkpoint.
|
|
|
|
|
if (csmode == CS_ALWAYS || |
|
|
|
|
(csmode == CS_AFTER_CHECKPOINT && inputs.GetBestBlock()->nHeight >= Checkpoints::GetTotalBlocksEstimate())) { |
|
|
|
@ -1620,7 +1620,7 @@ bool CBlock::ConnectBlock(CBlockIndex* pindex, CCoinsViewCache &view, bool fJust
@@ -1620,7 +1620,7 @@ bool CBlock::ConnectBlock(CBlockIndex* pindex, CCoinsViewCache &view, bool fJust
|
|
|
|
|
return error("ConnectBlock() : WriteBlockIndex failed"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// add this block to the view's blockchain
|
|
|
|
|
// add this block to the view's block chain
|
|
|
|
|
if (!view.SetBestBlock(pindex)) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|