Revert default block priority size to 50k #7151

pull luke-jr wants to merge 1 commits into bitcoin:master from luke-jr:revert_priodef changing 1 files +1 −1
  1. luke-jr commented at 10:21 PM on December 1, 2015: member

    The priority area is often our only defense against spam, so disabling it should not be encouraged. Additionally, the only benefit for disabling it is performance, which is no longer an issue with #6898.

    While there may be arguably better policies for handling priority, these are not yet supported (nor even evaluated theoretically or tested in practice). Until those are implemented and tested, we shouldn't regress default policy.

  2. Revert default block priority size to 50k
    The priority area is often our only defense against spam, so disabling it should not be encouraged.
    Additionally, the only benefit for disabling it is performance, which is no longer an issue with #6898.
    
    While there may be arguably better policies for handling priority, these are not yet supported (nor even evaluated theoretically or tested in practice).
    Until those are implemented and tested, we shouldn't regress default policy.
    e4d7271457
  3. TheBlueMatt commented at 10:34 PM on December 1, 2015: member

    The point of setting it to 0 is to mark it deprecated, not run faster or encourage policy decisions. Feel free to bring this back up at an IRC meeting but there was strong consensus to push it to 0.

  4. luke-jr commented at 10:36 PM on December 1, 2015: member

    It's not deprecated, and should not be until there is a reasonable alternative.

    Also, IRC meetings are explicitly not for decision-making. And there's no consensus while someone (eg, me) maintains a reasonable disagreement.

  5. paveljanik commented at 6:42 AM on December 2, 2015: contributor

    ACK

  6. dcousens commented at 6:53 AM on December 2, 2015: contributor

    As discussed on IRC, its probably worth checking the following before merging this:

    how many tx per day get confirmed solely due to priority - measure field use (credit: @jgarzik)

    and

    how many transactions in blocks now ... would have been priority eligible at all; or otherwise become eligible within 24-36 hours. (credit: @gmaxwell)

    Could probably answer both questions with the same data.

  7. jonasschnelli added the label TX fees and policy on Dec 2, 2015
  8. paveljanik commented at 7:11 AM on December 2, 2015: contributor

    @dcousens Yes, this should have been done before merging the previous PR. Do we have any such data available?

  9. paveljanik commented at 7:22 AM on December 2, 2015: contributor

    On the other hand: can we have such data at all?

    If the first transaction in the block after the coinbase is a zero fee "high-priority" transaction, we simply can't take this as a "high-priority" transaction, because the miner could have mined this particular block because of his will and not because of the high-prio code in Bitcoin Core.

  10. laanwj commented at 9:33 AM on December 2, 2015: member

    There was common agreement to set it to 0 in #7022 - apart from you. My impression was that changing the default has been discussed in many places including the IRC meetings and mailing lists and the outcome was the same.

    In general: Can we cut out this nonsense about default values? It's the same crap every time. I'm never going to merge mining/mempool related default change again. If people want a different value they'll just have to set it.

  11. petertodd commented at 10:24 AM on December 2, 2015: contributor

    Can we cut out this nonsense about default values?

    +1

  12. morcos commented at 1:04 PM on December 2, 2015: member

    @gmaxwell re: transactions that would have been priority eligible in blocks now: I think it's important to attempt to distinguish transactions that were sent with the intention to be confirmed by priority. Of course I think we will find those, I send those myself, but that doesn't mean those users won't adapt.

    Just to summarize some of the reasons to deprecate priority:

    • code complexity: I think the computational complexity can be kept within reason at least for the existing functionality, but the code touches a lot of different places and it makes it more difficult to do perhaps more important work in those areas.
    • long term viability: If it's not incentive compatible, how long should we go about trying to put effort into supporting it.
    • it's currently broken: With mempool limiting not respecting priority its almost a useless concept anyway.
    • we're not foreclosing on the possibility of some future notion of coin age: Perhaps we can regain most of the lost benefits of the existing priority metric with something like sipa's proposed coin age based fee delta. Or even just a cleaner and more general way to implement a different metric that doesn't require so much core maintenance.
  13. paveljanik commented at 9:59 AM on December 5, 2015: contributor

    OK, as only me and @luke-jr ACKed, there is a clear dev-consensus that priority is to be removed from Bitcoin Core. I accept it myself. Do not agree with it, but accept it ;-) This will make the code lot simpler but we are loosing interesting aspect/motivation for some people. In fact this decision has economic effect (small though) on some bitcoin users.

    The next time we plan to do something similar, we should announce the plan to do so first (no code changes) and then do it in some of the next releases. This was done correctly (IMO) in case of "accounts". We see a lot of DEPRECATED in the helptexts etc. Lets learn from it.

  14. luke-jr commented at 10:05 PM on December 10, 2015: member

    Initial analysis shows approximately 6% of transactions during 2014 confirmed by priority.

  15. MarcoFalke commented at 11:15 PM on December 10, 2015: member

    approximately 6% of transactions during 2014

    Would be awesome to see a historic chart which includes

    • all transaction
    • transaction eligible for priority
    • transaction which used priority
  16. luke-jr commented at 11:44 PM on December 10, 2015: member

    AFAIK nobody has kept such records, and they can't be deduced from the blockchain.

  17. MarcoFalke commented at 10:48 AM on December 11, 2015: member

    You can still estimate the bounds assuming default values?

  18. luke-jr commented at 11:11 AM on December 11, 2015: member

    "transaction eligible for priority" requires knowing unconfirmed transactions at all points of the history.

  19. paveljanik commented at 5:07 PM on December 11, 2015: contributor

    @MarcoFalke this should have been done prior to setting the prio to 0, not now...

  20. luke-jr commented at 4:02 AM on December 13, 2015: member

    A specific analysis of https://np.reddit.com/r/Bitcoin/comments/3wln8w/0_confirmations_after_12_hours/ wherein a user sent a transaction without a [significant] fee, and the recipient was concerned that 12 hours had passed without it being mined. This transaction would have become eligible for relaying and mining under the default priority policy in 0.11, after 21 additional hours (total 33 hours). Without priority, it would never be mined, leaving no recourse for the participants until the sender upgraded to a RBF-capable wallet (which currently do not exist) and decided to make use of that feature.

  21. morcos commented at 4:13 AM on December 13, 2015: member

    When you say eligible for priority. You don't mean the AllowFree threshold do you? You mean actually enough to get into a block? Those are several orders of magnitude different.

  22. luke-jr commented at 5:42 AM on December 13, 2015: member

    @morcos The AllowFree threshold is the only minimum... Once it's in the memory pool, the first 50k (or whatever the priority size is configured as) of top-priority transactions get mined. So the only way that example wouldn't have been priority-mined (after the total 33 hours), is if there were higher priority transactions waiting (in which case any of them would work just as well for an example).

  23. morcos commented at 7:53 PM on December 13, 2015: member

    @luke-jr you know the first 50k of top-priority transactions includes fee paying txs right? So very few if any of them would have served as a good example b/c they would be mined because of fee anyway. A tx will never be mined by priority until its priority is at least 1000x higher than AllowFree.

  24. luke-jr commented at 8:09 PM on December 13, 2015: member

    @morcos That does not follow, especially under the conditions of spam attacks. Where do you get your 1000x from? I don't see that in the code...

  25. morcos commented at 8:17 PM on December 13, 2015: member

    @luke-jr It's not in the code. I'm just saying that if you look at the last tx in the 50k priority block (so the lowest priority tx that made it into the block by priority) you will discover its priority is almost always above 1e10, maybe closer to 1e12 typically. What this means is that a tx that pays too low a fee and is hoping to get into a block based on priority, it'll need to wait until its priority is that high to have a chance.

  26. luke-jr commented at 8:33 PM on December 13, 2015: member

    That just means the priority space is being used up. If anything it would suggest an increase in the size, not removal of it...

  27. morcos commented at 6:04 PM on December 14, 2015: member

    Less than 1% of txs benefit from priority.

    I ran a brief test to see how many txs, which were likely included in a block as a result of their priority, would not have been included in a block based on their fee in the near future. I looked at 6 weeks of data starting Oct 1st and only at blocks which had at least 100 txs. I then assumed that the last 10 txs in each of those blocks were fee based txs. And the lowest fee of those 10 txs was the necessary fee to be included in the block. So I looked for each block at how many txs were in it that had a fee less than what would have been necessary to be included in at least 2 out of the next 10 blocks, and I assumed those were the txs that benefited by priority. This amounted to 56K out of 6.7M txs or 0.83%.

  28. luke-jr commented at 10:47 PM on December 14, 2015: member

    @morcos You appear to be assuming ideal or current conditions. Spam attacks can suddenly increase the minimum feerate in a feerate-only policy for a prolonged period. Furthermore, any analysis of recent blocks is likely to be tainted by miners who have disabled the priority area due to perceptions of performance problems in 0.11 (that have since been improved).

  29. jtimon commented at 7:44 PM on January 3, 2016: contributor

    It's not deprecated, and should not be until there is a reasonable alternative.

    We want to deprecate it and that's what the 0 default signals. We can discuss the "alternative" without changing its default again. NACK

  30. laanwj closed this on Jan 20, 2016

  31. DrahtBot locked this on Sep 8, 2021

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-14 15:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me