> validation: insert assumed-valid block index entries into candidates
https://github.com/bitcoin/bitcoin/pull/21526/commits/5a807736dacfc3e6fa57231219336acf08be38fb
----
> validation: have LoadBlockIndex account for snapshot use
>
> Ensure that blocks past the snapshot base block (i.e. the end of the
> assumed-valid region of the chain) are not included in
> setBlockIndexCandidates for the background validation chainstate. These
> blocks, while fully validated and lacking the BLOCK_ASSUMED_VALID flag,
> *rely* on blocks which are assumed-valid, and so shouldn't be added to
> the IBD chainstate.
>
> Co-authored-by: Russ Yanofsky <russ@yanofsky.org>
https://github.com/bitcoin/bitcoin/pull/23174/commits/0fd599a51a700c028d6f7ed8067d2d9f6e6a04a5
----
> test: add tests for LoadBlockIndex when using multiple chainstates
>
> Incorporates feedback from Russ Yanofsky.
https://github.com/bitcoin/bitcoin/pull/23174/commits/2283b9cd1ee0fbd1e8ebc61673b1fe7596199a24
----
This is a partial backport of core#21526 and core#23174
Notes:
- See D6308 for `CBlockIndex::UpdateChainStats()`.
- See D8319 for why I have to upgrade the block dabase in setup_common.cpp to make the test work.