A three-pronged proposal to dramatically improve Gnutella

published Dec 05, 2001, last modified Jun 26, 2013

This document is licensed under the GNU FDL

Gnutella technology needs to evolve so that servents and the entire network are reliable and faster. Here's a simple proposal with three points that, if developed, will get us closer to that target.

What I'd like to see, is the technology evolving to include:

  1. Balancing search servers on each servent like FastTrack: a balancing search server would be automatically chosen among the fastest nodes in a network, and servents would be redirected to connect to it. It would also intercept searches and respond with its search cache. This could also work on the principle that the faster the node is, the more users and searches will it serve. This will gain us much-needed speed, although it would be possible that bad nodes have more impact on the validity of queries. My view is that the potential benefits outweigh the potential harm.
    UPDATE: it seems LimeWire includes supernode technology in its latest client. It would be nice to have specs on this so other clients can implement accordingly.
  2. A peer rating system that'll allow for rating "bad community users", thereby improving the community quality by blocking or slowing down poisonous nodes. This could be harmful if poisonous nodes try to poison the rating system, and should be thought out well before doing it.
    UPDATE: it seems LimeWire includes similar technology in the form of a peer blocking system in its latest client. It would be nice to have specs on this so other clients can implement accordingly.
  3. Context-sensitive metadata searches, like FastTrack. This way we will avoid bogus files and improve network responsiveness, efficiency and quality. It should be plugin-based with a "magic"-like system to identify metadata in files, so extending it in future releases of servents becomes easy. Metadata should be pushed along with search replies automatically, not upon request.
    UPDATE: I did not know that LimeWire includes metadata serving and searching in its latest client. It would be nice to have specs on this so other clients can implement accordingly.

How to implement these ideas falls beyond the scope of this proposal. This proposal, though, properly implemented, would launch Gnutella technology several generations ahead. At least that's what I believe.

As far as I can do, I cannot define detailed specs or develop, since my time is limited among my other projects and the University.