Oddbean new post about | logout
 gossip/outbox/etc was “added” to the protocol after most clients had already become accustomed to read/write to all relays. this is what happens when you iterate on protocols after they’ve been released in the wild. 

it will sort itself out in time, but it may not be what you envision.  
 I doubt that Satoshi envisioned jpgs and shitcoins to be built on top of the Bitcoin protocol yet here we are. The protocol is out and it will find it's own path. Or it wont. 
 I doubt Karl Marx envisioned the gulags too. 
 The law of unintended consequences strikes again. 
 HAHHAHHAHAHA 
 Oh yes he did. 
 You are wrong. Nostr was supposed to _actually work_ since the very beginning, as any person capable of reason would have realized.

The only other possibility is that the first users and developers had a completely broken idea of how Nostr was supposed to work (i.e. not work at all) in their minds, but they were dumb enough to absolutely love that idea and start building on it. 
 interesting, I don’t recall seeing anything about the gossip protocol prior to it showing up in the gossip client. 
 Yes, it didn't have a name nor a very concrete spec (and it still doesn't). 
  https://i.nostr.build/aQVV6.jpg  
 Everyone wants to finish the painting, but there are more and more NIPs, making the canvas bigger and the horse harder to paint.
nostr:nevent1qqsgr7h77aqktchd6pdunhf896ctrz0ep96e34rjpqesaqy7u4e9ldgpz4mhxue69uhkg6t5w3hjuur4vghhyetvv9usygyukd29cd55pkdza7rd2r2u0286hyp3pnyf33p5f08ufjpzlarmegpsgqqqqqqs2q8h5k 
 Even if you implement nostr “perfectly” according to @fiatjaf , you would still get empty profiles and threads when you run into the fact these smaller relays go down all the time. 
 Exactly, so using relay hints that list relay URLs in an immutable note is stupid — if the relays go down, the post is toast.

Gossip is a step in the right direction, but it isn’t flawless either due to requiring relays to constantly spread your gossip note. 🗒️ 
 Not to mention there is not a standard way for devs to implement it. You can implement it wrong or “right”? The idea that we are getting upset at devs for not implementing nostr right is silly. What is the right way? No one has ever done this write up.

How about write a tutorial or nip? This is much more productive than just shitting on devs for doing the simplest thing when they first get started (relay pool). I guess @fiatjaf is calling me and many others for not implementing “fiatjafs vision”, but what is this vision exactly? following relay hints? this doesn’t solve everything, the relay hint in a note could be down.

nevent relay hints? nevent didn’t even exist when I started building a client. How is this “obvious”? How do you select the ideal relays for many different types of queries without blowing the connection budget? What client is @fiatjaf building that has this perfect algorithm? Please teach us. 
 Honestly jb, I’m going to declare independence from fiatjaf’s madness soon.

I’ve been interested in @elsat nostrability for maintaining compatibility across clients, as I’m sure you’re aware.

I’m working on a clear standard (list of cleaned up NIPs etc) that others can follow if they don’t want to try to sift through fiatjaf’s madness.

It will avoid relay hints for discovering missing content, and other bad/messy ideas (like NIP04) — distilling the best of #nostr.

Most of it aligns with Damus etc, but I’ve got a new outbox method that I’m eager to share soon. It doesn’t rely on the blockchain at all… it’s free and fast.

You all can be the judge of it soon.

Nostr is not what fiatjaf says it is. He helped start it, but I suspect the people are going to be the ones to scale it. People like us. Personally, I see fiatjaf almost always arguing in a disingenuous way — then he blames others for not knowing what to do.

As long as we create a standard that many clients can follow in a compatible way, we don’t need his mad king behavior. 
 Help us @tyiu @montzstar 

You are our only hope

#nostrsdk 
 What do you mean "It doesn't rely on the blockchain at all" ? 

Who is building anything here that relies on the blockchain? 
 An old spec of mine tried to solve the consistency problem of Nostr by putting merkle roots of profiles on-chain. It was just too expensive for users & totally not scalable. Back when I first joined Nostr two years ago. I can admit when I was wrong. Have iterated since then. 
 Hmm.. We need to have the right incentives for more and better event transmissions to relays? Goal could be broader event distribution among the network of relays.  
 🫂 
 nostr:nprofile1qqsrhuxx8l9ex335q7he0f09aej04zpazpl0ne2cgukyawd24mayt8gprfmhxue69uhhq7tjv9kkjepwve5kzar2v9nzucm0d5hszxmhwden5te0wfjkccte9emk2um5v4exucn5vvhxxmmd9uq3xamnwvaz7tmhda6zuat50phjummwv5hsx7c9z9 could provide automated Tests as requirements so people who implement it can be sure it's working right  
 Even with perfect Nostr implementation, frequent downtime of smaller relays leads to empty profiles and threads, highlighting the need for more robust and reliable relay infrastructure.
🎯🙌🫡 
 this is like saying "web servers go down all the time, so why bother with DNS"

nostr:note1397ve2tp24tx7xe39rl27r9xf875y0y62rzxuq447zxujznn89dq9jr444 
 On Jan 5, 2023, in my very first telegram convo with fiatjaf, he said:
"I think clients must not talk to a bunch of relays as if they were all the same"
and then
"I think they must find and follow people in wherever relays they are"
to which I said
"This is a paradigm nobody seems to understand or talk about except you and I.  Lots of people are confused about how it could possibly work, and there is some massive event duplication going on in the background."
to which fiatjaf said
"I've been talking about that incessantly"

Based on that final statement, I'd say fiatjaf was saying this before the gossip client was doing it.  So with that I disclaim all responsibility, I didn't start this thing ;-)

There was no NIP saying this, and NIPs are all optional anyways.

This discussion has come up over and over and we have not settled on a direction, the community has instead split. I *hate* telling people what to do, I think people are free to copy notes and avoid connecting to strange relays and I *still* have mad respect for all the devs who do it that way.

I'm not sure it has to be one way or the other BUT I will stump for my way, and you have to live with the consequences of your way.  For example, not being able to see fiatjaf's quote posts, running massively overloaded relays, finding it easier to be banned from nostr than you thought, burning through network traffic between relays, realizing you have faux-privacy and you've actually just deceived your users by only patching the biggest privacy holes while leaving the little ones open, etc.

To me it is just decision -> consequence.  I don't care what other people choose to do, but I will try to predict the consequences. 
 thanks for the history lesson. appreciate you building the way you see fit and please recognize I do not take the opposite view - I’m merely adding my observations. 

I think read/write to all relays is a bad design as well and have said as much since I joined the protocol in dec ‘22.  
 @ben has been unassumingly right about almost everything I’ve seen him talk about, and proved so over time. He’s that unassuming guy in the room that somehow sees what others don’t, but wants out of the room to get back outside to live and do rather than talk.