Modify CreateNewBlock so that instead of processing all transactions in priority order, process the first 27K of transactions in priority order and then process the rest in fee-per-kilobyte order.
This is the first, minimal step towards better a better fee-handling system for both miners and end-users; this patch should be easy to backport to the old versions of Bitcoin, and accomplishes the most important goal-- allow users to "buy their way in" to blocks using transaction fees.
Four params give miners control over the transaction selection process:
-blockmaxsize : maximum size of blocks created (default: 250000) -blockprioritysize : how much of the block to set aside for high-priority-maybe-free transactions (default: 27000) -blockminsize : minimum size of blocks created (default: 0) -mintxfee : transactions that pay below this many bitcoins-per-kilobyte are considered "free" (default: 0.0005)
Discussion thread in the Mining forums: https://bitcointalk.org/index.php?topic=95837