afaik that cache is always full, because its not just for 0conf
block = backend.getblock(block_hash)
previous_block_hash = bitcoinlib.core.b2lx(block.hashPrevBlock)
block_time = block.nTime
txhash_list = backend.get_txhash_list(block)
raw_transactions = backend.getrawtransaction_batch(txhash_list)
thats the block updating stuff
which is unnecesary, we have the full block in block
so we could use the raw TXs from there afaik
also 20k * 500 bytes is indeed not that much
I think in practice it’s consuming more memory, but let me debug that a bit and maybe we can set that limit a bit higher since it would improve performance a bit if we could without too much memory increase
also CP uses a flat fee, not estimated (which is a problem that could/should be worked on I guess), so setting a low maxmempool will probably result in CP txs getting dropped from ur mempool fairly quickly when stresstests happen