-
Notifications
You must be signed in to change notification settings - Fork 488
Closed
Labels
exp/wizardExtensive knowledge (implications, ramifications) requiredExtensive knowledge (implications, ramifications) requiredhelp wantedSeeking public contribution on this issueSeeking public contribution on this issuestatus/readyReady to be workedReady to be worked
Description
Currently, the only mechanism to pierce through NATs in js-libp2p is the WebRTC transport. NAT Traversal is a feature that is hard to get 100% complete as there will be always more NAT implementations that will not work with the strategies we have in place. Ultimately the last resort is Relay (Circuit or Packet Switched).
There is plenty of work available for NAT Traversal, WebRTC is kind of a canon to solve this problem, but not every peer will have WebRTC neither we can trust WebRTC 100% of the times.
Here is a list of good resources to get started:
- https://tools.ietf.org/html/rfc5128
- http://www.brynosaurus.com/pub/net/p2pnat/
- https://samy.pl/chownat/
- http://samy.pl/pwnat/
- https://en.wikipedia.org/wiki/Universal_Plug_and_Play
- https://www.npmjs.com/package/pmp
- There are more modules -- https://www.npmjs.com/search?q=nat+traversal --, I haven't looked at them all. Getting a throughout review of them would be awesome.
- https://github.com/getlantern/natty
The next milestone for Relay is to support UPnP for TCP ports, the same way go-ipfs does.
mkg20001, abbasovalex, dryajov, fazo96, vitali2y and 5 more
Metadata
Metadata
Assignees
Labels
exp/wizardExtensive knowledge (implications, ramifications) requiredExtensive knowledge (implications, ramifications) requiredhelp wantedSeeking public contribution on this issueSeeking public contribution on this issuestatus/readyReady to be workedReady to be worked