Creating a successful peer to peer
filesharing network involves one simple concept: user sharing
. Consider two opposing examples of peer to peer networks and their varying success rates. Everyone has heard of Napster
, the MP3
sharing program. Napster has enjoyed great success (at least as far as its effectiveness at locating MP3s is concerned). Compare the success of Napster to Nullsoft
filesharing program. Gnutella is a much more theoretically interesting and distributed peer to peer model. Because of the difficulty in blocking its protocol
and the vast diversity of files which can be shared through it, Gnutella should be an amazing file searching utility capable of locating most common files easily.
Why then is it that Napster searches return more numerous, accurate results from better hosts than Gnutella does?
Napster acheives its high rate of user sharing participation by automatically sharing all files download
ed. Sure you can change the sharing and download directories to alternative locations, but most users won't alter these settings. Furthering the encouragement of the user to keep all of his MP3s in the shared music repository is the fact that Napster includes a built in MP3 player
and music library manager that cooperate
s best with the default
download location and sharing scheme
. By making it easy
for users to keep their downloaded music archive
s in the shared folder, Napster (perhaps inadvertantly) creates higher user sharing.
While some may argue that the core of Gnutella's problems lay in its unscalable
protocol and hodgepodge
of client software, I assert that the primary reason successful searching
on Gnutella is so difficult is its lack of sharing encouragement. Because all file types are shared on the Gnutella network
, great difficulty arises in encouraging users to leave their downloaded files in their public
folder. Throwing up its hands when confronted with this daunting effort, Gnutella includes no
file viewing or download management features. This results in users simply moving their downloaded files to private folders where they can implement some kind of organization scheme on their own.
We've now established that the core focus of any public peer to peer filesharing system has to be encouraging user sharing participation
if a successful network is to be created, but let me be clear that forced
sharing is rarely successful either. You may note that the least popular servers in the Hotline
community are those which require upload to download ratios
. FTP server
s with similar requirements are also becoming less used as the masses flock to Napster's superior searching capabilities and relaxed download requirements. Forced sharing is simply unacceptable to the vast morass of dial-up
users who cannot justify doubling their already lengthy download times by piping up a sizable upload
users who can upload megs in minutes might write off such a time loss as negligible
, but everyone else sees it as a major headache
they'd rather avoid. The obvious compromise in this situation is the encouraged filesharing system outlined above.
When designing peer to peer filesharing protocols, it's important to remember two things: most people are greedy
and most people are lazy
. By harnessing the laziness of the majority of your users it's possible to overcome their greedy nature and create a successful architecture.