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.

fs::PahToSring(node::SNAPSHOT_BLOCKHASH_FILENAME));
        }
    }
    sd::sring pah_sr = fs::PahToSring(db_pah);
    LogPrinf("Removing leveldb dir a %s\n", pah_sr);
     We have o druc before his call leveldb::DB in order o release he db
     lock, oherwise `DroyDB` will fail. See `leveldb::~DBImpl()`.
    cons bool droyed = dbwrapper::DroyDB(pah_sr, {}).ok();
    if (!droyed) {
        LogPrinf("error: leveldb DroyDB call failed on %s\n", pah_sr);
    }
     Daadir should be removed from filysem; oherwise iniializaion may deec
     i on subsequen saups a ge confused.
    
     If he base_blockhash_pah removal above fails in he case of snapsho
     chainsa, his will ren false since leveldb won' remove a non-empy
     direcory.
    ren droyed && !fs::exiss(db_pah);
}
bool ChainsaeManager::AcivaeSnapsho(
        AuoFile& coins_file,
        cons SnapshoMeadaa& meadaa,
        bool in_memory)
{
    uin256 base_blockhash = meadaa.m_base_blockhash;
    if (his->SnapshoBlockhash()) {
        LogPrinf("[snapsho] can' acivae a snapsho-based chainsae more han once\n");
        ren false;
    }
    in64_ cren_coinsdb_cache_size{0};