After each transaction which is added to mempool, we first call
Expire() to remove old transactions, then throwing away the
lowest-feerate transactions.
After throwing away transactions by feerate, we set the minimum
relay fee to the maximum fee transaction-and-dependant-set we
removed, plus the default minimum relay fee.
After the next block is received, the minimum relay fee is allowed
to decrease exponentially. Its halflife defaults to 12 hours, but
is decreased to 6 hours if the mempool is smaller than half its
maximum size, and 3 hours if the mempool is smaller than a quarter
its maximum size.
The minimum -maxmempool size is 40*-limitdescendantsize, as it is
easy for an attacker to play games with the cheapest
-limitdescendantsize transactions. -maxmempool defaults to 300MB.
This disables high-priority transaction relay when the min relay
fee adjustment is >0 (ie when the mempool is full). When the relay
fee adjustment drops below the default minimum relay fee / 2 it is
set to 0 (re-enabling priority-based free relay).
strUsage+=HelpMessageOpt("-dbcache=<n>",strprintf(_("Set database cache size in megabytes (%d to %d, default: %d)"),nMinDbCache,nMaxDbCache,nDefaultDbCache));
strUsage+=HelpMessageOpt("-dbcache=<n>",strprintf(_("Set database cache size in megabytes (%d to %d, default: %d)"),nMinDbCache,nMaxDbCache,nDefaultDbCache));
strUsage+=HelpMessageOpt("-loadblock=<file>",_("Imports blocks from external blk000??.dat file")+""+_("on startup"));
strUsage+=HelpMessageOpt("-loadblock=<file>",_("Imports blocks from external blk000??.dat file")+""+_("on startup"));
strUsage+=HelpMessageOpt("-maxorphantx=<n>",strprintf(_("Keep at most <n> unconnectable transactions in memory (default: %u)"),DEFAULT_MAX_ORPHAN_TRANSACTIONS));
strUsage+=HelpMessageOpt("-maxorphantx=<n>",strprintf(_("Keep at most <n> unconnectable transactions in memory (default: %u)"),DEFAULT_MAX_ORPHAN_TRANSACTIONS));
strUsage+=HelpMessageOpt("-maxmempool=<n>",strprintf(_("Keep the transaction memory pool below <n> megabytes (default: %u)"),DEFAULT_MAX_MEMPOOL_SIZE));
strUsage+=HelpMessageOpt("-mempoolexpiry=<n>",strprintf(_("Do not keep transactions in the mempool longer than <n> hours (default: %u)"),DEFAULT_MEMPOOL_EXPIRY));
strUsage+=HelpMessageOpt("-mempoolexpiry=<n>",strprintf(_("Do not keep transactions in the mempool longer than <n> hours (default: %u)"),DEFAULT_MEMPOOL_EXPIRY));
strUsage+=HelpMessageOpt("-par=<n>",strprintf(_("Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)"),
strUsage+=HelpMessageOpt("-par=<n>",strprintf(_("Set the number of script verification threads (%u to %d, 0 = auto, <0 = leave that many cores free, default: %d)"),