>>4321219I'm mainly worried about the scalability of it being fully meshed. There's a large difference in efficiency between maintaining 10 connections and maintaining 100.
Unfortunately I can't come up with a way for NAT penetration that doesn't require either: 1) designated servers for negotiating connections (which I want to avoid), or 2) Every peer maintaining a connection at all times with every other peer.
I'm thinking when a new peer attempts to connect to the network, the peer it requests the connection to could broadcast STUN information for the new peer over the network, and each existing peer can then attempt UDP holepunch with the new peer. But this would have massive scalability problems.