研究kademlia有1年半了,中间搜集过很多的资料,只是都被我不小心删除掉了,这里发布一些经典的资料。

KadC:一个比较经典的C实现的kademlia协议KadC:http://kadc.sourceforge.net/ 下载链接,不过目前这个库已经很久没有人更新了,这个库实现了kademlia协议几乎全部的内容,但是有一个关键的部分没有实现,就是存储发布信息,即发布信息是可以成功的,但是目标节点并没有存储这些信息,因此在成功发布之后不能搜索到发布的内容,这个实现运行于Linux平台,windows下可以用 cygwin或者mingw模拟运行。

emule:电骡是我研究时间比较长的一个东东,开源的,软件下载地址源码下载地址,目前最新版本是0.48a,我看得主要是0.47c的源码,然后前一阵 verycd除了一个easyemuleeasyemule源码,算是emule的mod吧,还比较适合国内用,加入了反吸血,不过我还没有怎么仔细看源码,对于emule这个东东,我也发布过几篇学习的文章:emule中节点加入Kad网络过程(源代码详解) emule中kad网络深入解析。与emule(windows平台)类似的有linux下的amulesharaza实现了多种P2P协议,其中包括kademlia协议。

revconnect:这个东东也很厉害,也是p2p的文件共享基于DC++,但是结果呈现的方式和emule的完全不同,第一次看到它的呈现方式时觉得确实不错(相比较于emule),这个东东相当于是internet上的网络邻居,呵呵,不过在国内不太流行,用户不太多,国外用户还是很多的,源码写的也很不错,底层同样是基于kademlia协议。

我主要就是看了这三个项目,其中前两个的源码仔细研究过,不过emule的代码确实有点复杂,到现在我只能说能够将kademlia模块弄出来做些应用。

另外,2007年夏天我自己做了一个基于kademlia的p2p voip系统——ppPhone,详细介绍可以在这里看到。

下面共享一些我机器里的资源:

Kademlia: A Peer-to-peer Information System Based on the XOR Metric,这是kadmelia协议提出者发表的论文,呵呵

 

kademlia协议原理简介:这是国内一个高人写的,不错

 

emule 0.47a source:0.47a vc8的源码,已经包含相关的库了。

 

revconnect中kademlia库的源码

 

revconnect 0.674p的源码

 

A performance evaluation of the kad-protocol.pdf:这是法国的一篇硕士论文,对emule中的kademlia协议做了比较详细的分析。

 

An Analysis of BitTorrent's Two Kademlia-Based DHTs.pdf:分析bt中使用的kademlia协议的缺点,并提出了一些改进方法。

 

Analytical Study on Improving Lookup Performance of Distributed Hash Table Systems under Churn.pdf:分析了在churn(即网络拓扑动态变化较大)情况下DHT的查询性能,以kademlia协议为代表。

 

Improving lookup performance over a widely-deployed dht .pdf:对kademlia协议进行优化的文章

 

Improving the Performance and Robustness of Kademlia-based Overlay Networks.pdf:kademlia协议优化