Not looked at code yet, some thoughts: 1) In IPv4 max UDP data size is 65507 bytes. 2) What about big messages (block)? 3) I think relay speed can be increased only by reducing network diameter.
Introducing super-nodes with thousands of connected peers can greatly help here. 4) The only (IMO) UDP advantage: hole punching. But requirement of active TCP connection defies it. And hole punching will need protocol extension. 5) unsolicited tx broadcast will increase traffic of nodes (especially well-connected) and less people will run them. ---- Original Message ----- From: Jeff Garzik <jgar...@exmulti.com> To: Bitcoin Development <bitcoin-development@lists.sourceforge.net> Cc: Sent: Saturday, March 23, 2013 7:17 AM Subject: [Bitcoin-development] A bitcoin UDP P2P protocol extension Here is a rough draft implementation of a UDP P2P protocol extension for bitcoin: https://github.com/jgarzik/bitcoin/tree/udp http://yyz.us/bitcoin/udp-v0.patch Protocol specification (such that it is): - UDP, bound to same port as TCP P2P (normally 8333) - Active, simultaneous TCP P2P connection required (useful against DoS and other attacks) - Same message format as TCP P2P, same pchMessageStart conventions, etc. (my CNetMessage pull req would be helpful here) - Multiple P2P messages per UDP packet permitted - Max UDP packet size 100*1024 bytes - Advertises NODE_UDP in nServices - New "getudpcook" TCP P2P command returns a "udpcook" message, containing a yummy cookie - UDP P2P commands "inv", "tx" and "addr" are handled as if received via TCP - UDP P2P command "udpsub" sets a mask, that subscribes to one or more data broadcasts. - When USM_INV_BCAST mask bit is set, receive "inv" messages via UDP rather than TCP. Project and design goals (or, why do this?): - It is theorized that UDP may be useful for some messages we broadcast throughout the network - A productive discussion STARTS with code, otherwise discussion continues forever. - Investigate improving "inv" relay speed - Investigate unconditional "tx" broadcasting via UDP, as "inv" alternative, for small tx's. - Investigate improving block relay speed (or perhaps block header relay speed) - Open up new design avenues, for P2P patterns more suited to UDP than TCP in general. -- Jeff Garzik exMULTI, Inc. jgar...@exmulti.com ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Bitcoin-development mailing list Bitcoin-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bitcoin-development ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_mar _______________________________________________ Bitcoin-development mailing list Bitcoin-development@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bitcoin-development