From 0caab49550a3a7bbae53185d9d61a5f156f666f9 Mon Sep 17 00:00:00 2001 From: instagibbs Date: Thu, 12 May 2016 17:05:21 -0400 Subject: [PATCH] Don't DoS ban peers for possibly valid pegin blocks --- src/consensus/validation.h | 1 + src/validation.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/consensus/validation.h b/src/consensus/validation.h index 5a7d7f11a9..a501b378de 100644 --- a/src/consensus/validation.h +++ b/src/consensus/validation.h @@ -17,6 +17,7 @@ static const unsigned char REJECT_NONSTANDARD = 0x40; static const unsigned char REJECT_DUST = 0x41; static const unsigned char REJECT_INSUFFICIENTFEE = 0x42; static const unsigned char REJECT_CHECKPOINT = 0x43; +static const unsigned char REJECT_SCRIPT = 0x44; /** Capture information about block/transaction validation */ class CValidationState { diff --git a/src/validation.cpp b/src/validation.cpp index 64ba87c5d3..cb58ce3a1d 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2179,8 +2179,9 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin blockReward), REJECT_INVALID, "bad-cb-amount"); + //Don't DoS ban in case of RPC script check failure if (!control.Wait()) - return state.DoS(100, false); + return state.Invalid(false, REJECT_SCRIPT); int64_t nTime4 = GetTimeMicros(); nTimeVerify += nTime4 - nTime2; LogPrint("bench", " - Verify %u txins: %.2fms (%.3fms/txin) [%.2fs]\n", nInputs - 1, 0.001 * (nTime4 - nTime2), nInputs <= 1 ? 0 : 0.001 * (nTime4 - nTime2) / (nInputs-1), nTimeVerify * 0.000001);