What algorithm do bitcoin miners use to choose which tx to include in their block?

3

1

I understand it's in the miner's best interest to receive as many fees as possible for his hopefully-accepted block, hence it should include the most rewarding (fee / size) txs - up to the 1MB limit.

However, what algorithm do the miners use? It seems like a knapsack problem, which is NP-Hard, so I doubt miners actually go for the optimal solution.

Thanks!

Itay

Posted 2017-11-02T07:36:31.053

Reputation: 31

Answers

1

No. this is not knapsack problem and no one need to find optimal solution.

Sort your transactions in mempool by two rules:

  • subsequent transactions can not be to the left of parent ones
  • most profitable transactions (fee/size) gravitate to left

and take leftmost transactions from mempool until 1 mb limit

amaclin

Posted 2017-11-02T07:36:31.053

Reputation: 5 763

Great, thanks. Where can I find the code that implements this behavior?Itay 2017-11-02T12:22:24.010

somewhere in https://github.com/bitcoin/bitcoin (cy, Captain Obvious)

amaclin 2017-11-02T12:43:14.217

1this isnt the full truth, and miners likely differ in their implementations. one way to prove this isnt the full truth is to look at the existence of transactiln accelerators, another to look at blocks with 0 transactions and a third to look at blocks with some transaction types excluded.Jonathan Silverblood 2017-11-03T07:22:41.167