Ordinal filtering / Ordisrespector

You don’t have to work at Umbrel to know that they will not implement some code from somewhere :laughing:

Okay, if you know everything would you please elaborate what the code exactly does and what can be problems with it.

And before I forgot please tell everyone what are the implications for updates when using this bullshit of a solution.

Thanks :slight_smile:

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.

Okay,
first things first.

Yes, Luke is a core dev, but he is a core dev who:

  1. Doesn’t use Seed Phrases (BIP 32/ BIP 39) because the are “not safe”
  2. Lost many bitcoins out of sheer stupidity some months ago
    2.1. called for the FBI to help him :rofl:
  3. His keys have been compromised

So feel free to trust him :sweat_smile:

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 :wink:

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:

Sounds like you haven’t understood how bitcoin works :rofl:

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
    • addnode=ots6ud7ovx6furs4sxlm7aze5q44qtoeapwcukelcxc3i2r5tkxgdlqd.onion:8333
    • addnode=i2gu72r3tcmd5tuup53bauczdbvmylsoasvjxd56qobj7xhthxla.b32.i2p:0

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.

4 Likes

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.

I’m with you in general. IMHO, NFTs belong on a different blockchain, not Bitcoin.

Bitcoin is for relatively small money transactions, not large vanity NFTs and public records.

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.

3 Likes

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.

2 Likes

Interesting, simple approaches lol. thanks for sharing

1 Like

I didn’t read all this. It there a patch? I’m sick or Ordinals filling up my storage with spam. I want to opt-out as much as possible.

2 Likes

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:

permitbaremultisig=0
datacarrier=0
dustrelayfee=0.00003001

Or you can patch your node manually, if you are tech savvy enough:

I personally just edit the bitcoin.conf since it gets the job done well enough and you don’t have to re-patch after new versions come out.

Hope that helps

3 Likes

They should put this as an option in the setting menu.
dustrelayfee= xxxxxxx
mine says it requires root access, and cant seem to find the su password.

1 Like

su password should be the same as your web interface login password

1 Like

Thanks for this bitcoin.conf info, running it here as well – would be nice if umbrel had these as UI options.

1 Like

sudo ~/umbrel/scripts/debug

Its not a bug, but IS an attack…