From 0dd5a72921f4fff406bc32b79d71d06a89172fbe Mon Sep 17 00:00:00 2001 From: backpacker69 Date: Tue, 9 Apr 2019 15:38:48 +0300 Subject: [PATCH] fix logic error with signing/checking blocks --- src/rpc/mining.cpp | 2 +- src/validation.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index 0c67e628fbb..9834028cd48 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -731,7 +731,7 @@ UniValue submitblock(const JSONRPCRequest& request) // peercoin: sign block // rfc6: sign proof of stake blocks only after 0.8 fork - if ((block.IsProofOfStake() || IsBTC16BIPsEnabled(block.GetBlockTime())) && !SignBlock(block, *pwallet)) + if ((block.IsProofOfStake() || !IsBTC16BIPsEnabled(block.GetBlockTime())) && !SignBlock(block, *pwallet)) throw JSONRPCError(-100, "Unable to sign block, wallet locked?"); { diff --git a/src/validation.cpp b/src/validation.cpp index 49436b52f0e..733a38a7a08 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -2933,7 +2933,7 @@ bool CheckBlock(const CBlock& block, CValidationState& state, const Consensus::P // peercoin: check block signature // Only check block signature if check merkle root, c.f. commit 3cd01fdf // rfc6: validate signatures of proof of stake blocks only after 0.8 fork - if (fCheckMerkleRoot && (block.IsProofOfStake() || IsBTC16BIPsEnabled(block.GetBlockTime())) && !CheckBlockSignature(block)) + if (fCheckMerkleRoot && (block.IsProofOfStake() || !IsBTC16BIPsEnabled(block.GetBlockTime())) && !CheckBlockSignature(block)) return state.DoS(100, false, REJECT_INVALID, "bad-blk-sign", false, strprintf("%s : bad block signature", __func__)); return true;