Bitcoin Forum

Bitcoin => Bitcoin Technical Support => Topic started by: Maddd Cuan on January 03, 2021, 12:45:05 PM



Title: Ask about RBF.
Post by: Maddd Cuan on January 03, 2021, 12:45:05 PM
Hello,

I'm want to ask about RBF (Replace By Fee), It is could help stuck transactions or unconfirmed cause of fee with increasing of fee transactions.
So the question is : can we canceling the trasactions through decrease of fee(before get the blocks)? like do RBF with lowest sat/bytes ?
I'm neven have done with RBF, but I'm interest for this one.

Thanks,
Maddd.


Title: Re: Ask about RBF.
Post by: Rath_ on January 03, 2021, 12:47:36 PM
So the question is : can we canceling the trasactions through decrease of fee(before get the blocks)? like do RBF with lowest sat/bytes ?

No, you won't be able to replace a transaction with a lower fee. You can create a new transaction spending the same inputs to your address with a higher fee than the original transaction. The latest version of Electrum allows to do that automatically by right-clicking on an unconfirmed transaction and selecting "Cancel TX".


Title: Re: Ask about RBF.
Post by: ABCbits on January 03, 2021, 12:50:58 PM
It's impossible since miner would choose transaction with higher fee rate and in first place, i doubt it can be broadcasted. Either cancel it with higher fee or hopefully it's dropped from mempool (not recommended).


Title: Re: Ask about RBF.
Post by: ranochigo on January 03, 2021, 01:17:48 PM
It wouldn't make sense.

RBF requires the replacement transaction to pay at least the minimum relay fee for it to be propagated well. Unless you're able to get a miners participation and for which any rational miners will not agree to do so, you'll not be able to replace it with a lower fee. It'll be more ideal for you to start with a low fee and slowly increase as and when you like. You have to flag the transaction as replaceable as well, not all transactions can be RBFed.

hopefully it's dropped from mempool (not recommended).
Possible but very unlikely to happen. It would mean that the transaction has been around for a long period of time and for it to get confirmed within another reasonable timeframe, it would be in OP's best interest to just pay a higher fee.


Title: Re: Ask about RBF.
Post by: Oshosondy on January 03, 2021, 01:31:40 PM
It can not be possible to us replace by fee to reduce the transaction fee, I do not think it can even work, it can not work, you need higher fee to replace a fee which means you replace small fee transaction for higher fee so that the transaction will be placed in the next block. Only higher fee can be used to replace smaller fee for faster transaction confirmation.


Title: Re: Ask about RBF.
Post by: BrewMaster on January 03, 2021, 01:49:48 PM
something that wasn't clarified here is that you can not "cancel" a bitcoin transaction with anything. when the transaction is out there it is out there and you can't do anything about it. the transaction can potentially remain on the network unconfirmed until the end of time if no miner picks it up ever.


Title: Re: Ask about RBF.
Post by: OgNasty on January 03, 2021, 02:48:13 PM
something that wasn't clarified here is that you can not "cancel" a bitcoin transaction with anything. when the transaction is out there it is out there and you can't do anything about it. the transaction can potentially remain on the network unconfirmed until the end of time if no miner picks it up ever.

You can invalidate it by spending the coins on another transaction. As far as doing so with replace by fee though, that would seemingly only work if you knew the miner confirming the block, as like others have stated any reasonable miner would choose to confirm the higher fee transaction. I also don’t see a good use case for this feature if it were possible, as anything that assists double spends is likely to be used mainly for nefarious activities.


Title: Re: Ask about RBF.
Post by: BrewMaster on January 03, 2021, 03:02:16 PM
something that wasn't clarified here is that you can not "cancel" a bitcoin transaction with anything. when the transaction is out there it is out there and you can't do anything about it. the transaction can potentially remain on the network unconfirmed until the end of time if no miner picks it up ever.

You can invalidate it by spending the coins on another transaction. As far as doing so with replace by fee though, that would seemingly only work if you knew the miner confirming the block, as like others have stated any reasonable miner would choose to confirm the higher fee transaction. I also don’t see a good use case for this feature if it were possible, as anything that assists double spends is likely to be used mainly for nefarious activities.

that initial transaction is only going to become "invalid" when the new transaction is confirmed otherwise it still is not "canceled" even with RBF replacement transaction.
for example if a node hasn't implemented RBF it will see the second tx as double spend and reject it while keeping the first one as the valid tx.


Title: Re: Ask about RBF.
Post by: bob123 on January 03, 2021, 05:59:51 PM
So the question is : can we canceling the trasactions through decrease of fee(before get the blocks)? like do RBF with lowest sat/bytes ?

What you are actually doing when increasing the fee is to create a second transaction spending the same funds as the first one which has the replacable flag set.
By using a higher fee, miner will prioritize the second (replacing) transaction.

If you would choose a smaller fee, there is no incentive for the miner to include your second transaction instead of the first one.

Once a (valid) transaction is broadcasted, it can be confirmed. You can't really stop it. You can only try to stop it by giving a miner the incentive to not include it (e.g. by creating a RBF transaction to yourself with a higher fee).


So the answer is: No, that's not possible.


Title: Re: Ask about RBF.
Post by: BrewMaster on January 04, 2021, 04:21:43 PM
Any how many nodes out there which haven't RBF? According to https://bitcoincore.org/en/faq/optin_rbf/ (https://bitcoincore.org/en/faq/optin_rbf/), it's implemented since Bitcoin Core 0.12

according to bitcoin client version list provided here https://luke.dashjr.org/programs/bitcoin/files/charts/software.html
there are a little less than a 400 bitcoin core full nodes with versions below 0.12 and if RBF was implemented in core 0.12 then these clients don't have it.
we can see other clients there too but i don't know which support RBF and from which version.


Title: Re: Ask about RBF.
Post by: ranochigo on January 04, 2021, 04:39:38 PM
according to bitcoin client version list provided here https://luke.dashjr.org/programs/bitcoin/files/charts/software.html
there are a little less than a 400 bitcoin core full nodes with versions below 0.12 and if RBF was implemented in core 0.12 then these clients don't have it.
we can see other clients there too but i don't know which support RBF and from which version.
That should be a non-factor when we're talking about the propagation of RBF-ed transactions. The main factor is that they should be able to be propagated to the miners and for them to include it into the transaction. Unless your node connects exclusively to nodes which are 0.12.0 and below, it wouldn't be an issue to have un-upgraded nodes.

Even for un-upgraded nodes, it wouldn't matter as long as the miner would include it into a block.

Anyways, I've never seen that used as a data source. I've been using Bitnodes since their crawlers are generally accurate and I see that most of the peers already has the recent versions.


Title: Re: Ask about RBF.
Post by: BrewMaster on January 04, 2021, 05:18:52 PM
That should be a non-factor when we're talking about the propagation of RBF-ed transactions.

i wasn't talking about propagation of transactions or reaching miners. i was pointing out the fact that transactions are never "canceled" ever even if you double spend the same inputs in another transaction using RBF. a single node is enough to keep the transaction valid and "out there" until any of the transactions spending the said inputs are included in a block.