libp2p / specs

Technical specifications for the libp2p networking stack
https://libp2p.io
1.56k stars 273 forks source link

connections: Add hole punching vision document #323

Closed mxinden closed 3 years ago

mxinden commented 3 years ago

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.

mxinden commented 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?

mxinden commented 3 years ago

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.

mxinden commented 3 years ago

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?

mxinden commented 3 years ago

@BigLep @lidel given that you reviewed with "Request changes", would you mind taking another look with the newest changes?

mxinden commented 3 years ago

@BigLep @lidel given that you reviewed with "Request changes", would you mind taking another look with the newest changes?

@BigLep @lidel friendly ping.

mxinden commented 3 years ago

@BigLep given that you reviewed with "Request changes", would you mind taking another look with the newest changes?

mxinden commented 3 years ago

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.