DHT is an obvious solution for the perceived problem of data resolution, has been talked about since before I showed up in 2022 and is also why pubky exists to begin with; It's a better between technical accuracy and philosophical preference. Something to consider you may not have already: what happens when clients start developing around the DHT as a first principle instead of NIP-01? There's a few implications of this at a high level: 1. Fewer and fewer clients will work in network segmented contexts because clients will assume all relays belong to a "global state," this limits the potential use cases of nostr. While there would be no technical limitation for clients to support non-DHT discovered relays, they would simply have no incentive to. Outbox would slowly die off, and the nostr ecosystem would be filled with applications that rely on global state for operation. 2. Social relationships are built outwards from the observer, nostr replicates this in its network topology. DHTs represent a global state and then a the observer works from the global state back to themselves. There could be many different DHTs, but then you have arbitrary boundaries that are difficult to cross. The former reflects of healthy human networks, while the latter more closely reflects the human networks we see in mainstream social media that is at the root of an uptick of mental illness. It's difficult to my discomfort with this one into words. 3. Potential slippery slope, once we introduce one global state, then why not put everything on a DHT? Pubkeys? Topics? Etc. It potentially erodes decentralization on a long enough time-scale, and at a certain point it hits a hard upper limit, challenging the "global" intent. From a purely technical perspective, DHT makes sense and is the obvious solution to the perceived "problem." There are some scaling issues associated with it, but as long as the scope is tight enough the ceiling is pretty high, so on a technical level it passes the sniff test. On a philosophical level it potentially signals a higher-level retraction the paradigm-shift that nostr has proposed. Nostr is not a payments network, it doesn't need a global state. Humans operate best and are most happy in a localized context, the global context is what is drives much of societal decay that we see today. Nostr works, it's hard to make it work, it has patterns that are intuitive and challenge conventional understanding of network design, but it works and in a way that is fundamentally different way than anything else. For myself and many others, nostr's "no global" philosophy is a feature, not a bug. Regardless of my critique, great work! Interesting exploration. It is inevitable someone would eventually dive into this. But not what I'm personally looking for in when establishing digital human connections. Unfortunately, I fear this is where we will end up because it's such an obvious optimization, and it's difficult to refute.

Replies (4)

DHT-as-bootstrap sounds interesting. DHT-as-the-new-default-global-map is where the cypherpunk alarm bell starts politely clearing its throat. Relay plurality is not just plumbing here; it is part of the social architecture.
Nostr network is build by clients and relays. At the moment most relays store a lot of data and use DNS. I think DHT is really good solution for the relays. Big relays can use both routing networks. But local solutions like desktop/mobile client and small relay/cache togerher can benefit a lot from DHT from the decentralization point of view. I use Gossip dektop Nostr client because I don't want to share my nsec with web services. I now use public relays but if I build one as a proxy I won't need the public ones. And Gossip already caches/ stores locally notes. So everything is there, the infrastructure works, only Nostr relays can benefit from more decentralized routing and that can also bring standalone local clients similar to torrent clients that store locally certain amount of notes/data. And the current Nostr stack will continue to work as it is. Its just a good enhancement to it.
sillybird's avatar
sillybird 2 weeks ago
I mean so many apps on here already Do rely on a global state. Unless your client pulls from a huge predefined relay, you won't see a lot of data or know where to look for user information if they start using your client. You Could provide a list of relays you prefer, but who's spending the time to do that? Also, things can exist in community contexts still, it just means that client might not rely on the DHT. You're right that in many cases, it would disincentivize Outbox model stuff, but that implementation is up to clients, and I think DHT would probably be used for querying global stuff and posting stuff and whatnot would use your specified relays. I think DHT would be a great approach for this, it doesn't take away that you use certain relays for whatever purpose, just makes information and account indexing a lot easier and prevents centralization on a relay level. Let me know your thoughts :)
There's more to solutions than, "you can just do things". Many a well meaning solutions in the moment turned out to be nightmares eventually, not because they were mala fied, but because they fundamentally misunderstood the problem they were trying to solve. Philosophy is as much, if not more important than knowledge especially in the hands of the highly capable, for a "Don't be evil" can with a stroke of a pen change to "Do the right thing" without batting an eyelid as if nothing changed. This here is an example of why you may not want to "you can just do things", and take a moment. Reflect. There is knowledge and then there is wisdom. View quoted note →