A bitcoin UDP P2P protocol extension



Summary:

Jeff Garzik proposed a UDP P2P protocol extension for Bitcoin. The protocol is theorized to be useful for some messages broadcasted throughout the network. The implementation uses UDP bound to the same port as TCP P2P, with an active simultaneous TCP P2P connection required and multiple P2P messages per UDP packet permitted. The protocol also allows advertising NODE_UDP in nServices, returning a "udpcook" message that contains a cookie when new "getudpcook" TCP P2P command is used. Commands such as "inv", "tx", and "addr" are handled similarly to those received via TCP. The project aims to investigate improving "inv" relay speed and block relay speed, opening up new design avenues for P2P patterns more suited to UDP than TCP in general. It is suggested that unsolicited tx broadcast will increase traffic of nodes especially well-connected, resulting in less people running them. Jeff also mentioned that the only advantage of UDP he could think of was hole punching, but the requirement of active TCP connection defies it, thus needing protocol extension. He thinks that the relay speed can be increased only by reducing network diameter, introducing super-nodes with thousands of connected peers can greatly help here.


Updated on: 2023-06-06T11:16:48.102500+00:00