## What were 'high-priority' transactions in Bitcoin Core v0.9?

2

I came across these release notes for Bitcoin Core 0.9 and saw this quote under 'Transaction Fees'. Does this distinction between 'high-priority' and 'highest-fee' transactions still exist? What exactly were 'high-priority' transactions?

Note that getting a transaction relayed across the network does NOT guarantee that the transaction will be accepted by a miner; by default, miners fill their blocks with 50 kilobytes of high-priority transactions, and then with 700 kilobytes of the highest-fee-per-kilobyte transactions.

2

Priority was calculated based on the age of the inputs. Older and larger inputs were given a higher priority than new and low valued inputs. This allowed transactions to pay no transaction fees but still be included blocks.

So what used to happen is that 50 kB of a block was reserved for transactions that paid no fees. Transactions were selected for inclusion in that space based upon this priority.

This has since been removed from Bitcoin Core although miners may choose to include whatever transactions they want so miners today could still use priority if they wanted to.

3

Historically it was not required to include a fee for every transaction. A large portion of miners would mine transactions with no fee given that they had enough "priority". Today, low priority is mostly used as an indicator for spam transactions and almost all miners expect every transaction to include a fee. Today miners choose which transactions to mine only based on fee-rate.

Transaction priority was calculated as a value-weighted sum of input age, divided by transaction size in bytes:

priority = sum(input_value_in_base_units * input_age)/size_in_bytes


EDIT:

input_value_in_base_units = satoshis to be transferred (e.g 1000 sat).
One Bitcoin is worth 100,000,000 satoshis.

input_age = is how many blocks the input has been present for. An unconfirmed transaction
has an age of 0, and one that has 100 confirmations has an age of 100. An input that
was confirmed 50 block before have input_age of 50

size_in_bytes = size of transaction


1Good answer! You could clarify that "input_age" was measured in confirmations. – Murch – 2020-06-15T00:12:59.950

@Murch hope you get the answer.. – Haseeb Saeed – 2020-06-15T05:33:49.150