aboutsummaryrefslogtreecommitdiff
path: root/src/validation.cpp
diff options
context:
space:
mode:
authorRoss Nicoll <[email protected]>2021-02-15 20:36:38 +0000
committerGitHub <[email protected]>2021-02-15 20:36:38 +0000
commitd117d075a4dd08549c24163d63dbdd7c4980b2d1 (patch)
tree2c612e04ae1e5f9c22df39b565c40191670cc677 /src/validation.cpp
parentMerge pull request #1655 from John-Gee/1.14.3-dev (diff)
parentDon't re-check AuxPoW when sending data to peers (diff)
downloaddiscoin-d117d075a4dd08549c24163d63dbdd7c4980b2d1.tar.xz
discoin-d117d075a4dd08549c24163d63dbdd7c4980b2d1.zip
Merge pull request #1676 from shibe2/skipcheckpow
Don't recompute AuxPoW when serving peer requests
Diffstat (limited to 'src/validation.cpp')
-rw-r--r--src/validation.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/validation.cpp b/src/validation.cpp
index 629442637..c21c78467 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -1147,7 +1147,7 @@ bool WriteBlockToDisk(const CBlock& block, CDiskBlockPos& pos, const CMessageHea
both a block and its header. */
template<typename T>
-static bool ReadBlockOrHeader(T& block, const CDiskBlockPos& pos, const Consensus::Params& consensusParams)
+static bool ReadBlockOrHeader(T& block, const CDiskBlockPos& pos, const Consensus::Params& consensusParams, bool fCheckPOW)
{
block.SetNull();
@@ -1165,16 +1165,16 @@ static bool ReadBlockOrHeader(T& block, const CDiskBlockPos& pos, const Consensu
}
// Check the header
- if (!CheckAuxPowProofOfWork(block, consensusParams))
+ if (fCheckPOW && !CheckAuxPowProofOfWork(block, consensusParams))
return error("ReadBlockFromDisk: Errors in block header at %s", pos.ToString());
return true;
}
template<typename T>
-static bool ReadBlockOrHeader(T& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams)
+static bool ReadBlockOrHeader(T& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams, bool fCheckPOW)
{
- if (!ReadBlockOrHeader(block, pindex->GetBlockPos(), consensusParams))
+ if (!ReadBlockOrHeader(block, pindex->GetBlockPos(), consensusParams, fCheckPOW))
return false;
if (block.GetHash() != pindex->GetBlockHash())
return error("ReadBlockOrHeader(CBlock&, CBlockIndex*): GetHash() doesn't match index for %s at %s",
@@ -1182,19 +1182,19 @@ static bool ReadBlockOrHeader(T& block, const CBlockIndex* pindex, const Consens
return true;
}
-bool ReadBlockFromDisk(CBlock& block, const CDiskBlockPos& pos, const Consensus::Params& consensusParams)
+bool ReadBlockFromDisk(CBlock& block, const CDiskBlockPos& pos, const Consensus::Params& consensusParams, bool fCheckPOW)
{
- return ReadBlockOrHeader(block, pos, consensusParams);
+ return ReadBlockOrHeader(block, pos, consensusParams, fCheckPOW);
}
-bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams)
+bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams, bool fCheckPOW)
{
- return ReadBlockOrHeader(block, pindex, consensusParams);
+ return ReadBlockOrHeader(block, pindex, consensusParams, fCheckPOW);
}
-bool ReadBlockHeaderFromDisk(CBlockHeader& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams)
+bool ReadBlockHeaderFromDisk(CBlockHeader& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams, bool fCheckPOW)
{
- return ReadBlockOrHeader(block, pindex, consensusParams);
+ return ReadBlockOrHeader(block, pindex, consensusParams, fCheckPOW);
}
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)