CreditSystems

From EMule Wiki
(Difference between revisions)
Jump to: navigation, search
 
(added JusticeCredit. Not sure if this is a bad feature)
 
(13 intermediate revisions by 5 users not shown)
Line 1: Line 1:
A credit system determines the score and thant wat the wait time peers wait in your queue before you upload to them.
+
A credit system determines the score and that detirmins the wait time peers wait in your queue before you upload to them.
  
 
= Credit systems =
 
= Credit systems =
 
==Official Credit System==
 
==Official Credit System==
  
There are two different credit modifier calculated: Ratio1 = Uploaded Total x 2 / Downloaded Total Ratio2 = SQRT(Uploaded Total + 2) Both ratios are compared and the lower value is used as modifier. Some boundary conditions also exist: > Uploaded Total < 1MB => Modifier = 1 > Downloaded Total = 0 => Modifier = 10 > The modifier may not be lower than 1 or higher than 10
+
There are two different credit modifier calculated:
[edit]
+
*Ratio1 = Uploaded Total x 2 / Downloaded Total  
 +
*Ratio2 = SQRT(Uploaded Total + 2)  
 +
Both ratios are compared and the lower value is used as modifier.  
 +
Some boundary conditions also exist:  
 +
* > Uploaded Total < 1MB => Modifier = 1  
 +
* > Downloaded Total = 0 => Modifier = 10  
 +
* > The modifier may not be lower than 1 or higher than 10
 +
 
 
==Peace Credits:==
 
==Peace Credits:==
  
same as official credit system, only shorter code
+
same as official credit system, only shorter (but slower!!) code
  
 
== Xman improved Credit System ==
 
== Xman improved Credit System ==
Line 16: Line 23:
 
On the other side, clients you upload much data and they don't give something back to you will get a penalty for the current emule session.
 
On the other side, clients you upload much data and they don't give something back to you will get a penalty for the current emule session.
  
