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.

| improve this answer | |
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
| improve this answer | |
  • 1
    Good answer! You could clarify that "input_age" was measured in confirmations. – Murch Jun 15 at 0:12
  • @Murch hope you get the answer.. – Haseeb Saeed Jun 15 at 5:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.