Avatar
nomadshiba⚡
45835c36f41d979bc8129830f2f5d92562f5343d6feddd6f30aa79480730f26e
- knotzi ₿ - #ArchiveCore - 300KB blocks i make stuff (rabbit hole for other links) https://github.com/DeepDoge get your npub name https://npub.name in case you wanna send more bitcoin, i also accept silent payments: sp1qqwdknqgz7v2ph8hxjc9t2nz3frqazjkhu7c5ar5w03tn0amw3ugrsq5zmaznxjuce70l6p47t5vm25qngxnwqgk025csgr735uds0y9wsgjkuhfc

my bitcoin knots spam/exploit filter settings.

block non-bitcoin txs exploiting the network and the blockchain.

no normal bitcoin user uses OP_RETURN. it might be used by side chains and companies and stuff for timestamping, or proving something happened in some order.

so i only allow the default 42 bytes which is more than enough for a hash.

BUT i also want 50x more fee for OP_RETURN data. so its still cheap for side chains, but if you try to spam bunch of small OP_RETURN(s) to reconstruct later, you gotta pay more.

bitcoin knots with custom knots settings vs bitcoin core

amazon is not centralized because they have many workers?

is a government decentralized because it has parliament or people voting in it?

no that would be a crazy statement.

what is decentralized is multiple nations, experimenting with different laws in parallel.

or multiple companies competing in the free market in parallel.

or multiple bitcoin node implementations competing in the free market of node software, experimenting with different things, and live or die.

so yes some other node implementations, especially one that gives its bitcoin user more options, is decentralization.

one software implemented by one repo, can make changes to the protocol based on votes of few without competing in the market with other options is against everything bitcoin and decentralization.

monopoly over bitcoin software by a single collective is not decentralization.

by your logic voting and a parliament is decentralized.

you are still talking about one software, and one collective making changes on it.

something accepted or not without being tested by the market.

its not like100 devs all have their own alternative versions and experimenting with things in the market of node software in parallel.

its all one collective entity.

makes no sense.

isn't runstr does that?

i mean it's not sat per step but yeah

Replying to Avatar #fuck_jews

You Are Not Facebook

I think relays will fail every time they try to do any notes filtration beyond blocking straight out spams/bots and notes with invalid signature

Also any DVM like solutions that might achieve some progress will fail

Every time I first explained NOSTR to someone in IT they come up with the same fuds like:

Big (with higher tone B) platforms have cables running under the ocean between continent, Data centers on every region and sub-region for faster delivery, etc...

my point against that is the same point I have against DVM like solutions, that is, you can't compete with an army of departments full of seniors, unlimited resources and literally a bunch of universities being used as their labs, you have to do stuff differently and in a cheaper, cheaper is the sexiest part for any NOSTR project.

the point is maybe we just need bare notes filtration/curation on the fly done in the client, lets say a client fetches 1000 bare notes and filters them based on several factors like the linguistical characteristics, sentiment, topics, entities or others, I mean there is a ton of factors to play with from notes content and pubkey only and a ton of open source libraries to deal with such problems, and that's very NOSTR like where the algo is semi agnostic

an extra work based on engagements (zaps, replies, etc.... counts) might be carried out on notes that passed the first filter and that's another huge field to play with.

I'm currently playing with such model on my local client and its not bad at all

to summarize maybe all we is just need some nip51 enhancements or maybe a new encrypted version of that for privacy, forget about your social graphs it centralize on big node by design and we are not Facebook and it scares normies

thanks to wasm you can even do subtitles for videos in real time. i tried.

you can do a lot more on the browser distribute the computation.

all my friends who i made bitcoiner over the years are now running knots on their laptop.

sometimes i just wanna zap my own posts so more people see them

but i stop myself

Replying to Avatar Crizzo

That's just one type of spam, it's always been possible to record data in different ways and some of those are more damaging to the network than others.

Yes the p2tr method blew up and drove fees higher for awhile, but the hype has died because it holds very little value. Removing op_return filters might cause another surge, but it will die too because storing jpegs on the Blockchain is a stupid use case. It's still consensus valid though, and I want my node to be aligned with consensus even if I find how other people use it distasteful. That's just the nature of a permissionless network, people will use it in ways you don't like.

