Allow fee bumping for non-BIP125 transactions after mempool expiry #19030

issue andronoob opened this issue on May 20, 2020
  1. andronoob commented at 4:03 PM on May 20, 2020: none

    Is your feature request related to a problem? Please describe.

    Countless users have encountered the "stuck transaction" problem when the transactions piles up in the mempool, so that transactions with lower fees have to wait.

    There's even a wiki page about this problem: https://en.bitcoin.it/wiki/Fee_bumping#I_sent_the_stuck_transaction However, only knowledged/experienced users are able to follow such guidance. What's more, it's obviously an annoying hassle, which also makes the user prone to human errors, like overpaying with different (non-conflicting) UTXOs.

    The rule that "only 0-conf transactions with BIP125-enabled are allowed to be replaced (double-spent)" is not really enforcable, so that it's actually a situation that everyone (especially the wallet GUI) just pretends to respect such a rule, which only blocks legitimate fee-bumping attempts by non-tech-savvy users.

    Such "rule" also has a expiration time actually - the mempool expiration time of full nodes in the Bitcoin P2P network, like Bitcoin Core nodes.

    Edit: The mempool expiration time doesn't mean the transaction itself has a expiration time - that's probably the most tricky part of this problem.

    Describe the solution you'd like

    Allow Replace-By-Fee for transactions being stuck longer than mempool expiration time.

    There are also corner cases (like lack of change output), which requires adding new inputs to the transaction - otherwise the user would probably have to do riskier things like replacing (removing, essentially) existing inputs or potentially immoral things like underpaying or even retracting the payment entirely, by double-spending.

    (To my understanding, there could be potential problems or risks like overpaying, if the wallet is allowed to remove existing input)

    Describe alternatives you've considered

    Child-Pay-For-Parents (CPFP), which also requires change output.

    Additional context

    https://en.bitcoin.it/wiki/Transaction_expiration

    Mining pools also have been providing transaction prioritising services (the so-called "transaction accelerator") years ago, like https://www.pushtx.com/ and https://pushtx.btc.com/

  2. andronoob added the label Feature on May 20, 2020
  3. ghost commented at 1:00 AM on August 22, 2020: none

    @andronoob alternative that you mentioned here : CPFP is the only option to resolve such issues.

    Also wallets can help with better options and UX. Few days back I was thinking even exchanges can start doing CPFP for unconfirmed transactions when users deposit BTC and deduct amount from account balance if available.

    Example: I withdraw 0.1 BTC from Bitmex to my Bitfinex deposit address. Bitmex does the withdrawal once in a day and it's not confirmed for hours. Maybe Bitifinex can do CPFP for this transaction.

  4. glozow added the label TX fees and policy on Aug 4, 2022
  5. glozow commented at 9:30 AM on August 4, 2022: member

    See #10823 which proposed something similar.

    Since #25353, you should be able to replace this tx using -mempoolfullrbf (note that local acceptance does not necessarily translate to propagation on the network, but if the original tx has expired from other mempools, I expect the replacement should work).

    Hopefully this helps, closing this now. Feel free to reopen if these options don't work.

  6. glozow closed this on Aug 4, 2022

  7. bitcoin locked this on Aug 4, 2023

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-17 09:14 UTC

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