Files to modify:
UploadQueue.cpp
Preferences.cpp
Preferences.h
UploadListCtrl.cpp
MenuCmds.h
PPgxx.cpp
PPgxx.h
String Table
UploadQueue.cpp
bool CUploadQueue::AcceptNewClient(uint32 curUploadSlots){
// check if we can allow a new client to start downloading from us
//slots control
if(uploadinglist.GetCount() >= thePrefs.GetNbUploadSlots()&&thePrefs.GetControlSlot() == true)
return false;
//slots control
Preferences.cpp
[code]
CPreferences thePrefs;
//slots control
bool CPreferences::ControlSlot;
uint16 CPreferences::NbUploadSlots;
//slots control
......
ini.WriteBool(_T("SparsePartFiles"),m_bSparsePartFiles);
ini.WriteString(_T("YourHostname"),m_strYourHostname);
//Slot Control
ini.WriteBool(_T("Activer la gestion des slot en
eMule 0.49b Orange Spirit v1.2
Change log:
v1.2
mise à jour sur eMule 0.49b
leger changements dans le modupdate
divers fixs et optimisations
ipfilter v130 , countryflag.dll et ip-to-country.csv inclus dans l'archive
v1.1
Fix le bug de l'erreur c0005
Nouvel AntiNickThief et AntimodThief
Systeme de mise à jour automatique
Changement du systeme de reconnaissance des mods Oranges-spirit
Update automatique des serveurs (si le nombre est inferieur à 5)
下载:
http://emule.orange.free.fr/0.49b-Orange%20Spirit%20v1.2_bin.rar
v1.2
mise à jour sur eMule 0.49b
leger changements dans le modupdate
divers fixs et optimisations
ipfilter v130 , countryflag.dll et ip-to-country.csv inclus dans l'archive
v1.1
Fix le bug de l'erreur c0005
Nouvel AntiNickThief et AntimodThief
Systeme de mise à jour automatique
Changement du systeme de reconnaissance des mods Oranges-spirit
Update automatique des serveurs (si le nombre est inferieur à 5)
下载:
http://emule.orange.free.fr/0.49b-Orange%20Spirit%20v1.2_bin.rar
电骡安全用户认证原理
ED网络中的用户是通过一个叫用户hash的独一无二数值来识别的。这个用户hash保存在preferences.dat文件中用来承认其他用户赚取的积分。
eMule可以使用非对称加密系统来避免偷窃或使用其他用户的用户hash。本方法通过一个私钥和公钥来保护用户 hash,保证与其他用户进行正确的认证。
安全用户认证可以在参数选择 -> 安全中打开,建议用户使用这个设置。
安全用户认证工作方式:
一、用户A想要保证自己的积分安全,只让自己使用。他创建了一个私有的384位密钥将其保存在 cryptkey.dat 文件中。
这个私钥是在第一次使用安全系统时创建的,丢失它意味着用户A会丢失自己所有的积分,因为他无法证明他是积分的合法主人。
二、当两个支持加密系统的用户第一次交换数据时他们都将自己的公钥连同一个随机数一起发送给对方,双方都将对方的的公钥保存在clients.met文件中。只有在公钥保存后,后面的每次连接都生成随机数。
三、如果用户A以后想要对用户B证明自己的时候,他创建一个数字签名将其发送给B。数字签名是用他的私钥,B的公钥和一个随机数生成。除非用户A改变了自己的IP或用户B关闭了eMule,否则A的证明都是一直有效的。
四、当用户B接到A的签名后他会检查是否是以B的公钥创建的和随机数是否正确,如果签名也符合用户A的公钥,A的身份就得到认证。
eMule可以使用非对称加密系统来避免偷窃或使用其他用户的用户hash。本方法通过一个私钥和公钥来保护用户 hash,保证与其他用户进行正确的认证。
安全用户认证可以在参数选择 -> 安全中打开,建议用户使用这个设置。
安全用户认证工作方式:
一、用户A想要保证自己的积分安全,只让自己使用。他创建了一个私有的384位密钥将其保存在 cryptkey.dat 文件中。
这个私钥是在第一次使用安全系统时创建的,丢失它意味着用户A会丢失自己所有的积分,因为他无法证明他是积分的合法主人。
二、当两个支持加密系统的用户第一次交换数据时他们都将自己的公钥连同一个随机数一起发送给对方,双方都将对方的的公钥保存在clients.met文件中。只有在公钥保存后,后面的每次连接都生成随机数。
三、如果用户A以后想要对用户B证明自己的时候,他创建一个数字签名将其发送给B。数字签名是用他的私钥,B的公钥和一个随机数生成。除非用户A改变了自己的IP或用户B关闭了eMule,否则A的证明都是一直有效的。
四、当用户B接到A的签名后他会检查是否是以B的公钥创建的和随机数是否正确,如果签名也符合用户A的公钥,A的身份就得到认证。
电骡使用USS上传控制的设定
我是512/64的小小水管,所以以下是针对512/64的小小水管所做的测试结果。我不甘心USS一直不能用,所以研究了一下,发现会失败的主因还是我上传频宽太小的关系。当我用本来的预设值时,eMule调整上传的反应太慢,变成upload跟tracert在抢频宽,tracert抢不赢就很容易失败。于是,在开启USS功能之前,我首先将连线的上下传设定压低D/L分别设定为16/4然后在USS的设定方面,
最小上传限制: 2
ping误差:500
up slowness:300
down slowness:500
ping数目:1
然后启动这功能,等到eMule右下角视窗开始出现xxms yyy%时,再把连线那边的上下传改成24/6,这样,执行起来,表现的的比以前好多了。
另外,据我研究网路上的说明和自己的测试结果,我有了下列心得:
这项功能开启的时候,会先找到一个网路上你会用到的主机来当主要的测速目标(至于怎么找的就不重要了),然后如果你连线到这个主机的速度变慢,他就降低你的上传速度,如果你连线到这个主机的速度变快,他就提高你的上传速度,同时他会不断更新你连线到这主机的最佳速度来当作比较的基准。
而设定的功能参数是
1. ping误差:
这会指示程式在什么情况下要降低你的上传速度,如果你设定成800,那就是指800%,也就是8倍的意思,假设你连线到那个主机的最佳速度是50ms,那只要一测试到你连线到那边的速度超过400ms,他就会降低你的上传速度。
2. going up slowness:
这是指程式判断到你的上传速度可以增加时,要延迟多久才真正的增加,这个数字越低,表示他提高你上传速度的反应越快。
3. going down slowness:
跟上一个相同,但是这个是要降低上传速度的延迟时间。
4. ping数目:
这表示他要测试几次来做判断,如果设定成3,那他会测试三次取平均,用这平均值来判断要提高还是降低上传速度,这个数值越高,上传速度的变化越缓慢。
基本上,最主要的是那个down slowness要低一点,让他一旦发现需要降低上传速度时,就赶快反应,不然就很容易在程式来不及调整上传频宽前,上传频宽就被占满,然后程式就没有足够的频宽来测速,USS就会跳掉,另外,那个ping误差值也不要设定太高,这一样是为了要及早反应。
最小上传限制: 2
ping误差:500
up slowness:300
down slowness:500
ping数目:1
然后启动这功能,等到eMule右下角视窗开始出现xxms yyy%时,再把连线那边的上下传改成24/6,这样,执行起来,表现的的比以前好多了。
另外,据我研究网路上的说明和自己的测试结果,我有了下列心得:
这项功能开启的时候,会先找到一个网路上你会用到的主机来当主要的测速目标(至于怎么找的就不重要了),然后如果你连线到这个主机的速度变慢,他就降低你的上传速度,如果你连线到这个主机的速度变快,他就提高你的上传速度,同时他会不断更新你连线到这主机的最佳速度来当作比较的基准。
而设定的功能参数是
1. ping误差:
这会指示程式在什么情况下要降低你的上传速度,如果你设定成800,那就是指800%,也就是8倍的意思,假设你连线到那个主机的最佳速度是50ms,那只要一测试到你连线到那边的速度超过400ms,他就会降低你的上传速度。
2. going up slowness:
这是指程式判断到你的上传速度可以增加时,要延迟多久才真正的增加,这个数字越低,表示他提高你上传速度的反应越快。
3. going down slowness:
跟上一个相同,但是这个是要降低上传速度的延迟时间。
4. ping数目:
这表示他要测试几次来做判断,如果设定成3,那他会测试三次取平均,用这平均值来判断要提高还是降低上传速度,这个数值越高,上传速度的变化越缓慢。
基本上,最主要的是那个down slowness要低一点,让他一旦发现需要降低上传速度时,就赶快反应,不然就很容易在程式来不及调整上传频宽前,上传频宽就被占满,然后程式就没有足够的频宽来测速,USS就会跳掉,另外,那个ping误差值也不要设定太高,这一样是为了要及早反应。
电骡中的积分系统:Rating Ratio Score by Shane.G
在以下的讲解中, 假设我是驴网中的一个文件发布者, 在我的电骡(eMule) 里共享了几个文件供其他人下载. 因此, 下面的内容均从第一人称的角度来叙述, 我尽量讲解得通俗些.
符号 "*" 表示乘法, "/" 表示除法.
-------------------------------------------------------
Score - 上传队列分数
对于所有想从我这里下载文件的人, 要先按照每个人的 Score从大到小进行排队. 因此在中文版电骡里 Score 被译为“上传队列分数”. Score 的计算方法是:
Score = Rating * Waiting_Time / 100
其中 Rating 是评分, 后面再讲. Waiting_Time 是等待时间,单位是秒. 可见, Score 是不断变化的, 随着时间的增长而增加. 对于 Rating 相同的两个用户, 先来排队的那个人将获得较高的 Score, 也就排得靠前. 即所谓的“先来后到”.
--------------------------------------------------------
Rating - 评分
Rating 的初始值是 100. 然后由以下因素来修饰:
(1) 被我的电骡 Ban 掉的用户:乘以 0, 也就是 Rating 变成 0 了, 他不能下载我的文件.
(2) 我共享文件的优先级:在共享文件时, 可以为每个文件设置优先级. 优先级分为5个档, 从低到高分别是:
=================================
中文 英文 对Rating的修饰
---------------------------------
很低 very low 乘 0.2
---------------------------------
低 low 乘 0.6
---------------------------------
中 normal 乘 0.7
---------------------------------
高 high 乘 0.9
---------------------------------
发布 release 乘 1.8
=================================
设置优先级的方法: 电骡里按 "共享文件" 按钮, 在要设置优先级的文件上点右键, 指向 "优先级", 选择.
可见, 优先级规则只对下载不同文件的用户有影响. 下载优先级高的文件时, 排队时会相对靠前些. 优先级主要是用来区分文件的, 表示我更优先共享哪个文件. 如果我把所有共享的文件的优先级都设成相同的, 那么优先级就失去作用了.
(3) 对方的电骡版本
如果对方的电骡版本低于 0.20a, 那么他的 Rating 将
乘以 0.5.
(4) Ratio
乘以 Ratio. Ratio 下面讲解.
-------------------------------------------------------
Ratio - 下载上传比例调整
Ratio的计算方法:
若 Uploaded < 1, 则 Ratio = 1 ;
若 Downloaded = 0, 则 Ratio = 10 ;
否则:
Ratio1 = Uploaded * 2 / Downloaded
Ratio2 = $sqrt( Uploaded + 2 )
Ratio = $min( Ratio1 , Ratio2 )
Ratio 不小于 1 不大于 10.
其中:
Uploaded: 对方向我上传的总量(单位: MB);
Downloaded: 对方从我这里下载的总量(单位: MB);
$sqrt(): 开二次方;
$min(): 取最小值.
可见, 对方上传给我的越多, 就越容易从我这里获得下
载权.
--------------------------------------------------------
用户积分的查看方法:
电骡里按 传输 按钮, 从用户列表中选择要查看的用户,右键, 选 显示详情, 在弹出的对话框中的 得分 框里即是 Ratio, Rating 和 Score.
--------------------------------------------------------
总结:
(1) 电骡本身并不对 LowID 用户进行惩罚. LowID 用户下载较慢是因为其所能获得的源 比 HighID 用户要少.
(2) 当我急于下载某文件时, 可以在共享里把该文件的优先级设成 "发布", 允许别人优先下载此文件. 当然, 如果只共享了这一个文件就没必要设置了.
(3) 多上传才能快下载.
符号 "*" 表示乘法, "/" 表示除法.
-------------------------------------------------------
Score - 上传队列分数
对于所有想从我这里下载文件的人, 要先按照每个人的 Score从大到小进行排队. 因此在中文版电骡里 Score 被译为“上传队列分数”. Score 的计算方法是:
Score = Rating * Waiting_Time / 100
其中 Rating 是评分, 后面再讲. Waiting_Time 是等待时间,单位是秒. 可见, Score 是不断变化的, 随着时间的增长而增加. 对于 Rating 相同的两个用户, 先来排队的那个人将获得较高的 Score, 也就排得靠前. 即所谓的“先来后到”.
--------------------------------------------------------
Rating - 评分
Rating 的初始值是 100. 然后由以下因素来修饰:
(1) 被我的电骡 Ban 掉的用户:乘以 0, 也就是 Rating 变成 0 了, 他不能下载我的文件.
(2) 我共享文件的优先级:在共享文件时, 可以为每个文件设置优先级. 优先级分为5个档, 从低到高分别是:
=================================
中文 英文 对Rating的修饰
---------------------------------
很低 very low 乘 0.2
---------------------------------
低 low 乘 0.6
---------------------------------
中 normal 乘 0.7
---------------------------------
高 high 乘 0.9
---------------------------------
发布 release 乘 1.8
=================================
设置优先级的方法: 电骡里按 "共享文件" 按钮, 在要设置优先级的文件上点右键, 指向 "优先级", 选择.
可见, 优先级规则只对下载不同文件的用户有影响. 下载优先级高的文件时, 排队时会相对靠前些. 优先级主要是用来区分文件的, 表示我更优先共享哪个文件. 如果我把所有共享的文件的优先级都设成相同的, 那么优先级就失去作用了.
(3) 对方的电骡版本
如果对方的电骡版本低于 0.20a, 那么他的 Rating 将
乘以 0.5.
(4) Ratio
乘以 Ratio. Ratio 下面讲解.
-------------------------------------------------------
Ratio - 下载上传比例调整
Ratio的计算方法:
若 Uploaded < 1, 则 Ratio = 1 ;
若 Downloaded = 0, 则 Ratio = 10 ;
否则:
Ratio1 = Uploaded * 2 / Downloaded
Ratio2 = $sqrt( Uploaded + 2 )
Ratio = $min( Ratio1 , Ratio2 )
Ratio 不小于 1 不大于 10.
其中:
Uploaded: 对方向我上传的总量(单位: MB);
Downloaded: 对方从我这里下载的总量(单位: MB);
$sqrt(): 开二次方;
$min(): 取最小值.
可见, 对方上传给我的越多, 就越容易从我这里获得下
载权.
--------------------------------------------------------
用户积分的查看方法:
电骡里按 传输 按钮, 从用户列表中选择要查看的用户,右键, 选 显示详情, 在弹出的对话框中的 得分 框里即是 Ratio, Rating 和 Score.
--------------------------------------------------------
总结:
(1) 电骡本身并不对 LowID 用户进行惩罚. LowID 用户下载较慢是因为其所能获得的源 比 HighID 用户要少.
(2) 当我急于下载某文件时, 可以在共享里把该文件的优先级设成 "发布", 允许别人优先下载此文件. 当然, 如果只共享了这一个文件就没必要设置了.
(3) 多上传才能快下载.
电骡功能介绍——Pay Back First
如果一个用户给你上传的数据比你给他上传的多,那么这个用户就会立即进入你的上传队列。
If a peer has uploaded more to you than you've uploaded to them and the peer is on queue, then the peer immediately gets pushed to uploadlist. A Pay back First slot falls in the Powershare class (equals same priority as powershare).
Conditions:
Payback First only works on files the upload has complete. (Morph mod)
You have to pass a certain threshold for this feature to work (typically close to 1 chunk. = 10 MB)
First appeared in EastShare mod by AndCycle.
If a peer has uploaded more to you than you've uploaded to them and the peer is on queue, then the peer immediately gets pushed to uploadlist. A Pay back First slot falls in the Powershare class (equals same priority as powershare).
Conditions:
Payback First only works on files the upload has complete. (Morph mod)
You have to pass a certain threshold for this feature to work (typically close to 1 chunk. = 10 MB)
First appeared in EastShare mod by AndCycle.
订阅:
博文 (Atom)
