[validation] Cache merkle root and witness commitment checks

Slight performance improvement by avoiding duplicate work.
This commit is contained in:
dergoegge
2024-02-06 10:07:18 +00:00
parent 5bf4f5ba32
commit 1ec6bbeb8d
2 changed files with 12 additions and 2 deletions

View File

@@ -71,8 +71,10 @@ public:
// network and disk
std::vector<CTransactionRef> vtx;
// memory only
mutable bool fChecked;
// Memory-only flags for caching expensive checks
mutable bool fChecked; // CheckBlock()
mutable bool m_checked_witness_commitment{false}; // CheckWitnessCommitment()
mutable bool m_checked_merkle_root{false}; // CheckMerkleRoot()
CBlock()
{
@@ -95,6 +97,8 @@ public:
CBlockHeader::SetNull();
vtx.clear();
fChecked = false;
m_checked_witness_commitment = false;
m_checked_merkle_root = false;
}
CBlockHeader GetBlockHeader() const