Bitcoin Forum
May 15, 2024, 07:05:44 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Lets use "UDP hole punching"  (Read 2182 times)
ThePok (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 100


View Profile
June 04, 2012, 07:23:18 PM
 #1

Hi!

Why dont we use "UDP hole punching"

"UDP hole punching is a commonly used technique employed in network address translator (NAT) applications for maintaining User Datagram Protocol (UDP) packet streams that traverse the NAT."

Its the Sytem that the old Skypeprotocol did use!

Heres the Wikiarticle: http://en.wikipedia.org/wiki/UDP_hole_punching

It could let Bidcoinnodes behind firewalls talk direcly to each other, that would result in less stress on the listeningnodes. They only had to make known cients behind firewalls to each other.

Blocks could be exchanged indepentendly!

It would create thousends of semi-listening-hosts Smiley
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
June 04, 2012, 07:54:24 PM
 #2

My understanding of "UDP punching" is an interm party is used to allow the two firewalled entities to communicate.

In Bitcoin that would be listening nodes.

Instead of:
Firewalled Node < -----  Listening Node

It becomes:
Firewalled Node <------ Listening Node as a relay <--------- Firewalled Node

Since the listening node already has a complete block chain it makes little sense to act as a relay and instead just provide the requested data directly.
ThePok (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 100


View Profile
June 04, 2012, 07:58:49 PM
Last edit: June 04, 2012, 08:13:53 PM by ThePok
 #3

no....

read the Wikiarticle again Wink


It becomes:
Firewalled Node <---------------> Firewalled Node

Listening Node is only used for initalisation. The firewalled nodes have to know the IP of the other node, and they have to send and recive in a ~5 minit Timewindow to get the Connection going Smiley

Heres a better description:
http://www.brynosaurus.com/pub/net/p2pnat/
Theo
Newbie
*
Offline Offline

Activity: 22
Merit: 0



View Profile
June 04, 2012, 10:14:30 PM
 #4

Bitcoin does not use UDP. It's not trivial to add a reliable UDP transport on top of a TCP-based application. Certainly possible, but usually not worth the hassle.
ThePok (OP)
Full Member
***
Offline Offline

Activity: 131
Merit: 100


View Profile
June 05, 2012, 09:57:24 AM
 #5

But it would make it much harder to DOS the Bitcoinnetwork! At least it would work for some days, even without listeningnodes at all!
Matt Corallo
Hero Member
*****
expert
Offline Offline

Activity: 755
Merit: 515


View Profile
June 06, 2012, 11:37:31 PM
 #6

TCP hole punching does exist and works very similar to the UDP variant, so TCP isnt whats holding us back.  Its quite doable, but getting two peers to know about each other and be willing to start a connection between them in a completely decentralized fashion takes a ton of work, so no one has done it yet for bitcoin.

Bitcoin Core, rust-lightning, http://bitcoinfibre.org etc.
PGP ID: 07DF 3E57 A548 CCFB 7530  7091 89BB B866 3E2E65CE
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!