Now if anyone wants to talk about changing consensus to prevent these uses, then I would be willing to listen and even fight for it, but no one seems to want to do that right now. This is the consensus we are stuck with for better or worse. People wil find ways to achieve their goals of data storage no matter what the nodes try to filter, so we might as well channel it into the least damaging method.

There may even be some data storage use cases that enhance scaling and increase the value of the monetary use case of Bitcoin, but even if not the monetary use case of Bitcoin is by far the most valuable and will outcompete spam in the long run. I just don't think there's anything to be afraid of from the spammers. Let the fee markets decide what is the best use of blockspace. Trying to get nodes to collectively control the blockchain is some statist-type regulatory bullshit that gets in the way of the free market.

im against changing consensus, thats politician solution. "just add another law". thats top down decision making.

you dont wanna become a consensus change addict.

bitcoin has to be as unchanging as possible. like gravity, yes gravity suck sometimes but its a constant and we can build on top of that.

spam issue is a community level issue, and should be decided by the free market of node runners. just like i can decide what i can share with people in a free world, i can also decide what to share with other bitcoin nodes.

we dont need to change the constitution of bitcoin (consensus).

maybe today 42 byte is decided to be fine, maybe tomorrow it will be 32 or 64. these are community level decisions.

maybe one dont wanna relay tokens, maybe one does. you have to find someone who does.

you cant keep touching the consensus, it doesnt end well. whole point of bitcoin is stopping top down changes done by entities to "fix the economy". so no we shouldnt touch consensus. im fully against it.

this should be solved in the community level.

filters has been part of bitcoin from the early days. and spam was a real concern from the early days as well. everything from the legacy 1MB block size to block per 10 min decision made while also keeping spam in mind, and keep the blockchain easy to download by small devices.

and L2+ solutions should be as light as possible on chain as well. we dont want one L2+ solution to rule them all and take a huge block space. we want multiple different small L2+ solutions focusing different aspects.

no swish army knife EVM. limitations on bitcoin makes things built on it smart. no lazy slap EVM everywhere.

if a L2 solution requires less decentralized bitcoin for sake of L2 security, it shouldnt exist.

core of the issue is the core. bitcoin/bitcoin should have been archived a long time ago. many people at core, not because they wanna write a node software for users of bitcoin, no. they want to be a bitcoin dev. thats a problem, it effects their perspective and the way they see things..

a parliament voting and deciding what should happen to bitcoin by saying "ACK" or "NACK", is not decentralization, or free market of alternatives.

its top down management by a collective. something happens or doesnt happen. there is no other experiments happening in parallel in the free market of node software.

We Should Archive Core.

then we can have many new different node implementations and forks trying to take its place.

you have to change your thinking a bit. bitcoin doesnt run on aether, and it shouldnt be managed by one collective/parliament.

bitcoin IS the people who use it and run a node. so primary goal of a node software market should be serving to these users, not trying to "shape bitcoin".

maybe a node app has support for mempool management plugins, so you dont have to wait for an update for better filters, you can have a whole free market of filters on a plugin store, or filter packs.

maybe one has better UI and UX. maybe other one has better compression. maybe other one is experimenting on a protocol making nodes send bulk data to each other with gzip to save bandwidth.

maybe one has built-in tor support, so you dont have to separately set it up. maybe one has built-in support for electrum endpoints and indexing while pruning. maybe other one has plugin support for indexing.

maybe one has a more mobile oriented app.

all different things being experimented on in parallel by multiple people.

some are solo, some are 2 friends, some are an organization.

no parliament saying "ACK" or "NACK", just everything tested in parallel in the market.

free market of node implementations. all selected by the market.

total protocol ossification.

is core humble enough to archive the repo?

or just like the control?

Replying to Avatar Bitcoin Mechanic

Clarification of my thoughts and a brief explanation of how I get to where I am currently for anyone interested:

Miners and nodes were originally pretty much the same thing.

They aren't now.

What happens when the incentives of miners and the incentives of nodes become misaligned?

Miners want to get revenue from any source imaginable - stuffing spam into blocks is potentially lucrative.

Nodes of course do not have any immediate incentive to relay this stuff and certainly don't benefit from storing it or competing with it and paying higher transaction fees as a result.

The theme coming from

@darosior

