Please see #9601 for all non-technical discussion. Includes #9391 as the first commit Please tag 0.15
This PR removes all coin age priority functionality from the codebase.
Some remaining open questions:
- The
prioritisetransaction
RPC API is broken. Should we instead try to implement backwards compatible support, or is it fair to break it? Previously it required exactly 3 arguments, now it requires exactly 2, so it will not result in unintended consequences. - The 6th commit changes
sendrawtransaction
to no longer bypass minRelayTxFee by setting fLimitFree to false.prioritisetransaction
can always be used to achieve the same effect. This seems an improvement in behavior, but isn’t required (although the prioritise_transaction.py RPC test would need to be fixed if we don’t include this). - fLimitFree is now only
setfalse for transactions we are trying to reaccept to the mempool from a disconnected block. Should it also be used to bypass the mempool min fee in the event of mempool limiting. I think yes, but can be left for a separate PR. (EDIT for clarification: currently if mempool limiting is active, even if fLimitFree is set false, transactions which don’t pass the mempool min fee set by the last evicted transaction will still not be accepted to the mempool. It is probably preferable that they are accepted and then the mempool will be limited again post acceptance and either there will have been room for them, they will be evicted, or they will be part of a more expensive package and something else will be evicted.) - The last commit is optional and introduces ability to set
-minrelaytxfee
to 0. This isn’t necessary, but seemed better to me especially now other ways to accept transactions without fee have been removed.
Fixes #9601 Fixes #6675 Fixes #2673 (thanks @MarcoFalke)