You don’t have to work at Umbrel to know that they will not implement some code from somewhere
The patch code comes from Luke Dashjr, who is a senior core dev. Also, Umbrel is offering some pretty alpha software on the app store, so I wouldn’t put it past them.
Okay, if you know everything would you please elaborate what the code exactly does and what can be problems with it.
That’s not how that works. All I need to see is that the code comes from a legit seasoned contributor, has been code reviewed and has been running on nodes without issues for a couple of months. On a high level, we all understand what it does.
How about you though? You seem pretty passionate about this and confidently call it ‘bullshit’. Why not take on some responsibility and analyse the patch in order to warn node runners of the issues it has. Here’s the code. Step up.
And before I forgot please tell everyone what are the implications for updates when using this bullshit of a solution.
Now you’re making exactly my point. It would be much better if Umbrel provided a clean solution via a simple UI toggle to enable the spam filter on your node instead of letting plebs who feel passionate about this mess with the command line and docker image swaps.
Yes, Luke is a core dev, but he is a core dev who:
Doesn’t use Seed Phrases (BIP 32/ BIP 39) because the are “not safe”
Lost many bitcoins out of sheer stupidity some months ago
2.1. called for the FBI to help him
His keys have been compromised
So feel free to trust him
Here is what the code does:
The Code checks if a transaction has a specific flag and a OP Code which is used by the Ordinals Protocol and drops it.
This pattern currently matches the Ordinals Protocol, that’s correct, but it is not impossible that you now censor valid transactions which also have this pattern but aren’t ordinals transactions.
That’s because the bitcoin core software doesn’t know anything about Ordinals. For that reason it’s only possible drop a random pattern which can also include valid transactions.
The implications:
By including this code you start to censor transactions and drop data. His means you have no longer a “Full Node” and your node becomes useless for the Network, because other nodes are no longer able to sync all the blockchain data from you.
After you have done this “update” you can no longer use the Umbrel mechanism to upgrade your bitcoin core, because this would override the changes. You now have to wait that Luke and friends update the code and scripts before you can update. So you become dependent of a small group of people who think that Inscriptions are bad. If the change their mind and stop creating updates you are fucked.
Why Umbrel can not Implement his
Umbrel can not Implement this code snippet because it’s not part of the bitcoin core implementation. When using the code you are compiling the Bitcoin core code by your self with the “Transaction Filter” change. It’s not a simple switch that can be turn on or off for this simple reason and for the fact that it affects your blockchain data.
All in all it’s not an update for bitcoin core, it’s a hacky solution without thinking of all the consequences. When you change your mind or switch to the normal bitcoin core implementation the only way to get the lost data is to load the whole ledger again because there is no recovery solution implemented.
Some Facts to think about
Bitcoin core doesn’t know anything about Ordinals so there will never be a proper solution to filter for this.
There are other ways to add data to the blockchain without using Ordinals so the filter doesn’t filter anything
A Filter on your side doesn’t change anything
Everything is possible since 2017
Satoshi was the first person who used an inscription in the genesis block
My dude, you’re working off wild assumptions and haven’t actually understood what this patch does at a high level. I’m gonna give you a TLDR:
Ordisrespector nodes will ignore any incoming ordinal transactions, which means that they will not be included in the mempool and not relayed to peers. Nevertheless, any mined blocks containing inscriptions are still gonna be included in the local chain. As a result, the node will stay a fully functional peer that is in consensus. In other words: this is not a hard fork.
Honestly, this is getting tiresome. Show that you’ve studied up properly and I might respond to you again.
Until then, I leave you with a mempool of a fully functioning ordisrespector node:
OK boys, I’ve successfully applied the ordisrespector patch using this guide which is pretty simple and works like a charm!
Some things to note:
building the image on my PI 4 Model B took ~1h
you need to reboot your Umbrel after having replaced the image
if you want to connect to a well connected ordisrespector node to invade the network with other like-minded node runners, before rebooting add these two lines to ~/umbrel/app-data/bitcoin/data/bitcoin/bitcoin.conf
And one more time so no one here gets it twisted: Your node will still accept blocks containing inscriptions, you will stay 100% in consensus. This patch will only keep unconfirmed ordinal transactions out of your mempool and won’t relay them to peers.
Well, that didn’t age well. The current state of the mempool has made Bitcoin completely unusable for the average user who is not interested in this ordinal/inscription stuff. I think the “new use case” has outrun the ability for the blockchain to cope. Now we have some of Ethernet’s problems. We will have to lower the target block time and increase the block size. And that’s not to mention the problem of blockchain bloat. This may will lead to centralization.
Update: there is now an alternative to ordinals, called ‘stamps’ that also spam the blockchain with NFTs and whatnot. If you want to filter those too, add this to your ~/umbrel/app-data/bitcoin/data/bitcoin/bitcoin.conf:
permitbaremultisig=0
It is a builtin option of Bitcoin Core, so no patching required.
Another update: you can get rid of most Ordinal transactions by just slightly raising the dust relay limit: Add this to your bitcoin.conf:
dustrelayfee=0.00003001
Most Ordinal transaction spend just the minimal amount of sats to be just above the default dust limit. Raising your limit just slighty will keep them out of your mempool (default is 0.00003). No laborious manual patching of bitcoin core required.
I have bad news for you. Your full node has to store all the blocks containing NFTs and shitcoins in order to stay in consensus, there is no way around that.
The only thing you can do is keeping these transactions out of your mempool as long as they haven’t been mined. You will not only keep your mempool clean, but also not relay them to peers. In essence you are categorizing them as spam (which is what they are fundamentally).
If you want to see a comparison of the normal mempool against a spam filtering mempool, look at these two:
More than half of the transactions get dropped because they are not genuine BTC transactions.
To date there are two ways you can achieve that. You can either put this in your file
~/umbrel/app-data/bitcoin/data/bitcoin/bitcoin.conf: