Peer-to-peer means not having a 3rd node sitting in the middle of the communication in some data center. E.g. rather than client->server->client it is just peer->peer. But I've run across people who think a client-server protocol necessarily isn't peer to peer. I'm just trying to argue that the p2p protocols are still client-server protocols. Nostr could be written as a p2p application without changing any of the NIPs, just by making every client also a relay. Your point is the part I didn't discuss because it wasn't in my head at the time --- the middleman. You want direct communication over anything with no middleman. Fair enough. And I think that should be achievable, even if the communicating pieces are a client and a server.

Replies (2)

Yes, that. I would add that the nodes should also have full control of what other nodes they connect to. Your Honey Pot is a good example. You also touched on it via protocols that have dedicated hole-punch IPs. I call this "no special nodes" No node should have a special or even default role in the network that any other node could not fulfill at the behest of client nodes. Some initialization is needed, but the closer it can be driven by end-point choice the better.
A rule that goes hand in hand is "no special codes" there will, of course, be protocol level identifiers, but things like Blockchains, URLs, global names that require an authority are out. All meaning is what the users say it is.