View Single Post
Old 07-09-02, 04:07 PM   #4
alphabeater
Registered User
 
Join Date: Jul 2002
Location: uk
Posts: 97
Default

so-called leech control in decentralized p2p is, in my opinion, not properly and reliably implementable.

in a centralized, client-server environment, you can easily add things like the dreaded ratio and other leech-control measures. once you're in a decentralized environment, though, how do you know that anyone is doing what they say they are? the only way i can see to achieve this is a closed protocol, which isn't good for p2p in general and would have to feature strong encryption and protection to stop people from figuring it out and spoofing it. even then, what's to stop me from using a program to generate lots of random files that look like proper files but aren't (this is what ends up happening on direct connect hubs).

leech control can only be included in the official client. with an open protocol, as many p2p programs use now, there's nothing to stop someone else building their own version of the p2p app, but without the limits on connecting and downloading if you're not sharing, perhaps by lying to the rest of the network and saying that the user of this 'unfriendly' p2p program is actually sharing lots. this simply puts the official client at a disadvantage - unlimited downloads without silly limits is a desirable feature, and most people won't think twice about switching to an unofficial client if it allows unlimited downloading and the official one doesn't.

even with a trust system in place, how do you differentiate between a new user with 1,000 files to share, and a leech who just re-joined the network with a new identity and a changed dynamic ip who says they're sharing the same 1,000 files, but isn't? the ip change wouldn't even be needed, if the user reconnected to a different part of the network that wouldn't recognise their ip using a new identity. on an open, officially leech-controlled network with lots of good content, you can almost bet on someone coming up with a client to do this automatically, and that more people will use it, hurting the network more than the original non-sharers.

so do you make it so that new users can't download anything until they've uploaded something? what if they have nothing to share (unlikely, but possible)? what if they have nothing anyone else is uploading? how annoyed would you be if you decided to try out that new p2p for your next download, only to find that you can't download anything until you've waited for it to upload x files, or done whatever else is required of you?

i, for one, would do what i do with ratio ftp sites - stay away from it.

the network could attempt to rate content, but what if they're new files? or versions of existing files on the network, that i ripped myself? besides that, what gets rated higher.. high quality content, popular and known good content, or rare content? who decides?

if i can think of one thing that'd annoy me more than having to wait for someone to upload before i could download, then it'd be not be permitted to do any more downloads because my files weren't rated highly enough by the network. i'd click uninstall right away, and go get the convenient network-unfriendly client with a list of the best-rated files, and pretend to be sharing them.

leech controls are simply annoying. clients that implement them have an inflated sense of their own self-worth (see mojo-nation, if you've ever heard of it)... there are plenty more networks out there, you know.

give your user value in the official client, give them a community and make them feel good about sharing and more will. the reason there are so many leeches on gnutella and fasttrack is that uploaders are just a number or username that you'll probably never be able to find again. this is, i feel, a large advantage of having a community-oriented p2p.. but why does any leech control need to be done by the network itself? it won't work properly - it'll either frustrate new users or simply not have any effect on determined leeches - and in the long run will cause more headaches for both the developers and the users than it will solve.

life isn't fair, and nor by extension are the internet and p2p. have confidence in your users, involve them in a community, and they will share - most people are nice, really. maybe some won't, but with a good reason. maybe others won't at first, but will later. in a good network, no artificial controls are needed, as enough people will share to make the network worthwhile.
alphabeater is offline   Reply With Quote