Formula for positive bonus:
+
[Formula for positive bonus:
  
 
     * Bonus = (download - upload)/10485760 - 1.0/(download/10485760)  
 
     * Bonus = (download - upload)/10485760 - 1.0/(download/10485760)  
Line 23: Line 30:
  
 
Example (with ~ 1 Chunk difference):
 
Example (with ~ 1 Chunk difference):
Download Upload Official version Xman improved
+
{| class="wikitable"
10MB 1MB 3,46 3,46 + bonus:0
+
! Download !! Upload !! Official version !! Xman improved
20MB 11MB 3,63 3,63 + bonus:0
+
|-
30MB 21MB 2,86 2,86 + bonus:0,2
+
| style="text-align:right" | 10MB || style="text-align:right" | 1MB || style="text-align:center" | 3,46 || style="text-align:center" | 3,46 + bonus:0
90MB 81MB 2,22 2,22 + bonus:0,7
+
|-
50MB 20MB 5,0 5,0 + bonus:2,2
+
| style="text-align:right" | 20MB || style="text-align:right" | 11MB || style="text-align:center" | 3,63 || style="text-align:center" | 3,63 + bonus:0
90MB 50MB 3,6 3,6 + bonus:3,7
+
|-
120MB 80MB 3,0 3,0 + bonus:3,8
+
| style="text-align:right" | 30MB || style="text-align:right" | 21MB || style="text-align:center" | 2,86 || style="text-align:center" | 2,86 + bonus:0,2
 +
|-
 +
| style="text-align:right" | 90MB || style="text-align:right" | 81MB || style="text-align:center" | 2,22 || style="text-align:center" | 2,22 + bonus:0,7
 +
|-
 +
| style="text-align:right" | 50MB || style="text-align:right" | 20MB || style="text-align:center" | 5,0 || style="text-align:center" | 5,0 + bonus:2,2
 +
|-
 +
| style="text-align:right" | 90MB || style="text-align:right" | 50MB || style="text-align:center" | 3,6 || style="text-align:center" | 3,6 + bonus:3,7
 +
|-
 +
| style="text-align:right" | 120MB || style="text-align:right" | 80MB || style="text-align:center" | 3,0 || style="text-align:center" | 3,0 + bonus:3,8
 +
|}
 +
a client can get a negative bonus of 0,1 if you gave him 1 chunk(9,28MB) more this session and also at complete comparison of download/upload without geting something back.
  
a client can get a negative bonus of 0,1 if you gave him 1 chunk(9,28MB) more this session and also at complete comparsion of download/upload without geting something back.
+
a client can get a negative bonus of 0,2 if you gave him more than 2 chunk(9,28MB) this session and also at complete comparison of download/upload without geting something back
  
a client can get a negative bonus of 0,2 if you gave him more than 2 chunk(9,28MB) this session and also at complete comparsion of download/upload without geting something back
+
== Magic angel credit system ==
[edit]
+
Magic angel credit system
+
  
 
Magic Angel" Creditsystem based on the official Creditsstem. The differences are:
 
Magic Angel" Creditsystem based on the official Creditsstem. The differences are:
  
    * it gives Credits for Upload more than 1.65MB (official 1.00MB)
+
* it gives Credits for Upload more than 1.65MB (official 1.00MB)
    * the lowest modifier is 0.1 (official 1.0)
+
* the lowest modifier is 0.1 (official 1.0)
    * the highest modifier is 50.0 (official 10.0)  
+
* the highest modifier is 50.0 (official 10.0)  
  
 
== The Magic Angel + Creditsystem ==
 
== The Magic Angel + Creditsystem ==
Line 48: Line 63:
 
The Magic Angel + Creditsystem based on Magic Angel Creditssytem, but increases the modifier a bit, if the client uploaded to us more than we uploaded to him. If the upload of the client minus his download is
 
The Magic Angel + Creditsystem based on Magic Angel Creditssytem, but increases the modifier a bit, if the client uploaded to us more than we uploaded to him. If the upload of the client minus his download is
  
    * < 7MB: modifier + 0.3
+
* < 7MB: modifier + 0.3
    * < 15MB: modifier + 1.0
+
* < 15MB: modifier + 1.0
    * < 30MB: modifier + 2.0
+
* < 30MB: modifier + 2.0
    * >= 30MB: modifier + 3.0  
+
* >= 30MB: modifier + 3.0  
== Ratio Credit System ==
+
  
    * based on official cs, but lowest modifier's 0.1 not 1.0 in official
+
== Ratio Credit System ==
    * x2, x4, x16 credit award to uploaders  
+
 
 +
* based on official cs, but lowest modifier's 0.1 not 1.0 in official
 +
* x2, x4, x16 credit award to uploaders  
  
  
Line 62: Line 78:
 
Source: Stullemule 3.6 src - ClientCredits.cpp - code part: case CS_RATIO: // RT.10a mod Credit
 
Source: Stullemule 3.6 src - ClientCredits.cpp - code part: case CS_RATIO: // RT.10a mod Credit
  
    * In contrast to its name, it is not based on UL/DL ratio, but on DL, UL values and their differencies.
+
* In contrast to its name, it is not based on UL/DL ratio, but on DL, UL values and their differencies.
    * There is no simple and the only formula.
+
* There is no simple and the only formula.
    * Default credit = 1
+
* Default credit = 1
    * Progressively punishes near zero ( <= 1 MB ) uploaders.
+
* Progressively punishes near zero ( <= 1 MB ) uploaders.
    * Progressively boosts uploaders who got nothing paid back yet ( <= 1 MB in total ).
+
* Progressively boosts uploaders who got nothing paid back yet ( <= 1 MB in total ).
    * For client who uploaded to me > 1 MB and <=9 MB grants minimal credit DL / 9.
+
* For client who uploaded to me > 1 MB and <=9 MB grants minimal credit DL / 9.
    * For client who uploaded to me > 9 MB minimal credit is 0.7 + sqrt ( DL +1 ) / 10. E.g. uploading 99 MB grants credit 1.7.
+
* For client who uploaded to me > 9 MB minimal credit is 0.7 + sqrt ( DL +1 ) / 10. E.g. uploading 99 MB grants credit 1.7.
    * With balanced ratio credit raises proportional to sqrt ( DL + 1)
+
* With balanced ratio credit raises proportional to sqrt ( DL + 1)
    * Credit is farther increased/decreased, depending on UL - DL difference.
+
* Credit is farther increased/decreased, depending on UL - DL difference.
    * No limiting values  
+
* No limiting values  
  
 
Legend and formulas:
 
Legend and formulas:
Line 93: Line 109:
 
Table of Ratio Credit values
 
Table of Ratio Credit values
  
Image:RatioCredit.png
+
http://wiki.emule-web.de/image/Image_RatioCredit.png
 +
 
 
== Neo Credit system ==
 
== Neo Credit system ==
  
Line 101: Line 118:
  
 
If the result of uploaded - downloaded is smaller then -1.0 the formula is: ((-1*(uploaded-downloaded))/(9728000*1(<- In case of bad/no SI) or 2(<- In case he owns a valid SI)))^2. The biggest allowed result is 2.0 the smallest allowed result is 1.0.
 
If the result of uploaded - downloaded is smaller then -1.0 the formula is: ((-1*(uploaded-downloaded))/(9728000*1(<- In case of bad/no SI) or 2(<- In case he owns a valid SI)))^2. The biggest allowed result is 2.0 the smallest allowed result is 1.0.
[edit]
 
Pawcio Credit System:
 
  
    * Range from 1.0 to 100.0
+
== Pawcio Credit System ==
    * Multiplier of 3 (instead of 2) ---- ratio = 3 * downloaded / uploaded
+
    * For new clients (downloaded and uploaded data less than 1MB) ratio = 3.0 (instead of 1.0)
+
    * If you have recieved more than 1MB from someone but haven't given anything back user gets ratio = 100.0
+
    * Small bonus for clients that have given you many MB:
+
          o if you get 100MB then user recieve ratio = 50.0 till you give back 108MB
+
          o 50MB - ratio = 25.0 - 55MB
+
          o 25MB - ratio = 12.0 - 28MB
+
          o 10MB - ratio = 5.0 - 12MB
+
  
 +
* Range from 1.0 to 100.0
 +
* Multiplier of 3 (instead of 2) ---- ratio = 3 * downloaded / uploaded
 +
* For new clients (downloaded and uploaded data less than 1MB) ratio = 3.0 (instead of 1.0)
 +
* If you have received more than 1MB from someone but haven't given anything back user gets ratio = 100.0
 +
* Small bonus for clients that have given you many MB:
 +
** if you get 100MB then user receive ratio = 50.0 till you give back 108MB
 +
** 50MB - ratio = 25.0 - 55MB
 +
** 25MB - ratio = 12.0 - 28MB
 +
** 10MB - ratio = 5.0 - 12MB
  
== Fine Credit system ==
 
  
    * punish client for downloading partial files without giving back.
+
== Fine Credit system ==
  
Fine CS
+
* punish client for downloading partial files without giving back.
  
 +
[[Fine CS]]
  
 
== S.W.A.T. Credits ==
 
== S.W.A.T. Credits ==
  
There are two different credit modifier calculated: Ratio1 = Uploaded Total x 2.2 / Downloaded Total Ratio2 = SQRT(Uploaded Total + 2) Both ratios are compared and the lower value is used as modifier. Some boundary conditions also exist: > Uploaded Total < 1MB (exactly!) => Modifier = 1 > Downloaded Total = 0 => Modifier = 10 > The modifier may not be lower than 1 or higher than 100
+
There are two different credit modifier calculated:
 
+
*Ratio1 = Uploaded Total x 2.2 / Downloaded Total  
 +
*Ratio2 = SQRT(Uploaded Total + 2)  
 +
Both ratios are compared and the lower value is used as modifier. Some boundary conditions also exist:  
 +
* Uploaded Total < 1MB (exactly!) => Modifier = 1  
 +
* Downloaded Total = 0             => Modifier = 10  
 +
* The modifier may not be lower than 1 or higher than 100
  
 
== Sivka Credits: ==
 
== Sivka Credits: ==
Line 143: Line 164:
 
else ratio = 1
 
else ratio = 1
  
 
+
== Eastshare Credit System ==
== Eastshare Credit System ==
+
  
 
Base ratings: id. users(100); not supported users(80); invalid id. users(0); min.=10, max.=5000
 
Base ratings: id. users(100); not supported users(80); invalid id. users(0); min.=10, max.=5000
  
    * +6 per MB uploaded and -2 for downloaded;
+
* +6 per MB uploaded and -2 for downloaded;
    * +100 if upload 1MB+;
+
* +100 if upload 1MB+;
    * if rating < 50 and upload 1MB+, rating = 50  
+
* if rating < 50 and upload 1MB+, rating = 50
 
+
  
 
== Lovelace Credit System: ==
 
== Lovelace Credit System: ==
  
  1. l-modifier=100*((1-1/(1+exp((3*{MB uploaded to us}^2-{MB downloaded from us}^2)/1000)))^6.6667)
+
#. l-modifier=100*((1-1/(1+exp((3*{MB uploaded to us}^2-{MB downloaded from us}^2)/1000)))^6.6667)
        1. start:1,
+
##. start:1,
        2. max:100,
+
##. max:100,
        3. min:0.1,
+
##  min:0.1,
        4. ratio:1:1.5, only one formula  
+
##  ratio:1:1.5, only one formula  
  
CreditThefts will not get any credits. Only clients using the 'SecureHash' are able to get a multiplier of 100. All others will stick at 10. In contrast to the original credit system, credits are evaluated more on differences and not on quotients. Using the orginal system you have the best credit values shortly after generating a new userhash. With the new credit system you get good credit values faster if you already have uploaded many MB before (and did not cheat by killing the userhash). (old system: 5up/ 5down = DLModifier of 2, additional 5up = DLModifier of 4 10up/10down = DLModifier of 2, additional 5up = DLModifier of 3 -> for the same amount of additional upload you get less score (-25%) new system: 5up/ 5down = DLModifier of 1.16, additional 5up = DLModifier of 2.31 10up/10down = DLModifier of 1.85, additional 5up = DLModifier of 5.09 -> for the same amount of additional upload you get more score (+120%) because you already uploaded a certain amount before.)
+
Credit Thefts will not get any credits. Only clients using the 'SecureHash' are able to get a multiplier of 100. All others will stick at 10. In contrast to the original credit system, credits are evaluated more on differences and not on quotients. Using the original system you have the best credit values shortly after generating a new userhash. With the new credit system you get good credit values faster if you already have uploaded many MB before (and did not cheat by killing the userhash). (old system: 5up/ 5down = DLModifier of 2, additional 5up = DLModifier of 4 10up/10down = DLModifier of 2, additional 5up = DLModifier of 3 -> for the same amount of additional upload you get less score (-25%) new system: 5up/ 5down = DLModifier of 1.16, additional 5up = DLModifier of 2.31 10up/10down = DLModifier of 1.85, additional 5up = DLModifier of 5.09 -> for the same amount of additional upload you get more score (+120%) because you already uploaded a certain amount before.)
  
Image:Dl-modifier_table.GIF
+
http://wiki.emule-web.de/image/lovelacecredit.GIF
  
  
 
== ClientAnalyzer ==
 
== ClientAnalyzer ==
  
    * Start value:1
+
* Start value:1
    * Minvalue:0.01
+
* Minvalue:0.01
    * maxvalue:10  
+
* maxvalue:10  
  
Assigns a score to clients based upon analyzations of their behaviour, such as:
+
Assigns a score to clients based upon analysis of their behaviour, such as:
  
    * how long one knows someone (bonus for every week that a client keeps his hash)
+
* how long one knows someone (bonus for every week that a client keeps his hash)
    * upload/download ratio
+
* upload/download ratio
    * kind of up/download (complete/partial/rare)
+
* kind of up/download (complete/partial/rare)
    * anti leecher options; nickthieves, modthieves, filefakers, spammers, xs exploiter or hammerer are taken into account
+
* anti leecher options; nickthieves, modthieves, filefakers, spammers, xs exploiter or hammerer are taken into account
    * avg reask time  
+
* avg reask time  
  
 
== TK4 Credit System ==
 
== TK4 Credit System ==
  
Native CS of TK4 Mod 1.5f, based on eMule 47a. C++ source code and full text is here -> [|TK4 Mod - Credit systems (http://emuletk4mod.sourceforge.net/TK4_Mod_Creditsystem.htm)] )
+
Native CS of TK4 Mod 1.5f, based on eMule 47a. C++ source code and full text is here -> [http://emuletk4mod.sourceforge.net/TK4_Mod_Creditsystem.htm TK4 Mod - Credit systems] )
  
 
If you are sharing completed files and someone downloads data from one of these from you they probably cannot give you data back as you have all of the file. So in the TK4 system their credit rating remains unchanged. If you are downloading a file and someone takes data from you from the parts of the file you have they will be subject to the credit system and depending on how much they have given they may have their credit rating reduced. At any time if anyone gives you data they get a credit rating increase. The credit system works basically like this:
 
If you are sharing completed files and someone downloads data from one of these from you they probably cannot give you data back as you have all of the file. So in the TK4 system their credit rating remains unchanged. If you are downloading a file and someone takes data from you from the parts of the file you have they will be subject to the credit system and depending on how much they have given they may have their credit rating reduced. At any time if anyone gives you data they get a credit rating increase. The credit system works basically like this:
Line 206: Line 225:
  
 
== Reverse Credits: (AKA as credit shaping) ==
 
== Reverse Credits: (AKA as credit shaping) ==
Bad feature
+
[[Bad feature]]
  
    * Give a 10x score increase to clients in your download queue (you will be wanting something from them soon)
+
* Give a 10x score increase to clients in your download queue (you will be wanting something from them soon)
    * penalize NoNeededParts and queuefull 2x (currently they're not needed but they might be in future, upload to them when all other sources have a score of at least 5)
+
* penalize NoNeededParts and queuefull 2x (currently they're not needed but they might be in future, upload to them when all other sources have a score of at least 5)
    * Give a slight score increase if the estimated waiting time in their queue is low (this will be implemented in the next version)
+
* Give a slight score increase if the estimated waiting time in their queue is low (this will be implemented in the next version)
    * Give a slight score increase (smallest) for waiting time, just to be fair.  
+
* Give a slight score increase (smallest) for waiting time, just to be fair.  
  
 
In effect, the our client will be serving other clients in this order:
 
In effect, the our client will be serving other clients in this order:
  
    * clients we try to download from who we haven't uploaded to anything yet (they'll get 1.1mb for the max ratio), clients with low estimated waiting time for their queue will go first
+
* clients we try to download from who we haven't uploaded to anything yet (they'll get 1.1mb for the max ratio), clients with low estimated waiting time for their queue will go first
    * Clients who have returned upload and we are trying to download from up to a ratio of 5x
+
* Clients who have returned upload and we are trying to download from up to a ratio of 5x
    * Clients we're trying to download from but are on NNP or queue full status get 1.1mb
+
* Clients we're trying to download from but are on NNP or queue full status get 1.1mb
    * All other clients we're trying to download from are served upload up to a ratio of 10x
+
* All other clients we're trying to download from are served upload up to a ratio of 10x
    * All clients who have a maximum rating will be served on a first come first served basis  
+
* All clients who have a maximum rating will be served on a first come first served basis  
 +
 
 +
== JusticeCredit ==
 +
 
 +
* If (MB sent - received MB)> 1, the factor is = (MB sent - received MB)
 +
* If (MB sent - received MB) <1, the factor is = 1 / (MB received - sent MB)
 +
* If the difference between MB sent - received MB is less than 1, the factor is 1.
 +
* If the client has disabled the identification, the factor is 0
  
[category:features]
+
[[category:features]]

Latest revision as of 08:10, 26 November 2010

A credit system determines the score and that detirmins the wait time peers wait in your queue before you upload to them.

Contents

[edit] Credit systems

[edit] Official Credit System

There are two different credit modifier calculated:

  • Ratio1 = Uploaded Total x 2 / Downloaded Total
  • Ratio2 = SQRT(Uploaded Total + 2)

Both ratios are compared and the lower value is used as modifier. Some boundary conditions also exist:

  • > Uploaded Total < 1MB => Modifier = 1
  • > Downloaded Total = 0 => Modifier = 10
  • > The modifier may not be lower than 1 or higher than 10

[edit] Peace Credits:

same as official credit system, only shorter (but slower!!) code

[edit] Xman improved Credit System

This feature is an enhancement of the existing credit system. It rewards clients which gives you a high download. This clients gets a bonus factor.

On the other side, clients you upload much data and they don't give something back to you will get a penalty for the current emule session.

[Formula for positive bonus:

   * Bonus = (download - upload)/10485760 - 1.0/(download/10485760) 

The max scoreratio is 10. (like official)

Example (with ~ 1 Chunk difference):

Download Upload Official version Xman improved
10MB 1MB 3,46 3,46 + bonus:0
20MB 11MB 3,63 3,63 + bonus:0
30MB 21MB 2,86 2,86 + bonus:0,2
90MB 81MB 2,22 2,22 + bonus:0,7
50MB 20MB 5,0 5,0 + bonus:2,2
90MB 50MB 3,6 3,6 + bonus:3,7
120MB 80MB 3,0 3,0 + bonus:3,8

a client can get a negative bonus of 0,1 if you gave him 1 chunk(9,28MB) more this session and also at complete comparison of download/upload without geting something back.

a client can get a negative bonus of 0,2 if you gave him more than 2 chunk(9,28MB) this session and also at complete comparison of download/upload without geting something back

[edit] Magic angel credit system

Magic Angel" Creditsystem based on the official Creditsstem. The differences are:

  • it gives Credits for Upload more than 1.65MB (official 1.00MB)
  • the lowest modifier is 0.1 (official 1.0)
  • the highest modifier is 50.0 (official 10.0)

[edit] The Magic Angel + Creditsystem

The Magic Angel + Creditsystem based on Magic Angel Creditssytem, but increases the modifier a bit, if the client uploaded to us more than we uploaded to him. If the upload of the client minus his download is

  • < 7MB: modifier + 0.3
  • < 15MB: modifier + 1.0
  • < 30MB: modifier + 2.0
  • >= 30MB: modifier + 3.0

[edit] Ratio Credit System

  • based on official cs, but lowest modifier's 0.1 not 1.0 in official
  • x2, x4, x16 credit award to uploaders


[edit] Ratio Credit System - Stulle's implementation

Source: Stullemule 3.6 src - ClientCredits.cpp - code part: case CS_RATIO: // RT.10a mod Credit

  • In contrast to its name, it is not based on UL/DL ratio, but on DL, UL values and their differencies.
  • There is no simple and the only formula.
  • Default credit = 1
  • Progressively punishes near zero ( <= 1 MB ) uploaders.
  • Progressively boosts uploaders who got nothing paid back yet ( <= 1 MB in total ).
  • For client who uploaded to me > 1 MB and <=9 MB grants minimal credit DL / 9.
  • For client who uploaded to me > 9 MB minimal credit is 0.7 + sqrt ( DL +1 ) / 10. E.g. uploading 99 MB grants credit 1.7.
  • With balanced ratio credit raises proportional to sqrt ( DL + 1)
  • Credit is farther increased/decreased, depending on UL - DL difference.
  • No limiting values

Legend and formulas:

DL = DownloadedTotalMB ( to me ) UL = UploadedTotalMB ( to him ) Client without good ID : credit = 1 New client ( both UL and DL <= 1 ) : credit = 1 DL <= 1 AND UL > 1 ( near zero uploader ) : credit = 1 / sqrt ( UL ) DL > 1 AND UL <= 1 ( should be paid back ) : credit = DL

Both DL, UL > 1 MB : Basic = sqrt ( DL + 1 ) correction = sqrt ( abs ( DL - UL ) ) DL > UL : credit = Basic + correction UL - DL <= 1 : credit = Basic UL - DL > 1 and DL >= 9 : credit = max ( 0.7 + (Basic / 10), Basic / correction ) UL - DL > 1 and DL < 9 and Basic / correction < 1 : DL / 9 UL - DL > 1 and DL < 9 and Basic / correction >=1 : credit = Basic / correction

Table of Ratio Credit values

Image_RatioCredit.png

[edit] Neo Credit system

The Standard Score is 1.0. The uploaded/downloaded values are in bytes. If the Client does not has a file we need he will get a 1.0 score in any case. If the Client does not have a good SUI only Session Transfers are counted.

If the result of uploaded - downloaded is bigger then 1.0 the formula is: ((9728000*2(<-In case of bad/no SI) or 4(<- In case he owns a valid SI))/(uploaded-downloaded))^2. The biggest allowed result is 1.0 the smallest allowed result is 0.1.

If the result of uploaded - downloaded is smaller then -1.0 the formula is: ((-1*(uploaded-downloaded))/(9728000*1(<- In case of bad/no SI) or 2(<- In case he owns a valid SI)))^2. The biggest allowed result is 2.0 the smallest allowed result is 1.0.

[edit] Pawcio Credit System

  • Range from 1.0 to 100.0
  • Multiplier of 3 (instead of 2) ---- ratio = 3 * downloaded / uploaded
  • For new clients (downloaded and uploaded data less than 1MB) ratio = 3.0 (instead of 1.0)
  • If you have received more than 1MB from someone but haven't given anything back user gets ratio = 100.0
  • Small bonus for clients that have given you many MB:
    • if you get 100MB then user receive ratio = 50.0 till you give back 108MB
    • 50MB - ratio = 25.0 - 55MB
    • 25MB - ratio = 12.0 - 28MB
    • 10MB - ratio = 5.0 - 12MB


[edit] Fine Credit system

  • punish client for downloading partial files without giving back.

Fine CS

[edit] S.W.A.T. Credits

There are two different credit modifier calculated:

  • Ratio1 = Uploaded Total x 2.2 / Downloaded Total
  • Ratio2 = SQRT(Uploaded Total + 2)

Both ratios are compared and the lower value is used as modifier. Some boundary conditions also exist:

  • Uploaded Total < 1MB (exactly!) => Modifier = 1
  • Downloaded Total = 0 => Modifier = 10
  • The modifier may not be lower than 1 or higher than 100

[edit] Sivka Credits:

IS_IDNEEDED --> Ratio = 0.75

failed ident --> Ratio = 0.5

Bad client --> Ratio = 0

diffTransfer = upload - download

If udiffTransfer >= 1GB --> ratio = 32

else if 0 < diffTransfer < 1GB --> ratio = sqrt({diffTransfer in MB})

else ratio = 1

[edit] Eastshare Credit System

Base ratings: id. users(100); not supported users(80); invalid id. users(0); min.=10, max.=5000

  • +6 per MB uploaded and -2 for downloaded;
  • +100 if upload 1MB+;
  • if rating < 50 and upload 1MB+, rating = 50

[edit] Lovelace Credit System:

  1. . l-modifier=100*((1-1/(1+exp((3*{MB uploaded to us}^2-{MB downloaded from us}^2)/1000)))^6.6667)
    1. . start:1,
    2. . max:100,
    3. min:0.1,
    4. ratio:1:1.5, only one formula

Credit Thefts will not get any credits. Only clients using the 'SecureHash' are able to get a multiplier of 100. All others will stick at 10. In contrast to the original credit system, credits are evaluated more on differences and not on quotients. Using the original system you have the best credit values shortly after generating a new userhash. With the new credit system you get good credit values faster if you already have uploaded many MB before (and did not cheat by killing the userhash). (old system: 5up/ 5down = DLModifier of 2, additional 5up = DLModifier of 4 10up/10down = DLModifier of 2, additional 5up = DLModifier of 3 -> for the same amount of additional upload you get less score (-25%) new system: 5up/ 5down = DLModifier of 1.16, additional 5up = DLModifier of 2.31 10up/10down = DLModifier of 1.85, additional 5up = DLModifier of 5.09 -> for the same amount of additional upload you get more score (+120%) because you already uploaded a certain amount before.)

lovelacecredit.GIF


[edit] ClientAnalyzer

  • Start value:1
  • Minvalue:0.01
  • maxvalue:10

Assigns a score to clients based upon analysis of their behaviour, such as:

  • how long one knows someone (bonus for every week that a client keeps his hash)
  • upload/download ratio
  • kind of up/download (complete/partial/rare)
  • anti leecher options; nickthieves, modthieves, filefakers, spammers, xs exploiter or hammerer are taken into account
  • avg reask time

[edit] TK4 Credit System

Native CS of TK4 Mod 1.5f, based on eMule 47a. C++ source code and full text is here -> TK4 Mod - Credit systems )

If you are sharing completed files and someone downloads data from one of these from you they probably cannot give you data back as you have all of the file. So in the TK4 system their credit rating remains unchanged. If you are downloading a file and someone takes data from you from the parts of the file you have they will be subject to the credit system and depending on how much they have given they may have their credit rating reduced. At any time if anyone gives you data they get a credit rating increase. The credit system works basically like this:

credit start point = 10 allowance = 'Mb given'/4 + 1 Mb

if 'Mb taken' greater than 'Mb given + allowance + 1Mb (they have taken more than they gave + some)

Then if the file is a file we are downloading

if '(Mb taken - allowance)' is between 1 to 81Mb credit multiplier range = 9 to 1 math: 10 - square root('(Mb taken - allowance)' - 'Mb given') if '(Mb taken - allowance)' is greater than 81Mb credit multiplier range = 1 to 0.14 math: 9 / square root('(Mb taken - allowance)' -'Mb given')

if 'Mb given' is greater than 'Mb taken' (they have given more than they have taken)

credit multiplier range = 10 to 342 math: 10 + log(2.72+('Mb given'-'Mb taken)*4)+('Mb taken/12)

There is no absolute range for multipliers but I have quoted a range of 0.14< to >342 (Assumes around a max. 4Gb difference) with a starting point of 10. Clients with failed SUI will start at 10, but not go up.

[edit] Reverse Credits: (AKA as credit shaping)

Bad feature

  • Give a 10x score increase to clients in your download queue (you will be wanting something from them soon)
  • penalize NoNeededParts and queuefull 2x (currently they're not needed but they might be in future, upload to them when all other sources have a score of at least 5)
  • Give a slight score increase if the estimated waiting time in their queue is low (this will be implemented in the next version)
  • Give a slight score increase (smallest) for waiting time, just to be fair.

In effect, the our client will be serving other clients in this order:

  • clients we try to download from who we haven't uploaded to anything yet (they'll get 1.1mb for the max ratio), clients with low estimated waiting time for their queue will go first
  • Clients who have returned upload and we are trying to download from up to a ratio of 5x
  • Clients we're trying to download from but are on NNP or queue full status get 1.1mb
  • All other clients we're trying to download from are served upload up to a ratio of 10x
  • All clients who have a maximum rating will be served on a first come first served basis

[edit] JusticeCredit

  • If (MB sent - received MB)> 1, the factor is = (MB sent - received MB)
  • If (MB sent - received MB) <1, the factor is = 1 / (MB received - sent MB)
  • If the difference between MB sent - received MB is less than 1, the factor is 1.
  • If the client has disabled the identification, the factor is 0
Personal tools