A better way to promote sharing As many people are posting, and studies are finding, most gnutella users are freeloaders. I have to admit, I am one too. (Hey, I'm an economist, they taught me to do it in college...) It shouldn't be a surprise to anyone since there are no personal incentives for sharing but there is the penalty of bandwidth and computer resources. This is the externality that is killing the gnutella network.
The current ways of promoting sharing such as requiring one shared file or limiting download bandwidth as a percent of upload bandwidth are not working and were not very well thought out ideas to begin with. We need to unleash some economics on gnutella.
I have a proposal to the gnutella standard to promote and maintain efficient sharing.
Make it a “build up” game and set a price:
Think of it like those that sit and play “Everquest” for unbelievable amounts of time, people want to “build up” their resources. We can use this to gnutella’s advantage. By using good files like points, players can win by sharing the most useful files.
The price to download is to upload. Simple enough. This requires the client to keep track of the uploads and “useful files”. For every item that was sought to be uploaded, the user will obtain rights to download. This does not means that the file had to be uploaded or even completed from your computer (perhaps it was busy at the time with other uploads) but if you had the exact same file as someone else but it was being uploaded from their computer and not yours at the time, you should also get credit for sharing a useful file. That file should be marked by the client software as “useful” or with a cute star or a smiley face…. You get the idea. Also, the useful rating of the file should have a time limit of 1 month which will cause users to continuously need to strive to provide other users with good files rather than sit on some old outdated files and just be a leech. This policy will also eliminate freeloading by people that put a useless file in their share folder and start sucking the life out of gnutella.
For every useful byte that you share, you are allowed 10x that in return in full speed without bandwidth limitations. That means if you shared a file that was 1,000 bytes. As long as someone wants that file, and as long as you share that wanted file, you are entitled to 10,000 bytes at full speed in return for you contribution to the network. The client software can keep track of that. Otherwise, your total download bandwidth should be limited to 10 kb/s. However, if the max speed does not exceed 10 kb/s anyway, sharers shall not have their points deducted until they can download in excess of 10 kb/s.
Special “Tenure” rating:
Since sharing a single 3 Mb song is hardly sharing, it would be a good idea to promote some arbitrary amount of sharing that promotes putting files on the board. I’m saying 1 GB is a reasonable size that says, “Hey! I’m actually contributing to this network”. To those that share in excess of 1 GB, I would give them a “Tenure” rating for their service. Since not every file is a useful file, having 1 GB of useful files safely implies that the actual shared amount exceeds 1 GB by far. Users will need to share as much as possible and fill the demand of their fellow users to obtain and maintain the 1 GB tenure.
A tenure user sharing more than 1 GB of useful files should have unlimited bandwidth use of gnutella and also should be favored when downloading against “non-tenure”(10 kb/s) users. However, people entitled to their limited bytes at full speed are also treated as tenure for their limited bytes. So if multiple people on one server, a non-tenure user’s downloads will be paused if the server has limited bandwidth while tenure users download happily. Also, once sharing exceeds 1 GB, the user’s screen should turn gold and say “Tenure” and have fireworks to acknowledge their contribution to the gnutella network. Pride is good and necessary especially in an invisible place like the internet. Pride is the thing that can make something like gnutella work since no one is getting paid.
There are many inherent benefits to these policies. Many people will treat this like a role playing game where they build up useful files and obtain rights to download and obtain “Tenure” status. This will promote quality file sharing naturally and end freeloading by intentionally sharing useless files. This will also automatically ensure continuous quality improvement of the files being shared. People will be willing adhere to standards of file naming as renaming an identical file some other name will not likely get that file a “useful” status as people choose files with the most users providing it and not the odd ball. The speed of transfers should dramatically improve as more and more people seek to provide popular files for upload.
I hope this encourages discussion on how to improve sharing in gnutella. It would really be great if this or a more refined version of this can be implemented in the next gnutella standard. Thanks for reading.
critic |