I'm developing (mostly for fun) a protocol on top of UDP to reliably connect peer-2-peer using udp hole punching and with encryption of transferred data.
The protocol use an identity system like #nostr (will work with nostr keys).
Each peer willing to be reachable should contact a third party called signaling server (better namings are welcome 😅) that will store his current endpoint and share it with other known signaling server (private networks are possible).
To maximize connection probability each peer should contact 2 or 3 signaling servers (more than 3 are not even needed) but one can be enough if you're not behind a nat.
When willing to connect with another, a peer have to ask a signaling server to coordinate the udp hole punch between the two.
One of the (probably many) downsides is that since the endpoint detection must be done by the signaling server, this can dox your ip, but with a vpn everything should be good enough (the same problem occur with nostr).
Also, you can create a small private web of signaling servers between you and your already trusted third parties, implementing a public keys whitelist and keeping secret the signaling server's endpoints.
As i said is mostly for fun, but if anybody could give an opinion/ask questions it could help me to learn new things.
#asknostr