awl icon indicating copy to clipboard operation
awl copied to clipboard

Allow to use peers as relays to access to another peers behind NAT

Open pymq opened this issue 1 year ago • 1 comments

For now only community bootstrap nodes can be used as relays (they announce themselves as relays). But we can add more clever thing: allow you to use your friendly devices as a relay for you. This feature will make awl truly mesh vpn.

How this will work. For instance, you have 3 devices: server 1 with public IP, server 2 without public IP and your laptop, they all know each other. Because server 1 have public IP, you can connect to server 2 from your laptop via server 1.

More technically:

  • there should be new config option like Allow to use my device as relay for known peers. By default it's false
  • a new option must be passed to p2p here. Option like libp2p.EnableRelayService(relay.WithResources(relayResourcesCfg), relay.WithACL(TODO)). Important part is ACL - we must allow it only for known peers and only if peer enabled config option above
  • there must be new test here

pymq avatar Jun 18 '23 16:06 pymq

Great idea!

dillfrescott avatar Jun 21 '23 00:06 dillfrescott