From e139f822c0ce224199682781c91ca75a793bdc42 Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 15 Jun 2013 17:32:01 +0400 Subject: [PATCH] Remove block signature for proof-of-work blocks since 20 Sep 2013 --- src/main.cpp | 9 ++++++--- src/rpcmining.cpp | 21 +++++++++++++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 20a01f1..a0a2509 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2144,9 +2144,12 @@ bool CBlock::CheckBlock(bool fCheckPOW, bool fCheckMerkleRoot) const if (fCheckMerkleRoot && hashMerkleRoot != BuildMerkleTree()) return DoS(100, error("CheckBlock() : hashMerkleRoot mismatch")); - // ppcoin: check block signature - if (!CheckBlockSignature()) - return DoS(100, error("CheckBlock() : bad block signature")); + // NovaCoin: check proof-of-stake block signature + if (IsProofOfStake() || (!fTestNet && GetBlockTime() < CHAINCHECKS_SWITCH_TIME)) + { + if (!CheckBlockSignature()) + return DoS(100, error("CheckBlock() : bad block signature")); + } return true; } diff --git a/src/rpcmining.cpp b/src/rpcmining.cpp index 103b933..a8022fc 100644 --- a/src/rpcmining.cpp +++ b/src/rpcmining.cpp @@ -204,8 +204,11 @@ Value getworkex(const Array& params, bool fHelp) pblock->hashMerkleRoot = pblock->BuildMerkleTree(); - if (!pblock->SignBlock(*pwalletMain)) - throw JSONRPCError(-100, "Unable to sign block, wallet locked?"); + if (!fTestNet && pblock->GetBlockTime() < CHAINCHECKS_SWITCH_TIME) + { + if (!pblock->SignBlock(*pwalletMain)) + throw JSONRPCError(-100, "Unable to sign block, wallet locked?"); + } return CheckWork(pblock, *pwalletMain, reservekey); } @@ -320,8 +323,11 @@ Value getwork(const Array& params, bool fHelp) pblock->vtx[0].vin[0].scriptSig = mapNewBlock[pdata->hashMerkleRoot].second; pblock->hashMerkleRoot = pblock->BuildMerkleTree(); - if (!pblock->SignBlock(*pwalletMain)) - throw JSONRPCError(-100, "Unable to sign block, wallet locked?"); + if (!fTestNet && pblock->GetBlockTime() < CHAINCHECKS_SWITCH_TIME) + { + if (!pblock->SignBlock(*pwalletMain)) + throw JSONRPCError(-100, "Unable to sign block, wallet locked?"); + } return CheckWork(pblock, *pwalletMain, reservekey); } @@ -504,8 +510,11 @@ Value submitblock(const Array& params, bool fHelp) throw JSONRPCError(RPC_DESERIALIZATION_ERROR, "Block decode failed"); } - if (!block.SignBlock(*pwalletMain)) - throw JSONRPCError(-100, "Unable to sign block, wallet locked?"); + if (!fTestNet && block.GetBlockTime() < CHAINCHECKS_SWITCH_TIME) + { + if (!block.SignBlock(*pwalletMain)) + throw JSONRPCError(-100, "Unable to sign block, wallet locked?"); + } bool fAccepted = ProcessBlock(NULL, &block); if (!fAccepted) -- 1.7.1