Oddbean new post about | logout
 #asknostr: what does a client or relay need to implement to be "nostr-complete"?

I was under the impression that most nips are optional, and it would be a natural selection process that determines what is, and what is not, a nostr-complete application (as in users abandoning one app, client, or relay, because they don't implement the most valued features)

which nips make a client nostr-complete?

and what about clients/relays built for specific functionalities? 
 There are no NIPs that define this functionality because it kinda is Nostr itself. Implementation details are left for the client developer.

nostr:nevent1qqsqtjeh7mrzzxld7jx4tp2pgxls3h6jl7cgejgh3n6m43z36rz0a5qpzpmhxue69uhkztnwdaejumr0dshsz9mhwden5te0vf5hgcm0d9hx2u3wwdhkx6tpdshsz8thwden5te0vfhhxarj9e3xjarrda5kuarcda4k7tnrdakj7e367vj 
 🤝 Nothing to worry, I'm sure evryone would agree. 
 The NIP-65 note is an addition to the Nostr protocol. Relays have to propagate it constantly, or else it’s useless. That’s radically different than original Nostr. 
 You don't need NIP-65 to implement the outbox model. 
 What’s your definition of the outbox model?

Relay hints? Those are horrible.

Clearly we all aren’t in agreement about which definitions mean what. 
 Is outbox more so the philosophy of:

“reading from the relays others write to”

If so, that makes sense. There are different ways to achieve that beyond NIP-65. 
 Yes, that's it. 
 Relay hints can be useful for helping clients create a local database of where to find whom (aside from immediately loading notes you know nothing about), specially when you don't have any other clue about that, but NIP-65, NIP-05, nprofile hints, random guessing and historic event fetching stats, asking some smart indexing services and whatever else could also contribute. 
 “The [Relay] hints system will never be sufficient, because it encodes changing data into immutable events. The gossip system can be much better (though not perfect), because pubkeys are far more permanent.” ~ @hodlbod 

If you change all your relays after being censored (the main value proposition of Nostr) then all your Relay hints break.💔

Relay hints are horrible.🙂‍↕️ 
 As I said, they're not flawless, but they can definitely help. Coming up with an example in which they break doesn't imply they're horrible and should not be used.

You have just cited a wrong claim from the hodlbod without addressing any of my points. In case you want to do that, here are some more points for you to address: nostr:naddr1qqyrscm9xajxvve5qyghwumn8ghj7enfv96x5ctx9e3k7mgzyqalp33lewf5vdq847t6te0wvnags0gs0mu72kz8938tn24wlfze6qcyqqq823c6zx8e4 
 Nah, that specific quote isn’t wrong. 🦖

You do outbox your way, I’ll do outbox my way. Let’s test who has more missing notes after.✌️ 
 The example I gave is literally the main value proposition of nostr… relay hints sacrifice free agency. Foolish to latch onto Dino tech. 
 do you want to have this mind-numbing argument with everyone, or do you want URLs to work? use pkarr.org

nostr:note1z5t5x6wlkxuj99gl8ulpjlnnlwks6es69586xqzware7p74hf7qs09muqw 
 Interesting approach, I had not considered using relay hints indirectly to infer where someone might be if you can't find their 10002. 
 We don't need nip65, but it makes it easier. Clients can make reasonably good guesses where to look for notes with other metrics. 
 maybe I'm not well informed, what is the deal with these other clients? in what way are they not implementing nostr correctly? I feel like an open definition as any means that if these clients fail to provide the decentralization and censorship resistance, they will be abandoned eventually in favor of ones that do

I guess your note landed kinda harsh, making it seem like there is "a correct" implementation. Although I subscribe to decentralization, I have strong reservations regarding dictating how "things are supposed to be". 
 I sympathize with your reservations, but disagree with this:

"they will be abandoned eventually in favor of ones that do"

This is not what happens by default, otherwise people would have long ago abandoned Twitter, Instagram, Facebook and so on and moved to Mastodon and they would be abandoning everything now and moving to Nostr. Although that can happen it's far from guaranteed and making people aware of the problems through harsh notes is part of trying to make it happen. 
 the personal cost associated to moving from Twitter, Facebook and the like into a different network entirely, rebuilding identity and audience, is disproportionately higher than moving between relays/clients/apps. that is one of the major accomplishments of the specs you defined. I mean, says so right in your initial proposal.

what has happened by default with social networks is that users migrate or join the networks with more MVPs. ever since IRC channels, the oldest I can think of.

but moving inside the nostr network should be mostly painless, unless you make yourself a subject to a totalitarian platform, which I expect to exist. and even then, as long as you hold your key, you might only lose data. you can pat yourself on the back for that, sir. this lack of friction is what enbolds me to say that people will abandon bad platforms, as long as they have an alternative. your protocol provides THAT, above all else. 
 Oh, to answer you: most clients (aside from Snort, Coracle, Gossip, Voyage as far as I know) implement some variation of the "manual relay list + flood requests" I mentioned in the note quoted above.