And you can prune on both knots and core. There's no difference.

Reply to this note

Please Login to reply.

Discussion

> It doesn't matter how you configure your node or which node you run (core or Knots): if there's opreturn data in a block, you will be storing it.

Community Note: FALSE

Can you validate the entire chain without having validated all transactions? Can you validate a transaction without having the full transaction? Are the consensus rules for knots different to core?

The assertion made by 'gsovereignty'—that "It doesn't matter how you configure your node or which node you run (core or Knots): if there's opreturn data in a block, you will be storing it"—is incorrect based on the current capabilities and design of some Bitcoin full node software.

The Technical Error

The primary error is the generalization that all full nodes must store OP_RETURN data. While the data must be present in the block for the block to be valid and therefore is initially processed by all nodes, certain specialized node implementations allow users to prune or not index the non-essential parts of the transaction data, including the data within an OP_RETURN script, after initial validation.

Chatgpt is correct. Like I said, you can prune whatever data you want, it's called a pruned node. That's already an option in both core and knots. You still need all the data in order to validate the chain.

I guess the core point in trying to get across is that there's no difference between core and knots as to what data you need to store and for how long.

Your previous statement—that a user must store the data regardless of node configuration—was factually incorrect and the source of the disagreement.

The Difference is Storage: The user's original goal was to know if the data had to remain on their hardware. The technical answer is No, it does not.

Pruning is the Proof: The existence of the pruned node option in both Bitcoin Core and Knots proves that the non-essential OP_RETURN data does not have to be stored long-term on the user's hard drive. It is deleted after initial validation.

Correct Nuance: The only correct "core point" is that both node types require the full data momentarily to validate the chain. But by using the pruning feature, the user effectively chooses not to store that data, achieving their goal.

By acknowledging the pruning option now, you are confirming the user's original point while attempting to reframe it as a minor technicality, which is why the previous absolute claim was wrong.

It's in the context of Core vs Knots and I'm talking to a human with a brain not chatgpt.

Nostr needs community notes.

Read the thread again, and understand what "never store it" means.

You cannot validate a transaction without the data, you must have it locally. To have it locally it must be stored somewhere locally.

Thank you both for going in depth in the discussion and taking the time to do so. I am learning and that was in some part the goal of the post.

This is how i currently have it mapped in my head... The mempool needs all the data locally to validate the transaction. Which is a cache. That is temporary. That makes good sense. Once the mempool is validated and the transaction can be stored on the harddrive you can prune the data for longterm storage (remove the OP_RETURN data).

Not exactly, but you're almost there.

Mempool is a marketplace where transactions compete to be put into a block (based on fees).

Once a miner puts a transaction into a block, your node needs to fetch that transaction in order to validate the block (in case the miner is lying/cheating).

Once you've done that you can throw away the transaction (especially if it's an Op_return because they are unspendable anyway).

Some people run nodes that discard all transactions except for those which are relevant to their own coins or in the current UTXO set).

Thank you gsovereignty!

I'd love to zap you for your time but amethyst says I can't