Hello, if I may, I'd like to suggest a small improvement to counter the incresing leeching behaviour in the e2dk network.
After a lot of investigation on client behaviour, I can say there are:
1) Fair clients, they upload full chunks while downloading about the same amount of data. Usually they cooperate with my client to share files and complete the same files I download at the same time I do.
2) "closed" clients, they usually have completed files and don't download from me, but they never give me anything even after a week. They are suspicious, but one can still justify them by saying they might have very long queues... yet some of them are malicious, as I reach QR 2 or 1, then they reset me or reconnect and put me back to 4800 or such.
3) unfair clients, they download from me hundreds of megabytes, but upload only partial chunks, like 10Kb, sometimes 1Mb. Usually their download/upload ratio from me is 1000 or 10000! Yet they seem to complete to download a file much before me. If they start with a couple of parts out of 20, they complete the file before me, because they download what I have, but not upload me what they got from others. And I guess they do the same to others. In a word: leechers.
While antileeching is quite a challenging task and nothing can be done against behaviour 2, wouldn't a little improvement to credit system help to counter unfair clients?
If I'm not mistaken, the credit system gives 100 to every client with whom there was no data exchange (and that is ok) and to clients that has downloaded more than twice what they uploaded to you.
The change I suggest is to allow "negative" credits for clients with a too high download/upload ratio, with a bottom value of 50.
This means that if a client downloads more than twice what has uploaded to you, the rating goes down to 90, 85, 70, until it finally reaches 50 with a 10:1 ratio. This would give much less priority to clients with too low upload or unfair behaviour.
If the client is fair, my rating in his queue should be 1000 (max), so should quickly upload to me and recover from a rating below 100 in my queue.
This should also be quite easy to code, I bet