EMuleCreditSystem

From MLDonkey
Jump to: navigation, search

Contents

What is it - why does it exist?

The eMuleCreditSystem is a LocalCreditSystem.

The creditsystem was constructed to battle LeecherProblem. This became or threatened to become a problem with the problem of freeloaders/leechers being OpenSource

How it works

The emule developer tried to prevent this by implementing a credit system: if you download from me, you give me a higher ranking, so I can download from you easier than others can.

Here is additional information found in the forum (to be checked)

Every client which connects to you for any reason is remembered by his userhash (this is not your ID or IP).
If this client allows you to download, or you upload to him, emule saves the amount of transfered bytes in a file (clients.met).
Everytime when a client asks you for a file the two transfer values are used to calculate a modifier, which directly affects the asking clients rating and his place in the queue.
Here are the technical values:
modifier = (2*uploaded to you) / downloaded from you
So if client X has downloaded 2 MB from you and you 3 MB from him, he gets a modifier of (3*2 /2) = 3.0. That means if he waits in your queue, his waiting time counts 3.0 times more than the waiting time of client Y.
However the modifier can not be greater than 10.0 or smaller then 1.0.
All clients with a modifier greater than 1 are indicated by a yellow icon in your eMule(?) upload window.

The positive effects

Possible bonuses from the credit system may include:

-- _As far as i can say, it \"encourages\" clients to upload lots of Bytes, not necessarily a full chunk._

-- _Servers \"encourages\" users to properly configure their firewalls, not emule credit system._

-- _In the bottom of this page there's a way to exploit this credit system and it's not very hard to share only the file you are downloading._

The negative effects

However, this looks like a pretty bad idea, because it is an interaction between only two clients. what if i upload tons of rare files that most emule users don't want? in effect, it could lead to the kazaafication of the donkey network, by giving a disadvantage to uploaders of rare goodies. The best (only ?) way to improve your download rate with eMule peers is to increase your credits, By uploading to those sources. Uploading files to others sources, or files that don't interest them is a "waste of upload for building credits". Hence the optimal behavior with this credit system is to only share the files you're currently downloading; This behavior is bad for both diversity and availability of files. (See for example [Forums&fileviewtopic&t=71 this thread])

It's also bad for new comers, that may join the ranks of KaZaa users instead of using the eDonkey network:

First, the edonkey network is a zero-sum game. Once you realize that you should be able to figure out this is really a wash, they should be slowing themselves and the rest of the network by doing this.

Let's say a network has 100 mldonkey clients and 100 emule clients. Client A comes on the network (doesn't matter which client, really) Since client A hasn't uploaded anything yet to the emule clients, client A has a disadvantage with that set of clients (who keep track) and have are equal with the edonkey clients (who don't care). Let's say that emule gives a 2:1 ratio over those that have uploaded to the particular emule client and those that haven't.

Let P be the average probability of getting a segment from a regular edonkey client. Initially, A sees a probability of 100(P) for the edonkey clients and 100(0.67)(P) for the emule clients, or:

ProbA  100 (P) + 100 (.67)P  167(P)

The probability of connecting to an emule client is lower than the edonkey client since A hasn't uploaded anything to the emule clients. After A shares a segment with 1 emule client, A now sees:

ProbA = 100 (P) + 99 (.67) P + 1 (1.33) P

Now in this 200 client network if all the clients were regular edonkeys the equation would be:

ProbA = 200(P)

And it takes 50 uploads to emule clients before the probabilities become equal.

ProbA  100 (P) + 50(.67)P + 50(1.33) P  200 (P)

But now the question is, does it scale?

If it takes uploading to half of all the peers to get the same effective probability that mldonkey offers, then no. In an emule network with 1500 emules, you would need to upload to 750 emules before you got the same chance with 1500 regular edonkey clients.

So all they're really doing is just shifting the load from themselves to the other donkey clients. And no, they're not really leeches, but they're not exactly helping the network either. -- Guest in the [forums]

(I have a feeling this list will be longer than the one above /Vaste)

What can be done instead?

a better solution would probably be to implement some kind of overall highscore, so that people that upload much can also have a good download. but noone has yet come up with a viable idea without centralizing the network, making it vulnerable to outside attack.

but the issue is much more complex. if someone feels spirited to give a more competent overview, go ahead :)

The most straight-forward and natural way would be the social rather than the technical one, e.g by fostering a sense of FileSharing. It has worked fine for years and will probably continue to do so. Click the link for more...

How can it be exploited?

First, for those who says this is not an exploit:

From WordNet (r) 1.7 ~[[wn]] exploit:
    n : a notable achievement: \"he performed a great deed\"; \"the
         book was her finest effort\" ~[[syn: {deed}, {feat}, {effort}]]
    v 1: use to one's advantage; \"He exploit the new taxation system\"; \"She knows
           how to work the system\"; \"he works his parents for sympathy\" ~[[syn: {work}]]

Well, one easy exploit is to not share anything but the files you're downloading.

More complex would include uploading only to those who have the chunks you want and those who are capable of providing it (high upload etc.)

Maybe MLdonkey should adapt these methods to convince eMule that the system doesn't work?

From JargonFile 4.2.0 exploit:  n. ~[[originally cracker slang]]
 1. A vulnerability in software that can be used for breaking security
    or otherwise attacking an Internet host over the network.
    The Ping O' Death is a famous exploit.
 2. More grammatically, a program that exploits an exploit in sense 1,

_-- I don't consider those exploits, you aren't doing anything condemnable, you're just optimizing your behavior to the way the eMule credit system works (and this optimization itself is exploitable. Now clients that want to attrack your attention -and upload- just have to lie about chunks they really have...) Exploits involve identity theft & such, but its not as easy to achieve..._

_-- So it's less of an exploit because the exploit is exploitable? The reasons I do consider those exploits as the behaviour is condemnable. The behaviour was not (I hope) intended when the creditsystem was built. It is also against the interest of the rest of the network. So as it can be seen as an vulnerability that this kind of \"attack\" works, I say those are exploits. /Vaste_



LanguagesEnglish

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox