I think this is the way. You can get to a kind of Facebook like experience. Seeing content from people you know. You do trade off many things like broad discovery, but what you get in return is a network that is extremely resilient to outside censorship and hard to spam, even without filters.

The reason that it should be done is that, even if it isn't very performant you do get something that is 100% aligned with the users.

From there you can add more robust nodes to people that better uptime / wider reach. That will have some centralizing effects, but if those fail then ordinary people still have a fallback that doesn't make them susceptible to all the problems of a wide open relay.

Reply to this note

Please Login to reply.

Discussion

Imagine that we created a way for relays to live behind NAT and be hole-punched into (using Iroh or otherwise) but they were still separate from clients. Then imagine we forced every client to also be a relay, and conversely every relay to also be a client. Do we then end up with the circumstance you are envisioning or have I missed something?

Because in that scenario, while I like the 1st step, I don't see the point of the 2nd step. it seems more flexible to leave relays and clients separate.

A mix of the above. You might run a client/relay on your PC, but they are sort of different concepts.

You might have a node that just distributes files having no idea what they are. They are just identified by their hash, but may be compressed and encrypted.

You might have a node that is just a proxy for establishing connections.

But what everyone has is at least one node that stores their own files/stores their keys/can do authentication/encryption for various application/clients.

If you only have a phone then I guess you just accept that it isn't going to be a great experience/lean on the hardware of friends.