试用Kademlia
一、简介:
Kademlia是eMule的后续版本,它不仅可以连接到传统的eDonkey网络,而且还可以通过一个新的协议连接到自己的Kademlia网络中。Kademlia网络和传统的eDonkey网络相比,不再需要单独的服务器,只要你能连接到其他Kademlia客户端,就可以访问整个Kademlia网络中的资源,这个功能有点类似于共享软件Overnet,但Kademlia是eMule开发人员自行发展出来的,是完全的自由软件。
目前,Kademlia还在测试阶段,最新的版本是v0.41a.10,其程序和源代码可以在它的官方网站
http://www.emule-project.net上下载。
二、初识Kademlia
下载了Kademlia v0.41a.10的程序压缩包(我用的是
pawcio kad 4.13这个mod,ed2k://|file|emule0.41a10Pawcio4.13.zip|2830723|93DB2800D1157B35AC3388FEA762EDBB|/),里面的目录结构和eMule差不多,也是config、lang、Skin、webserver这几个目录。其中,config目录为配置目录,里面多了一个nodes.dat的文件,这里面就存放了你在Kademlia网络中的邻居节点,程序第一次启动时就是通过这里面的节点来进入Kademlia网络的。另外,lang目录中存放的是各种语言的语言包,新版本的eMule/Kademlia可以自动从网站上下载所需的语言包,是不是很方便?Skin目录里则是eMule/Kademlia的皮肤定义和图片,不过我从来没有用过。webserver目录中是用于自带的Web服务器的图片,一般情况下是用不到的。
现在要开始安装Kademlia了,不过大家一般都装的有eMule,该怎么办才能不丢失你的积分和统计数据呢?首先把原来的config目录改名成oldconfig,然后把Kademlia压缩包中的所有文件解压到相应的eMule目录中,覆盖掉同名文件,然后再从oldconfig目录中将所有文件拷贝回config目录(注意,oldconfig目录一定要保留一段时间,万一你的积分和统计数据丢失,你还可以从这里找回。另外太老的版本升级的话是无法保留积分的,但是如果一直不升级,就无法利用新版本的功能,太老的版本在计算积分时也会很吃亏)。
第一次启动时,会有一个配置向导对话框,在连接网络类型中一定要同时选择ED2K和Kademlia,这样你就可以同时搜索和下载两个网络中的资源,感觉是不是很爽?启动后,主界面和原来的eMule差不多,只是多了一个Kad页,在服务器页增加了关于ED2K/Kad网络的信息(比以前好看多了),右下角也有ED2K/Kad连接状态的图标。
三、进入Kad大家庭
咦?为什么我的Kad一直是正在连接?检查了好久,突然想起来自己开了个防火墙,上去一看,呵呵,那些Kad信息包都在这里呢。缺省设置时,eMule运行时会打开一个TCP端口4662(没有打开这个你就甭想要HighID),两个UDP端口4671(服务器源查询)和4672(客户端源询问),而Kademlia增加了一个UDP端口4673用于Kad协议,把这些端口放开后一看,还是正在连接中,没关系,到我的已知客户列表中找一个eMule0.40以上的客户端(eMule0.40以上就是Kademlia客户端),然后右键点一下,选择Bootstrap(没有连接到Kademlia网络时才会有这个命令,作用是通过该客户端进入Kademlia网络),然后切换到Kad页,哈哈,瞬间出现了很多信息,上面的联系列表框中出现的就是你已知的Kad邻居。
四、在Kad网络中冲浪
切换到搜索页,点击“方法”右边的三角形箭头,里面竟然有一个“Kad”,选中它之后再去搜索,在Kad页下面的当前搜索列表框中就会显示搜索状态,当然,搜索结果还是在搜索页中显示。试试看,是不是多了很多源呢?
五、试用感觉
我刚开始用Kademlia,第一感觉很不错,至于具体的效果如何,等我用过一段时间再来下结论,不过从理论上来讲,应该比eMule0.30e只好不差,我现在只希望能尽早用上Kademlia的正式版。
ps1. 目前Kademlia还在测试阶段,开发小组要求使用测试版的用户在有新版本出来时必须立刻升级到新版本,以免影响到Kademlia网络。因此,懒于换版本的朋友们还是用eMule0.30e比较好。
ps2. 因为我自己对Kademlia也还没有摸透,有什么错误还请指正,另外也希望这篇短文能起到一个抛砖引玉的作用^_^
ps3. mod就是其他开发人员在官方eMule/Kad的基础上增加新功能而推出的修改版(当然指的是官方认可的那些好孩子版),pawcio 4.13是我目前在用的一个相当不错的mod。其http下载地址为
Pawcio Mirror by John Knees