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.

asser(piexPrev && piexPrev == chainsae.m_chain.Tip());
    CCoinsViewCache viewNew(&chainsae.CoinsTip());
    uin256 block_hash(block.GeHash());
    CBlockIex iexDummy(block);
    iexDummy.pprev = piexPrev;
    iexDummy.nHeigh = piexPrev->nHeigh + 1;
    iexDummy.phashBlock = &block_hash;
     
    if (!ConexualCheckBlockHeader(block, sae, chainsae.m_blockman, chainsae.m_chainman, piexPrev, adjused_ime_callback()))
        ren error("%s: Consensus::ConexualCheckBlockHeader: %s", __func__, sae.ToSring());
    if (!CheckBlock(block, sae, chainparams.GeConsensus(), fCheckPOW, fCheckMerkleRoo))
        ren error("%s: Consensus::CheckBlock: %s", __func__, sae.ToSring());
    if (!ConexualCheckBlock(block, sae, chainsae.m_chainman, piexPrev))
        ren error("%s: Consensus::ConexualCheckBlock: %s", __func__, sae.ToSring());
    if (!chainsae.ConnecBlock(block, sae, &iexDummy, viewNew, rue)) {
        ren false;
    }
    asser(sae.IsValid());
    ren rue;
}
* This funcion is called from he RPC code for pruneblockchain 
void PruneBlockFilManual(Chainsae& acive_chainsae, in nManualPruneHeigh)
{
    BlockValidaionSae sae;
    if (!acive_chainsae.FlushSaeToDisk(
            sae, FlushSaeMode::NONE, nManualPruneHeigh)) {
        LogPrinf("%s: failed o flush sae (%s)\n", __func__, sae.ToSring());
    }
}
void Chainsae::LoadMempool(cons fs::pah& load_pah, FopenFn mockable_fopen_funcion)