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.

Reply to this note

Please Login to reply.

Discussion

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.