is that Core must do what is incentive compatible for *miners* - i.e pay attention to what it is spammers want to store in the chain and quickly or preemptively adapt Bitcoin Core as quickly as possible to relay this to prevent any large miner soliciting it out-of-band and developing a competitive edge against miners who are "stuck" with the transactions being relayed around the network.

His concern compounds with the idea that if Core fails to do this, it will be unadopted and lose market share to an implementation that does.

However we have seen significant migration away from Core, for perhaps the first time ever, to Knots, which takes a different approach - it concerns itself with the incentives of people running those nodes who, as mentioned, do not wish to be relaying junk data around the network and storing it for free.

So if we are concerning ourselves with the incentive compatibility of Bitcoin Core, why is the incentive the actual users of that software to not participate in spam not a part of the discussion when it is so clearly relevant? Knots has jumped to about 10% of the listening nodes over the course of May from less than 2% before that.

This, I believe, is where the rift between Core and those angry with Core formed because Core's response to this is generally to say that nodes are being short-sighted. Their desire to reject spam is going to undermine more subtle things in the longer term. This was expressed initially in a crude and insulting manner which further deepened the rift but - no matter how much we might want to dismiss them as genius devs somehow missing the forest for the tress - are they correct?

More simply - are nodes doing themselves a disservice by opting out of the relaying of spam in the hopes that at the very least, they aren't participating in the hypershitcoinization of Bitcoin?

How bad are the tradeoffs for nodes if they do this?

1. If Core is "incentive incompatible" (at least with regard to miners/spammers who both clearly want to use Bitcoin to store non-Bitcoin stuff) is there going to be un-adoption of Core?

So far the only un-adoption we have seen is a (from my perspective) a few thousand nodes switching from Core to Knots - this isn't really fakeable like some suggest with AWS because you'd have need to have spun up Core nodes far in advance of this battle in order to send this signal by having them switch.

The "incentive compatible" alternative is Libre Relay - this of course does the opposite of what Knots and its updated filters permit - it preferentially peers with fellow trash-enjoying nodes in what is (to my mind) a misguided effort to fight what they call censorship. Of course I fundamentally believe that censorship resistance doesn't come in the shape of nodes relaying what is against their own interest.

Libre Relay is nowhere near as widely adopted as Knots. So Core, if wanting to maintain marketshare must take more into consideration what has actually happened to Core as a result of its incentive incompatible design (from the perspective of *nodes* rather than *miners*).

They must convince us that Knots users are making a mistake in philosophy, not just more immediate concerns around practicalities and risks of running something that isn't Core. Those are valid of course but let's assume Core and Knots are of equivalent standard and reliability and just focus on differences in approach and design philosophy here as its what is relevant to this discussion.

2. If we filter spam, fee estimation will get worse.

It can get better actually, assuming there is one decently sized miner on the network respecting those filters. There is of course - most of the DATUM miners on OCEAN use Knots with fairly close to default policy so this can prevent you from *overpaying* fees.

The worsening of fee estimation in the other context - accidentally underpaying because there's so much unconfirmed spam that you just aren't aware of - is much easier to correct for. Simple RBF will suffice.

I don't think it's anything anyone can really care about due to the unpredictable nature of the blockchain anyway. You have no idea if you'll be in the next block or not. The extent to which you do is the extent to which we "know" what *should* be in the next block which is basically just an artifact of centralization and a mistaken celebration of that fact.

You don't know who will find the next block, what will be in it, how long it will take, or how many other people are going to jump in "the" queue after you broadcast your transaction. Core's heuristic around fees work well without knowledge of other people's mempools, this is by design. Thus, I have widely asserted that concerns around fee estimation are nonsense with the above reasoning and I have yet to have anyone dunk on me with some superior understanding.

3. Block Propagation will be slower if we filter spam. Mining will centralize in general.

Slower block propagation sucks for small miners trying to be part of the big club as Antoine points out. The big boys will have a private intra-relay network - a walled garden in which you must belong to not be at a disadvantage with necessarily slower verification times.

Firstly - if you filter something that still generally makes its way around the network, you'll cache it and your verification speed will be just as quick as if you didn't filter so this is a non-argument. I genuinely think most people, including Core devs are just unaware of `blockreconstructionextratxn` so they believe there to be an issue that there just isn't.

But what if the filters are so effective that the private club has to solicit this stuff out-of-band and it never existed in the first place to the filtering nodes?

