▲ | dbushell 6 days ago | |||||||||||||||||||
A big misconception I've seen is the assumption that Nostr relays are federated and share messages between one another. This is not how it works. So if you're building a "Twitter clone" the client app must search multiple relays and post to multiple relays. If clients are not using a relay in common they cannot see one another. The end result is a bad experience for both user and developer. Using a single relay is centralised and defeats the point. Using multiple relays is slow and cumbersome and requires the user to know/care which relays they are connecting to. When I played with Nostr a couple years ago the "NIPs" were already a complete mess. Later NIPs supersede earlier NIPs changing how clients are supposed to interpret messages. At least some are flagged as "unrecommended: deprecated" now. | ||||||||||||||||||||
▲ | sebastix 6 days ago | parent | next [-] | |||||||||||||||||||
Relays can federate. The point is that Nostr as a protocol is saying nothing about this and does not care either. I'm running an indexer (a relay) which federates with other relay indexers. Similar how activitypub relays work. Any client can connect to indexer to help bootstrapping and find metadata around events. There are many ways to discover stuff from clients even without being connected to the same relay. | ||||||||||||||||||||
▲ | t1E9mE7JTRjf 6 days ago | parent | prev | next [-] | |||||||||||||||||||
This is a valid observation and hurdle of sorts. One to me, which is a fascinating problem to work on. There are a few approaches to solve this. For instance NIP65, where one defines on their profile meta which relays they read/write to, giving clients the ability to discover all the right content. That's just one approach, and some are exploring other ideas. It seems like a very solvable problem anyway. | ||||||||||||||||||||
▲ | fiatjaf 6 days ago | parent | prev | next [-] | |||||||||||||||||||
That's a misconception: you don't "use" relays (in the sense that you don't have to have a static list of relays you always use), you write to relays. When reading you connect to the relays of whatever the people you want to read from. Some apps indeed use this method of selecting a static set of relays, and if that was the protocol you would be correct about centralization or bloat, but this is legacy from a naïve unfinished early implementation, most apps do the correct thing now and the rest is transitioning. | ||||||||||||||||||||
▲ | vnuge 5 days ago | parent | prev | next [-] | |||||||||||||||||||
Since relays don't own user generated content, there is no need to "federate" client's generally rely on user-selected relay sets. The user chooses where they want to read/write events to/from. That said, many of the "larger" relays do store events from other relays (federation if you prefer). Primal does, TheForrest does, nostr.land and so on. Nostr.land specifically has a purpose of aggregating notes from many other public relays, with spam filtering. It's a paid relay built for that purpose. Don't want that, use someone else. Most users get to see 99% of notes from the current relay federation now, but it's also impossible to check those metrics. Certain clients and signers store notes privately so if a relay ever decides to censor your notes you just publish to a different relay if they don't have your notes already. Chances are if you use ANY of the popular paid relay providers, your going to get warnings on 3/4 write events that the other relays _already_ have the note published to the first. It's usually that quick... Finally, relays "federate" by acting as clients themselves. Most relay software available already offers this as an option, may use it as a local cache for when on mobile and network/wifi is slow. Their local relay slowly pulls notes from other relays (or outbox) and caches those notes for when they load their client up. It's cache and the client dev didn't even have to write that functionality, it was transparent. Finally, other's mentioned outbox, which has it's own set of issues as well, but it doesn't matter because a client developer can choose to give the user the option if they want. Going from federated, to peer-to-peer which was the intention. | ||||||||||||||||||||
▲ | hardran3 6 days ago | parent | prev | next [-] | |||||||||||||||||||
Most clients now support outbox, so you don't need a common relay. Users have inbox and outbox relays, and clients use these to retrieve and send notes. | ||||||||||||||||||||
▲ | nunobrito 6 days ago | parent | prev | next [-] | |||||||||||||||||||
There are some messed up things on a few NIP because the technology evolved fast. Most NIP are fine and continuously improved. This is trivial to solve when there is there a periodic release of the NIP as done in other specs. So far there hasn't been much need for that formality, most developers understand quickly how to create tools on top of it. | ||||||||||||||||||||
▲ | 5 days ago | parent | prev | next [-] | |||||||||||||||||||
[deleted] | ||||||||||||||||||||
▲ | causalitycone 6 days ago | parent | prev | next [-] | |||||||||||||||||||
Yep. There is no common model for message propagation, so there is no “net force” or clear direction. | ||||||||||||||||||||
▲ | maxloh 6 days ago | parent | prev [-] | |||||||||||||||||||
It is somehow misleading to feature a Twitter clone on the front page when Mastodon is a better way to achieve that. The protocol's real value lies in other use cases. | ||||||||||||||||||||
|