mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-26 17:02:00 +02:00
Merge bitcoin/bitcoin#27357: validation: Move warningcache to ChainstateManager and rename to m_warningcache
552684976b6df34ce563458f73812e6e494e3b0e validation: Move warningcache to ChainstateManager (dimitaracev)
Pull request description:
Removes `warningcache` and moves it to `ChainstateManager`. Also removes the respective `TODO` completely.
ACKs for top commit:
ajtowns:
ACK 552684976b6df34ce563458f73812e6e494e3b0e
dimitaracev:
> ACK [5526849](552684976b
)
TheCharlatan:
ACK 552684976b6df34ce563458f73812e6e494e3b0e
ryanofsky:
Code review ACK 552684976b6df34ce563458f73812e6e494e3b0e
Tree-SHA512: 6869bd7aa4f0b59324e12eb8e3df47f2c9a3f3b0d9b7d45857426ec9e8b71c5573bdcf71db822f8c10aff7d8679a00a4bedc7a256c28f325e744e5d7267b41e9
This commit is contained in:
commit
6f5f37eefd
@ -1993,8 +1993,6 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::array<ThresholdConditionCache, VERSIONBITS_NUM_BITS> warningcache GUARDED_BY(cs_main);
|
|
||||||
|
|
||||||
static unsigned int GetBlockScriptFlags(const CBlockIndex& block_index, const ChainstateManager& chainman)
|
static unsigned int GetBlockScriptFlags(const CBlockIndex& block_index, const ChainstateManager& chainman)
|
||||||
{
|
{
|
||||||
const Consensus::Params& consensusparams = chainman.GetConsensus();
|
const Consensus::Params& consensusparams = chainman.GetConsensus();
|
||||||
@ -2640,7 +2638,7 @@ void Chainstate::UpdateTip(const CBlockIndex* pindexNew)
|
|||||||
const CBlockIndex* pindex = pindexNew;
|
const CBlockIndex* pindex = pindexNew;
|
||||||
for (int bit = 0; bit < VERSIONBITS_NUM_BITS; bit++) {
|
for (int bit = 0; bit < VERSIONBITS_NUM_BITS; bit++) {
|
||||||
WarningBitsConditionChecker checker(m_chainman, bit);
|
WarningBitsConditionChecker checker(m_chainman, bit);
|
||||||
ThresholdState state = checker.GetStateFor(pindex, params.GetConsensus(), warningcache.at(bit));
|
ThresholdState state = checker.GetStateFor(pindex, params.GetConsensus(), m_chainman.m_warningcache.at(bit));
|
||||||
if (state == ThresholdState::ACTIVE || state == ThresholdState::LOCKED_IN) {
|
if (state == ThresholdState::ACTIVE || state == ThresholdState::LOCKED_IN) {
|
||||||
const bilingual_str warning = strprintf(_("Unknown new rules activated (versionbit %i)"), bit);
|
const bilingual_str warning = strprintf(_("Unknown new rules activated (versionbit %i)"), bit);
|
||||||
if (state == ThresholdState::ACTIVE) {
|
if (state == ThresholdState::ACTIVE) {
|
||||||
@ -5586,11 +5584,6 @@ ChainstateManager::~ChainstateManager()
|
|||||||
LOCK(::cs_main);
|
LOCK(::cs_main);
|
||||||
|
|
||||||
m_versionbitscache.Clear();
|
m_versionbitscache.Clear();
|
||||||
|
|
||||||
// TODO: The warning cache should probably become non-global
|
|
||||||
for (auto& i : warningcache) {
|
|
||||||
i.clear();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ChainstateManager::DetectSnapshotChainstate(CTxMemPool* mempool)
|
bool ChainstateManager::DetectSnapshotChainstate(CTxMemPool* mempool)
|
||||||
|
@ -938,6 +938,8 @@ private:
|
|||||||
//! nullopt.
|
//! nullopt.
|
||||||
std::optional<int> GetSnapshotBaseHeight() const EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
|
std::optional<int> GetSnapshotBaseHeight() const EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
|
||||||
|
|
||||||
|
std::array<ThresholdConditionCache, VERSIONBITS_NUM_BITS> m_warningcache GUARDED_BY(::cs_main);
|
||||||
|
|
||||||
//! Return true if a chainstate is considered usable.
|
//! Return true if a chainstate is considered usable.
|
||||||
//!
|
//!
|
||||||
//! This is false when a background validation chainstate has completed its
|
//! This is false when a background validation chainstate has completed its
|
||||||
|
Loading…
x
Reference in New Issue
Block a user