First: You need about one year of time to write a Gnutella client from scratch.
Then:
-
http://gnufu.net for the basics
-
http://gnet-specs.gnufu.net for the specifications.
- Reading in on the gdf mailinglist and asking specifics there:
http://groups.yahoo.com/group/the_gdf
If you don't have one year (or don't want to work that long on mindless protocol implementation), you can still greatly contribute by joining one of the existing free Gnutella Clients (for example Phex:
http://wiki.phex.org ).