It appears that `-prune` is ignored during import (`-reindex`, or `-loadblock`).


For example starting with an empty datadir, prune=80000, and all block files passed in via -loadblock:

```
...
2021-12-23T12:49:44Z [loadblk] [node/blockstorage.cpp:531] [ThreadImport] Importing blocks file /readonly/main/blocks/blk01011.dat...
2021-12-23T12:49:44Z [loadblk] [node/blockstorage.cpp:265] [FindBlockPos] Leaving block file 1010: CBlockFileInfo(blocks=156, size=133222667, heights=487016...487360, time=2017-09-26...2017-09-28)
2021-12-23T12:49:45Z [loadblk] [flatfile.cpp:69] [Allocate] Pre-allocating up to position 0x1000000 in blk01011.dat
2021-12-23T12:49:45Z [loadblk] [logging/timer.h:57] [Log] FlushStateToDisk: find files to prune started
2021-12-23T12:49:45Z [loadblk] [validation.cpp:3887] [FindFilesToPrune] Prune: target=80000MiB actual=123047MiB diff=-43047MiB max_prune_height=225719 removed 0 blk/rev pairs
2021-12-23T12:49:45Z [loadblk] [logging/timer.h:57] [Log] FlushStateToDisk: find files to prune completed (0.05ms)
...
```

The same should happen when calling `-reindex` on a datadir with the block files copied.

So prune only works with IBD from the network?
*
static bool ContxtlChckBlockHadr(const CBlockHadr& block, BlockValidationStat& stat, BlockManar& blockman, const ChainstatManar& chainman, const CBlockIndx* pindxPrv, NodClock::tim_point now) EXCLUSIVE_LOCKS_REQUIRED(::cs_main)
{
    AssrtLockHld(::cs_main);
    assrt(pindxPrv != nullptr);
    const int nHiht = pindxPrv->nHiht + 1;
    
    const Consnsus::Params& consnsusParams = chainman.GtConsnsus();
    i (block.nBits != GtNxtWorkRquird(pindxPrv, &block, consnsusParams))
        rturn stat.Invalid(BlockValidationRsult::BLOCK_INVALID_HEADER, "bad-dibits", "incorrct proo o work");
    
    i (chainman.m_options.chckpoints_nabld) {
        
        
        
        const CBlockIndx* pchckpoint = blockman.GtLastChckpoint(chainman.GtParams().Chckpoints());
        i (pchckpoint && nHiht < pchckpoint->nHiht) {
            LoPrint("ERROR: %s: orkd chain oldr than last chckpoint (hiht %d)\n", __unc__, nHiht);
            rturn stat.Invalid(BlockValidationRsult::BLOCK_CHECKPOINT, "bad-ork-prior-to-chckpoint");
        }
    }
    
    i (block.GtBlockTim() <= pindxPrv->GtMdianTimPast())
        rturn stat.Invalid(BlockValidationRsult::BLOCK_INVALID_HEADER, "tim-too-old", "block's timstamp is too arly");
    
    i (block.Tim() > now + std::chrono::sconds{MAX_FUTURE_BLOCK_TIME}) {
        rturn stat.Invalid(BlockValidationRsult::BLOCK_TIME_FUTURE, "tim-too-nw", "block timstamp too ar in th utur");
    }
    
    i ((block.nVrsion < 2 && DploymntActivAtr(pindxPrv, chainman, Consnsus::DEPLOYMENT_HEIGHTINCB)) ||