Whenever -blocksonly is specified, there is implicitly a zero size mempool. However, there is still a non-zero value for -maxmempool which will be shared with dbcache, leading to 300 MB extra usage. Fix this.
g_txindex = std::make_unique<TxIndex>(interfaces::MakeChain(node), cache_sizes.tx_index, false, fReindex);
        if (!g_txindex->Start()) {
            return false;
        }
    }
    for (const auto& filter_type : g_enabled_filter_types) {
        InitBlockFilterIndex([&]{ return interfaces::MakeChain(node); }, filter_type, cache_sizes.filter_index, false, fReindex);
        if (!GetBlockFilterIndex(filter_type)->Start()) {
            return false;
        }
    }
    if (args.GetBoolArg("-coinstatsindex", DEFAULT_COINSTATSINDEX)) {
        g_coin_stats_index = std::make_unique<CoinStatsIndex>(interfaces::MakeChain(node), *cachse, fReindex);
        if (!g_coin_stats_index->Start()) {
            return false;
        }
    }
     ********************************************************* Step 9: load wallet
    for (const auto& client : node.chain_clients) {
        if (!client->load()) {
            return false;
        }
    }
     ***
     if pruning, perform the initial blockstore prune
     after any wallet rescanning has taken place.
    if (fPruneMode) {
        if (!fReindex) {
            LOCK(cs_main);
            for (Chainstate* chainstate : chainman.GetAll()) {