4
0
With Bitcoin and Ethereum in the news so much I started to look into peer to peer networks more. My question is, do most of the people running full Bitcoin or Ether nodes have to open port 8333 to the public internet? Or is it possible to use something like UDP hole punching to make them work without this extra step.
i.e. does the average Bitcoin enthusiast who installs the program on his work computer get a real accessible TCP ip and port other people can access? Or, it almost always involves configuring a router to say port 8333 goes to that specific computer. Same question for home computers since they have NAT systems as well these days.
1
thank you, great answer, I also found this https://dirkmittler.homeip.net/blog/archives/3340 after searching for uPnP. So uPnP is totally different from UDP Hole Punching huh?
– Andrew Arrow – 2017-10-22T23:04:40.590They are not the same thing. A good article can be found here. Most such P2P programs also try to vary the geographical locations of their sources in order to avoid closed circles - imagine 9 Bitcoin full nodes, each connecting with the 8 others and so unable to connect with the rest of the world and to validate nothing.
– harrymc – 2017-10-23T06:40:31.610okay then this paper http://www.brynosaurus.com/pub/net/p2pnat/ is often cited as how some networks work, but it doesn't mention uPnP at all. Is this paper just theory then and uPnP is reality?
– Andrew Arrow – 2017-10-23T17:15:11.560This is a good paper dealing with possible network configurations. It does not deal with the technical part of how the connections are made via router ports but with higher levels. The hole punching section is correct and there are P2P programs that use it over UDP, mostly some torrent clients, but no cryptocurrency products. Cryptocurrency products use TCP, and hole punching over it is not reliable, while these products need to be very reliable. TCP is more suitable because it's reliable, ordered, and error-checked.
– harrymc – 2017-10-23T17:59:29.387