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
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:
Allow to use my device as relay for known peers
. By default it's falselibp2p.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