Auto merge of #1603 - str4d:1556-reject-old-block-versions, r=daira

Reject block versions lower than 4

Includes parts of #1554
Closes #1556
This commit is contained in:
zkbot
2016-10-22 14:32:40 -04:00
9 changed files with 202 additions and 150 deletions

View File

@@ -854,7 +854,7 @@ bool CheckTransactionWithoutProofVerification(const CTransaction& tx, CValidatio
// Check transaction version
if (tx.nVersion < MIN_TX_VERSION) {
return state.DoS(100, error("CheckTransaction(): version too low"),
REJECT_INVALID, "bad-version-too-low");
REJECT_INVALID, "bad-txns-version-too-low");
}
// Transactions can contain empty `vin` and `vout` so long as
@@ -2940,6 +2940,11 @@ bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, unsigne
bool CheckBlockHeader(const CBlockHeader& block, CValidationState& state, bool fCheckPOW)
{
// Check block version
if (block.nVersion < MIN_BLOCK_VERSION)
return state.DoS(100, error("CheckBlockHeader(): block version too low"),
REJECT_INVALID, "version-too-low");
// Check Equihash solution is valid
if (fCheckPOW && !CheckEquihashSolution(&block, Params()))
return state.DoS(100, error("CheckBlockHeader(): Equihash solution invalid"),