dat-ecosystem-archive / datproject-discussions

a repo for discussions and other non-code organizing stuff [ DEPRECATED - More info on active projects and modules at https://dat-ecosystem.org/ ]
65 stars 6 forks source link

Documentation on NAT traversal and firewall issues #69

Open aschrijver opened 6 years ago

aschrijver commented 6 years ago

Yesterday I answered a question on stackoverflow named Fully Decentralized P2P:

I’m looking at creating a P2P system. During initial research, I’m reading from Peer-to-Peer – Harnessing the Power of Disruptive Technologies. That book states “a fully decentralized approach to instant messaging would not work on today's Internet.” Mostly blaming firewalls and NATs. The copyright is 2001. Is this information old or still correct?

One existing answer stated:

... now in 2010, it is a lot easier to punch holes in firewalls than it was in 2001, as most routers will allow you to automate the opening of ports via UPNP, so you are likely to have a larger pool of unfirewalled clients to work with.

So I answered 'No' and pointed to Dat as an example, then got immediately down-voted. Presumably because I presented a technology, not a direct answer. But it could also be because my answer is wrong.

Point is:

Either I missed it, or it would be a good thing to improve the docs.

joehand commented 6 years ago

Our work is based on the description in this post of UDP Hole Punching. Updating your answer with that info may help clarity.

I'm not sure we have this directly documented anywhere (even in the paper), someone else asked the other day as well. So, yes more docs 😄 !

aschrijver commented 6 years ago

Thanks @joehand I updated the answer on SO :smile:

devxpy commented 4 years ago

Hey @joehand!

Would it be possible to create a standalone hole punching tool out of DAT?

Could you tell us where we should look in order to achieve that?

RangerMauve commented 4 years ago

You can use the hole punching API inside hyperswarm, Dat's new networking stack.

devxpy commented 4 years ago

@RangerMauve Thanks!

I am a little lost on how to use this API. Could you please help me out?

I created a SO question.