eMule CN Mod(中国驴)是由中国程序员开发的的一款eMule mod。它拥有较好的上传能力,和改进了的随机上传队列、下载带宽分配、下载磁盘缓存、客户端匹配等算法,支持反吸血DLP和显示地区名称的IP定位功能。
中国驴 CN Mod 的开发者Enig123于2021年新建了一个 CN Mod 的官方网站emule-secret.com,并发布了新版的中国驴 CN Mod。原官网chnp2p.com/org甚至更早的edonkey2000.cn均已失效。原官网是一个ed2k资源论坛,并曾经定期公布一个名为“驴榜”的CN mod上传积分排行系统,论坛用户可申请参与。
eMule v0.50b CN-9 Build 513 LTS发布于2021年9月28日,其没有随eMule社区版(community)v0.60更新,但根据更新日志,有来自社区版的改进。
点击下载:
eMule v0.50b CN-9 Build 513 LTS
(如果上面不能下,这里是 GitHub 上 eMule v0.50b CN-9 Build 513 LTS 的存档,和上面的文件实际上是一样的)
更新日志和官方介绍
以下是压缩包内readmeCn.txt文件中记述的更新日志:
eMule v0.50b CN-9 Build 513 LTS版主要更新:
1. 新一代下载带宽控制算法,完全符合winsock的调用标准,消除 aMule v2.3.2 及以后版本下载时出现的底层错误;
2. 修正一个下载哈西完成之后,文档却无法完成的问题(感谢community的维护者fox88新版带来的的代码改进);
3. 对 kademlia 请求的速率控制采用标准的 Token Bucket 算法;
4. 将动态缓存算法与“文档缓存大小”(File buffer size)可设置参数挂钩,推荐选择不要超过768KB,因为更大的值效果不一定好,不过可以自己试试看;
5. 下载缓存随机写入算法微调,增加磁盘写入随机/动态写入程度,进一步释放资源,让它表现得更加 non-blocking,从而提高图形界面响应速度。注:新的下载带宽控制算法,下载的 socket_buffer 为 16KB 左右,由于控制以 20ms 为时间间隔,若想获得好的控制效果,下载带宽限制不得低于 socket_buffer/20 ms,即 800 KB/s 左右,否则遇到大水管给你下载的时候可能同时导致下载流量不稳定;
eMule v0.50b CN-9 Build 512 LTS版主要更新:
1. 重写下载带宽分配算法,同时解决大部分aMule v2.3.2及以后版本导致的下载中断问题;
2. 部分数据结构从以前改造的std::vector重新回到更为适合的std::list;
各种内存占用优化,更适合长时间跑;
3. 下载缓存微调及优化,解决特殊情况下缓存排序可能出现混乱的问题;
4. 梳理接受下载的逻辑,解决一些特殊情况下出现接收到错误下载数据的问题;
5. 解决udp接收方面的一些遗留问题。eMule v0.50b CN-9 Build 490 LTS版主要更新:
1. 增强稳定性,解决可能潜在导致崩溃的问题;
2. 对超时的上传客户端,直接踢掉;
3. 正确处理远程客户端连接我方监听端口的socket时,该客户端有活动socket的各种情况;
4. 升级IRC相关代码到eMule社区版0.51d;
5. 解决一个退出eMule时可能出现的崩溃问题。eMule v0.50b CN-9 Build 486 LTS版主要更新:
1. 加强进程的健壮性,修正几个可能在某些情况下导致崩溃的问题;
2. 减少下载出错,省得后面再花功夫纠错,主要应对aMule v2.3.2之后进程传输容易发生错误的问题;
3. 更新随机下载文档缓存算法,解决磁盘空间分配之后,缓存写入延后的问题,优化写入触发条件;
4. 改善新下载文档的磁盘空间分配,将分配量圆整到整个PART,以减少2个以上文档同时磁盘空间分配的可能性;
5. 修正完善几个AttachToAlreadyKnown相关的问题;
6. 发现并封禁假高ID客户端,这类客户端返回的假高ID不是从正常的公共IP而来;
7. 上传加入MSS侦测功能,要求操作系统是Vista SP2或者以上;
8. 通过减少多线程锁碰撞的可能,改善进程的响应速度;eMule v0.50b CN-9 Build 480 LTS版主要更新:
1. 本地解决eMule v0.51a-b导致kad响应数据包错误问题(这个问题会导致kad搜索响应错误,在我的反馈下,已经在社区版c及c版之后得以解决)
2. 修正随机选择算法长期跑骡可能导致的退化问题,这是随机选择算法的一个较大的更新
3. 发现并解决CN的下载带宽控制线程状态可能不准确的问题、改善线程锁(这些改动进一步优化了下载)
4. 解决低ID回应高ID连接请求时,可能新建多个客户端实例的问题(这个是官方就有的问题)
5. 部分引入eMule v0.51x社区版的一些更新eMule v0.50b CN-9 Build 440 主要更新:
1. 进一步全面优化eMule缓存系统
(1). 将原FlushBuffer()的功能分割成3部分,并以次序、时间间隔分步骤完成
刷Buffer;
将刷新的缓存存入磁盘;
验证已完成Part的完整性
(2). 引入全局时间间隔机制,防止不同的CPartFile刷缓存时相互冲撞,引发的刷缓存,彼此时间间隔至少为1秒
(3). 每次刷Buffer,连续块大小超过120KB才刷,或者侦测到文档数据已经下载完毕,或者后续没有数据请求(已实现)
(4). 每一个时间步骤,都引入触发的随机方式,以增加不确定性(已实现)
(5). 缓存大小不再固定,而是根据下载速度来适配,一般设置为13秒的下载量(由于随机性,每次触发条件可能有所变动)(已实现)
2. 修正一个可能导致kademlia中途停止的问题
3. 解决所有引入新的eMule缓存系统之后的regression问题
4. 优化减少线程冲突,尤其当下载任务很重时,界面更流畅
5. 不改变其运作机理的前提下,对kademlia数据表达及算法的优化eMule v0.50b CN-9 Build 428 主要更新:
1. 解决2个线程冲突可能导致Wrong header错误的问题(重要!!);
2. 消除发现的可能导致崩溃的2个隐患;
3. 改写eMule的下载缓存原理,优化磁盘写操作、改善存储到硬盘时硬盘响应变慢的问题;
4. 实现微软推荐的TCP套接字的Graceful Shutdown;
5. 已知客户端寻找计入TCP端口加以辨识(更准确);
6. 弃用微软的fstat函数,采用fox88版本,或解决夏时制造成文档重新哈希的问题,但有可能本次升级会导致部分文档重新哈希;
7. 进一步惩罚使用同一个userhash和身份辨识拷贝的客户端;
8. 进一步增强上传成功率、提升每次上传量。
以下是新官网主页上中国驴 CN Mod 的介绍:
eMule CN是由中国人开发的、据信世界上技术含量最高的电骡变种(eMule mod)。
稳定、创新、资源占用少,是eMule CN一直追求的目标。
eMule CN具备许多特有的功能,除传统的稳定强健的slot-focus上传能力外,至少还具备以下特点:
- 数值算法稳定的随机上传队列,被选择上传与等待时间无关,能够尽快分享新下载文档已完成部分,促进ed2k网络的健康,而没被选中的排队客户端则获得应得的随机信用补偿,增强各个客户端之间的公平;
- 独有的稳健下载带宽分配算法,顺便解决了aMule v2.3.2及以后版本容易因’Wrong header’错误而导致下载中断的问题;
- 独有的下载磁盘缓存算法,极大减轻硬盘负载,克服“跑p2p伤硬盘”的传统短板,同时改善了尤其在大量磁盘负载下的进程响应速度;
- 适应实际网络环境中userhash重复的现实,实现结合ip及其它条件的精准客户端匹配算法。
11条评论隐藏
发现个问题,其他MOD在使用了eMule Security的ipfilter.dat文件,第一次关闭MOD后,ipfilter.dat会变小,规则数相应会变,CN则不会,不知道这算不算是BUG?
“支持反吸血DLP和显示旗帜的IP定位功能”这俩功能没见到。
反吸血DLP是内置的,此MOD无显示旗帜的功能。
@netr66 好。因为之前两篇文章(191版,201版)都写支持“地区旗帜”显示,所以这儿也写了。大概是之前就写得不准确。这里的文章改了
2022年了,CN9还在放行easymule。笑死人
这反吸血连easymule都不反,太捞了
以前一直用天使骡 可惜没有更新了
能够添加高分屏支持?官方版本已经可以很好地支持高分屏了
中国驴有新更新了
@netr66
怎么没有钢铁驴,他好歹支持ipv6 。https://github.com/zt8989/IronMule
540挂机一夜,第二天起来一看,死机,只能强退。