pull down to refresh

Anticipating the Bitcoin core v24 release which includes full rbf, I started to wonder, don't we already have rbf?

Replace be Fee Full Version

RBF means "replace by fee". Its what you use when your on-chain transaction is stuck in line for a ride on the blockchain and you'd like to purchase a Disney Genie+ pass to stop waiting and hop on the ride already.
Not all RBF is equal however. According to themoneymongers.com, there are 4 variants of RBF
Delayed RBF: You can buy your skip the line pass, only after you've waiting in line for a few hours first.
First-seen-safe RBF: You can buy your skip the line pass, but you can only get on the ride you were initially waiting for.
Opt-in RBF: You can only buy your skip the line pass if you said you might buy the pass before getting in line to wait
Full RBF: Screw all the limitations, its your money, you paid for the pass. You want to replace a tx in the mempool with a new one and you're willing to me more for it? Shoot, I like money alright just give me the new tx and I'll just forget you even sent that other tx.

How to Accept More Money for the Disney Genie+ Pass

So the mempool is not a global state. Its a computer by computer decision which txs they would like to store in their computers memory. If your tx is waiting too long, it might be optimal for me to forget you sent it, if your fee is too low, it might be optimal for me to not bother storing it in memory, and if I'm an "OFAC compliant" node or whatever, I might not bother storing txs in memory that go from or to certain addresses.
So, say you would like your mempool to drop txs as long as a new tx with higher fees comes in, with or without a flag, with or without any time passing, whether its to the address the initial one was going to or not. How do you do that? Well, Bitcoin core v24 should have a setting it will come with that will allow you to enable it, but that isn't released yet, so we can either modify our Bitcoin core client or, being not so technically savvy, we can run Bitcoin Knots
Bitcoin Knots is a straight fork of Bitcoin Core, so all configurations you've made in Core will be functioning as soon as you run the software. Now, do we need to go into settings to enable full RBF? No, full RBF just runs by default on Knots, but it might be helpful to connect to a node that has the same mempool policy as you, so that you see the txs looking to get replaced.
To do this, we have to manually connect to a peer that we know is running the same mempool policy as us. Well, Peter Todd just so happens to be running this mempool policy. He even has an open invitation for people to come connect to his node.
Now, again, not being technically savvy here, right? I know there's something you could probably do in the config file, but I just went to Window => Console then pasted "addconnection 185.254.198.243 outbound-full-relay" (the domain name mug.nop.lol resolves to that IP) => peers => drop a full relay peer and quickly before my node can find a new one => console enter
If we go back to peers, we can see our new friend is running a few services. Namely, "WITNESS" and NETWORK_LIMITED". Yes yes very normal to see these services on a full node peer and oh? What's this? REPLACE_BY_FEE? Oh yes our friend has modified their client to say RBF is a service of their node lmao.
Well, if you're a miner, I hope this guide (which was dumbed down much more than necessary probably) is helpful for you be more profitable.
Fun fact: if you're a miner and set your minimum relay fee to something higher than usual, like 10sats/vByte, it's pretty much the same thing as mining with full-rbf from a double spend perspective, as you'll reject the first lower fee tx in a spend/double-spend combo.
When mempool pressure is high this even happens naturally, as the mempool is limited in size, and when it bumps up against that limit low fee txs are dropped.
reply
Thanks for making this educational post. I for one love full rbf and am a fan of keeping things simple and so believe it should be the default on all nodes. But that battle was lost years ago.
reply