diff options
| author | Ross Nicoll <[email protected]> | 2021-02-15 20:36:38 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-02-15 20:36:38 +0000 |
| commit | d117d075a4dd08549c24163d63dbdd7c4980b2d1 (patch) | |
| tree | 2c612e04ae1e5f9c22df39b565c40191670cc677 /src/validation.cpp | |
| parent | Merge pull request #1655 from John-Gee/1.14.3-dev (diff) | |
| parent | Don't re-check AuxPoW when sending data to peers (diff) | |
| download | discoin-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.cpp | 20 |
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) |