Then I say we are screwed. These miners control the blockchain at that point. We have concerns orders of magnitude more significant. They can reorg the chain, make double spends and generally wreak havoc. The fact that they haven't is not something we can rely on hence the need to actually decentralize mining not just screw around and make a gesture of concern in relaxing spam filters in the hopes that it doesn't get slightly worse.

We are at this point already so I have no idea why we are discussing inconsequential factors such as spam mitigation vs enthusiastic relaying as though it has any relevance here. Foundry can already 51% attack the network.

---------

This is roughly how I end up at my position - being a vocal advocate for putting the incentives of those running nodes over anyone else in the ecosystem. I do not consider spammers to be "Bitcoiners" but even I did, their needs would be always placed further down the food chain than those of nodes. Just as they were with those who wanted huge blocks for permanently cheap transactions.

The rate at which I am having to revise and reevaluate my position has rapidly decreased compared to a few weeks ago where admittedly I was making far more technical inaccuracies than now.

Everything I read from Greg Maxwell or other long standing and respected developers in the space goes along familiar lines at this point and fails to justify this new, laissez-faire approach to spam attacks that carries a heavy burden of proof versus adhering (as Knots does) to Bitcoin's historical precedent where folks none other than Greg himself would propose extreme counter measures to spam should some new protocol for shitcoining-on-bitcoin suddenly hit escape velocity and start creating a genuine problem for Bitcoin nodes.

Archive Bitcoin Core

im not gonna write an article because im about to sleep.

just, make sure you watch the video.

make sure to watch mechanic's videos on his own yt channel. he explains stuff really well.

then read what you just said again.

everything you said answered many times by others, and even in this video.

but maybe it just flies over without context idk. so maybe watch mechanic's videos as well.

but even then i think some people doesn't focus on important parts of the videos, or miss the points idk.

not trying anymore, tired.

syncing a full node for datum and lightning payments from ocean.

is there any technical reason why ocean doesn't accept Phoenix wallet style bolt12 addresses?

Replying to Avatar arvin

> fee is not calculated based on what you have on your mempool that's not correct. even core is using more advanced methods to estimate fee. its just an argument

I'm sorry, you must be joking

In core, fee estimates are calculated entirely from the mempool. This isn't even up for debate, it's literally in the code.

- The `TxConfirmStats` class ([here](https://github.com/bitcoin/bitcoin/blob/8309a9747a8df96517970841b3648937d05939a3/src/policy/fees.cpp#L77)) builds buckets of mempool transactions based on fee rates and then analyzes how long they take to be mined.

- If you unravel `TxConfirmStats::EstimateMedianVal` ([here](https://github.com/bitcoin/bitcoin/blob/8309a9747a8df96517970841b3648937d05939a3/src/policy/fees.cpp#L244)), the code scans buckets of stored feerates built **from the mempool** and gives you the median feerate for the bucket that most closely matches your confirmation criterion.

It's the same for other estimators as well. We rely primarily on the mempool.space estimator in the `bria` engine we use for Blink ([here](https://github.com/GaloyMoney/bria/blob/018f25b52f991886f1c6ee9713cee4ee641e8187/src/fees/client.rs#L23)) as it's the most reliable we've found from years of observed transaction activity. And if you go to the mempool.space repo and look at how they do fees, `getRecommendedFee` is called ([here](https://github.com/mempool/mempool/blob/cba4308447341725587c232f77c102efc834d488/backend/src/api/fee-api.ts#L22])) which if you follow the code uses mempool transactions and projected mempool blocks to estimate fees.

I think this is the issue lots of us are having with this "debate". Lots of things are being said that aren't even subjective, just objectively wrong.

> I'm sorry, you must be joking

>

> In core, fee estimates are calculated entirely from the mempool. This isn't even up for debate, it's literally in the code.

No, they are not "entirely" based on mempools. That is objectively wrong.

In the context of "does different mempools breaks 'predictable fee estimates'. "

Mempool has effect on the fee yes, but that fee is calculated mostly based on block-history not current mempool. Mempool is not significant that much until congestion. Even in those cases there is no guarantee that mempools will be completely different. Still not a good argument to make all of mempools same. And call it decentralized.

it's better if bitcoin software maximizes decentralization on the base layer. nothing else, sacrifice every other thing. but again it seems many have different interpretations of decentralization