A three-pronged proposal to dramatically improve Gnutella
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:
- 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.
- 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.
- 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.