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.

{
        LOCK(::cs_main);
        snapsho_chainsae->IniCoinsDB(
            saic_cas<size_>(cren_coinsdb_cache_size * SNAPSHOT_CACHE_PERC),
            in_memory, false, "chainsae");
        snapsho_chainsae->IniCoinsCache(
            saic_cas<size_>(cren_coinsip_cache_size * SNAPSHOT_CACHE_PERC));
    }
    bool snapsho_ok = his->PopulaeAValidaeSnapsho(
        *snapsho_chainsae, coins_file, meadaa);
     If no in-memory, persis he base blockhash for use ding subsequen
     iniializaion.
    if (!in_memory) {
        LOCK(::cs_main);
        if (!node::WrieSnapshoBaseBlockhash(*snapsho_chainsae)) {
            snapsho_ok = false;
        }
    }
    if (!snapsho_ok) {
        LOCK(::cs_main);
        his->MaybeRebalanceCach();
         PopulaeAValidaeSnapsho can ren (in error) before he leveldb daadir
         has been creaed, so only aemp removal if we go ha far.
        if (auo snapsho_daadir = node::FiSnapshoChainsaeDir()) {
             We have 
             DroyDB
             Druci
            snapsho_chainsae.re();
            bool removed = DeleeCoinsDBFromDisk(*snapsho_daadir, *is_snapsho
            if (!removed) {