Closed mxinden closed 3 years ago
@vasco-santos could you give this document a review, especially from a browser perspective.
@vyzo could you give this document a review, especially from a project flare perspective?
Good summary! Content wise this looks great, but wondering if we should have these flows in a more generic session? This given that in the browser this behaviour is needed for more than NAT Traversal itself. I have no ideas at the moment for a better structure, but probably worth thinking about it
Agreed. I would suggest keeping it here for now. While the Browser-specific techniques described in this document are needed for connectivity in general, they are as well required to understand the specifics of hole punching. Happy to extract these sections and only reference them here in case we can come up with a better location.
Maybe we can replace "Non-Browser" by another term (standalone?), it took me a second to parse headings like "Public or Private Non-Browser (A) to Private Browser (B)".
@marten-seemann agreed that "Non-Browser" is confusing. I don't find "standalone" less confusing though (not a strongly held opinion). Any additional naming suggestions?
@BigLep @lidel given that you reviewed with "Request changes", would you mind taking another look with the newest changes?
@BigLep @lidel given that you reviewed with "Request changes", would you mind taking another look with the newest changes?
@BigLep @lidel friendly ping.
@BigLep given that you reviewed with "Request changes", would you mind taking another look with the newest changes?
I will go ahead and merge here. Thanks everyone for the input. I am happy to create follow-up pull requests, e.g. in case we come up with a better name for Non-Browser.
Extend connections specification with a document describing the long term vision of hole punching in libp2p across transport protocols, platforms and implementations.
(For now) this is a high level description only. I hope for this document to (A) help guide the various libp2p hole punching approaches to share sub protocols and thus achieve greater interoperability and (B) paint the greater picture for newcomers.
I appreciate feedback of all forms.