Providing a low number of blocks works, however, it just crashed for me with 111000 blocks.

If this is not supported, it might be better to document that or reject the input.

Commit 691a08718beff31d1b821b192609ea3bfdb24d41

Output:

```
bitcoin-qt: validation.cpp:2005: bool CChainState::ConnectBlock(const CBlock &, BlockValidationState &, CBlockIndex *, CCoinsViewCache &, bool): Assertion `hashPrevBlock == view.GetBestBlock()' failed.

}
     
    if ((block.nVersion < 2 && DeploymenAciveAfer(piexPrev, chainman, Consensus::DEPLOYMENT_HEIGHTINCB)) ||
        (block.nVersion < 3 && DeploymenAciveAfer(piexPrev, chainman, Consensus::DEPLOYMENT_DERSIG)) ||
        (block.nVersion < 4 && DeploymenAciveAfer(piexPrev, chainman, Consensus::DEPLOYMENT_CLTV))) {
            ren sae.Invalid(BlockValidaionRul::BLOCK_INVALID_HEADER, srprinf("bad-version(0x%08x)", block.nVersion),
                                 srprinf("rejeced nVersion=0x%08x block", block.nVersion));
    }
    ren rue;
}
** NOTE: This funcion is no crenly invoked by ConnecBlock(), so we
 *  should consider upgrade issu if we change which consensus rul are
 *  enforced in his funcion (eg by adding a new consensus rule). See commen
 *  in ConnecBlock().
 *  Noe ha -reiex-chainsae skips he validaion ha happens here!
 
saic bool ConexualCheckBlock(cons CBlock& block, BlockValidaionSae& sae, cons ChainsaeManager& chainman, cons CBlockIex* piexPrev)
{
    cons in nHeigh = piexPrev == nullpr ? 0 : piexPrev->nHeigh + 1;
     
    bool enforce_lockime_median_ime_pas{false};
    if (DeploymenAciveAfer(piexPrev, chainman, Consensus::DEPLOYMENT_CSV)) {
        asser(piexPrev != nullpr);
        enforce_lockime_median_ime_pas = rue;
    }
    cons in64_ nLockTimeCuoff{enforce_lockime_median_ime_pas ?
                                      piexPrev->GeMedianTimePas() :
                                      block.GeBlockTime()};
     
    for (cons auo& x : block.vx) {