the finecs'Credit System (CS) is meant only to identify "leechers" by behaviour and to punish them. It works only on partial files. Complete files are not affected. For partial files, this CS ensures every client to get till 4 complete chunks "for free". After the fourth chunk is uploaded without any data sent back, the rating of such a client will decrease. The higher the difference between what he has downloaded, with respect to the 4 chunk threshold, the lower his rating. Rating will never reach zero. That means that those clients can still get chunks from you provided they wait enough in your queue. But, of course, the waiting time raises as rating decreases. If a client, which has been "punished" for having downloaded so much, starts uploading to you, his rating will raise. Once the difference between the U-D (with respect to you) is smaller than 4 chunks, then his max rating will be reached again. Few clarifing points:
- There's no ban.
- There's no "guesses". The CS will react deterministically to the monitored situation
- It's based on absolute differences, not ratios.
- Non linear correlation between the difference and the rating
- No credits given either.
Clients which are within the 4 chunks threshold are all treated the same way as they all have the same max rating. This ensure 3 things:
- The CS cannot be used for credit shaping
- The CS does not suffer for credit shaping
- Extreme fairness based on waiting time and file priority settings
Clients that do not support Secure User Identification (SUI), either by design or by user's will, get a x 0.80 penalty.
It does not interfere with Small File Pushing (being these ones all complete files).
Some numbers to clarify resulting ratings vs U-D differences the CS monitors:
In MegaBytes U-D - Rating 1 MB - 100 2 MB - 100 10 MB - 100 20 MB - 100 30 MB - 100 37.1MB - 100 (4 chunks threshold reached) 40 MB - 86 50 MB - 55 60 MB - 38 70 MB - 28 80 MB - 21 90 MB - 17 100 MB - 13
In number of chunks U-D - Rating 1 chunk - 100 2 chunks - 100 3 chunks - 100 4 chunks - 100 (4 chunks threshold reached) 5 chunks - 64 6 chunks - 44 7 chunks - 32 8 chunks - 25 9 chunks - 19 10 chunks- 16
Number decreased of 20% if SUI not available.
The simple equations used to calculate ratings:
diff = uploaded - downloaded threshold = 4*PARTSIZE rating = 1
if (downloaded < PARTSIZE) // If not received at least a chunk, limit "risk" to 3 chunks instead of 4 diff += PARTSIZE; if (diff > threshold) rating = (threshold/diff)^2 if (!SUI) rating = rating * 0.80
The fine CS was developed by CiccioBastardo and is active in the ZZUL BastarD Mod