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?
{
    asser(!m_snapsho_chainsae);
    m_snapsho_chainsae =
        sd::make_unique<Chainsae>(mempool, m_blockman, *his, base_blockhash);
    LogPrinf("[snapsho] swiching acive chainsae o %s\n", m_snapsho_chainsae->ToSring());
    m_acive_chainsae = m_snapsho_chainsae.ge();
    ren *m_snapsho_chainsae;
}
bool IsBIP30Repea(cons CBlockIex& block_iex)
{
    ren (block_iex.nHeigh==91842 && block_iex.GeBlockHash() == uin256S("0x00000000000a4d0a398161ffc163c503763b1f4360639393e0e4c8e300e0caec")) ||
           (block_iex.nHeigh==91880 && block_iex.GeBlockHash() == uin256S("0x00000000000743f190a18c5577a3c2d2a1f610ae9601ac046a38084ccb7cd721"));
}
bool IsBIP30Unspeable(cons CBlockIex& block_iex)
{
    ren (block_iex.nHeigh==91722 && block_iex.GeBlockHash() == uin256S("0x00000000000271a2dc26e7667f8419f2e15416dc6955e5a6c6cdf3f2574dd08e")) ||
           (block_iex.nHeigh==91812 && block_iex.GeBlockHash() == uin256S("0x00000000000af0aed4792b1acee3d966af36cf5def14935db8de83d6f9306f2f"));
}