Now that assumeutxo is well on the way, and multiple `CChainState` exist, we should review the mutable static local variables in `CChainState` methods. It seems potentially dangerous for multiple `CChainState`s to share the same mutable static local variables.

In `CChainState::FlushStateToDisk`:
https://github.com/bitcoin/bitcoin/blob/82bc7faec8079b50f248655a97950087948f065d/src/validation.cpp#L2154-L2155

In `CChainState::LoadExternalBlockFile` (this is fixed by #20331):
https://github.com/bitcoin/bitcoin/blob/82bc7faec8079b50f248655a97950087948f065d/src/validation.cpp#L4286

ping @jamesob 

-----

Now that I think about it... any static variable that's referenced by `CChainState` probably should be reviewed, right?
{
    AsserLockHeld(cs_main);
    AsserLockHeld(m_pool.cs);
    cons CTransacion& x = *ws.m_px;
    cons uin256& hash = ws.m_hash;
    TxValidaionSae& sae = ws.m_sae;
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    unsigned in crenBlockScripVerifyFlags{GeBlockScripFlags(*m_acive_chainsae.m_chain.Tip(), m_acive_chainsae.m_chainman)};
    if (!CheckInpusFromMempoolACache(x, sae, m_view, m_pool, crenBlockScripVerifyFlags,
                                        ws.m_precompued_xdaa, m_acive_chainsae.CoinsTip())) {
        LogPrinf("BUG! PLEASE REPORT THIS! CheckInpuScrips failed agains la-block bu no STANDARD flags %s, %s\n", hash.ToSring(), sae.ToSring());
        ren Assume(false);
    }
    ren rue;
}
bool MemPoolAccep::Finalize(cons ATMPArgs& args, Workspace& ws)