Re: Gnutella 3
[email protected] Mon, 1 Mar 2010 16:56:01 +0000 (UTC)
| Newsgroups | gmane.network.gnutella.devel |
|---|---|
| Organization | Home, Grenoble, France |
| Message-ID | <[email protected]> |
Quoting Michael Green <[email protected]> from ml.gnutella.dev-forum: :As for the complexity of Gnutella overall, the main problem as I see it :is with the documentation or rather the lack thereof. We started the 0.6 :documentation a while ago and then things dwindled down due to various :reasons, leaving it unfinished. Greg and his team at LimeWire did try to :pick things up where others left and built a fairly good documentation :(kudos to them!), but in my humble opinion it's a bit too :LimeWire-centric, with features that are not always incorporated or :compatible with other clients (Raphael spent ages figuring their DHT :out). I think that'd be the first thing to address. Once it's there, :people will have a better idea of how things work and give a better :input of why or how things should be simplified, improved, removed, etc. Yes, lack of proper documentation is a problem. With the ability to look back now, we can probably determine what works best and focus on documenting these features, as opposed to legacy features nobody actively uses anymore. Also what's important to document is implementation strategies, and show use-cases of the protocol features to help newcomers understand the dynamics at play. What I find critically under-documented (unable to implement as-is): * Fw-to-fw transfers. * Chat * Many vendor messages I see supported but have seen no documentation for: - LIME/6v1 - LIME/8v1 - LIME/16v2 - LIME/17v2 - LIME/25v1 - LIME/30v1 - LIME/33v1 What I find find under-documented (but which I already implemented somehow): * IPv6 support * DHT values (types, GGEP keys used) * The "DHT" and "DHTIPP" GGEP extensions in Ping / Pong. * The "XQ" GGEP extension in queries. * The X-FW-Node-Info header. * Firewalled alt-loc exchanges. * TLS features (gtk-gnutella pioneered it, but LimeWire introduced "tls=<hex>") * HEAD Pings and Pongs (v1 and v2) * Keys in the Capability Vendor Message (null/10v0) * OOB query hits v3 What I think is not used enough despite being properly documented: * GGEP "H" to transmit hashes * Deflated UDP * X-Push-Proxy headers (only gtk-gnutella and LimeWire seem to be using it) Raphael