question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Remove RBF from user visible settings

See original GitHub issue

Bitcoin 24.0 adds a new mempoolfullrbf option that allows for replace-by-fee even if the original transaction didn’t set the RBF flag.

Currently, the get_tx_info and dscancel functions only consider a double-spend-cancel viable if the transaction has the RBF flag set (i.e. if not tx.is_final()).
As the linked release notes mention, full RBF will now be a mainstream feature even though many alternate implementations have supported it for a while. Either is_final() should always return False or it should depend on if the transaction has been confirmed or not.

Issue Analytics

  • State:closed
  • Created 10 months ago
  • Comments:12 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
ecdsacommented, Dec 10, 2022

All right. I don’t know if bumping the fee of transactions imported from non-Electrum wallets is what the OP had in mind, but I consider that as out of scope. If we have an opportunity to simplify the UX, we should take it. Nothing beats the satisfaction of removing a few check boxes from the GUI.

Regarding channel funding, we can keep using the RBF flag as a way to prevent an accidental fee bumping from another instance of the same wallet. As you point out, that solution is not going to work with channel v2, so we will need to address that separately.

0reactions
SomberNightcommented, Dec 10, 2022

I would prefer if we removed the current RBF checkbox in the UI, and we made all our transactions RBF signalling. That would simplify the UX, instead of making it more complex.

Sure, that’s fine, at this point I think we can do that. However, note it does not address OP’s point with opening this issue:

replace-by-fee even if the original transaction didn’t set the RBF flag.

Even if we make sure all of the transactions we create signal RBF, if a user restores a wallet with pre-existing unconfirmed txs created elsewhere, the question is whether we want to allow RBF-ing those. Also, note that we don’t always signal RBF atm, e.g. for channel funding txs (see https://github.com/spesmilo/electrum/issues/7072).

RBF-ing a non-signalling tx is highly probabilistic atm. First and foremost, I am sure many electrum servers are backed by bitcoinds with default mempoolfullrbf=false, sending an error to the client if it tried to RBF such a tx. Even when using an electrum server that has mempoolfullrbf=true, propagation in the p2p network is not guaranteed and is totally opaque to the client (even to bitcoind). So, atm, if we wanted to allow RBF-ing non-signalling txs, we would either need to hide it behind an advanced option, or give proper warnings and explanation to the user.

(note: power-users can atm RBF non-signalling txs by using the Qt console to call wallet.adb.remove_transaction(txid) and then creating a replacement normally (but making sure it conflicts with the old tx) - this is what I had done multiple times over the years when needing this, and also instructed some users to do it, but this is obviously not a nice solution)

Read more comments on GitHub >

github_iconTop Results From Across the Web

Consider setting RBF flag for Lightning funding transactions
Currently we intentionally don't set the RBF flag for LN funding ... This means that if the user lowballs the fee, the funding...
Read more >
Opt-in RBF FAQ - Bitcoin Core
Opt-in Replace-by-Fee (RBF) allows transactions to be flagged as replaceable until they are confirmed in a block. Is it a new feature? Transaction...
Read more >
Resting Bitch Face: How to Fix Your RBF Forever (With Science)
You can use the RBF to your advantage to fend off unwanted cat-callers, ... math problem (or setting your goals)? You might have...
Read more >
5.5.1.2. Generating the Initial RSU Image Using .rbf Files - Intel
On the File menu, click Programming File Generator. Select Intel® Stratix® 10 from the Device family drop-down list. Select the configuration scheme from ......
Read more >
Replace-by-fee (RBF) - Bitcoin Optech
Replace-By-Fee (RBF) is a node policy that allows an unconfirmed transaction in a mempool to be replaced with a different transaction that spends...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found