It was noted on #bitcoin-dev that many simplifications arise from removing the complex, dual-policy aspects of priority-based low fee transactions on policy estimation, block template creation and mempool code. This change updates Bitcoin Core to relay purely based on fee/kb rate, removing the concepts of priority and free transactions from the codebase.
fSendFreeTransactions, fLimitFree and similar controls have been operating in the field defaulting to fee-based choices already.
This change should make other changes such as @pstratem ’s work to cap the mempool size dynamically much easier.
An example implementation exists (#6405) at https://github.com/jgarzik/bitcoin/tree/2015_remove_tx_priority with the following notes/caveats:
- Status: A large change, lightly tested
- Transaction fee deltas are preserved - thus TX “priority” remains to some extent
- Arbitrary policies may be implemented via fee deltas
- prioritisetransaction RPC call continues to work, by adjusting the fee.
- needs focused review in the area of wallet, to ensure IsMine() transactions work fine through reorgs