Skip to content

Latest commit

 

History

History
39 lines (20 loc) · 2.32 KB

File metadata and controls

39 lines (20 loc) · 2.32 KB

Tutorial

本文档给出一些学习建议和推荐资料。

关于 Go 语法

建议先快速浏览 Go 语言官方教程 A Tour of Go。留个印象即可,之后可以边写边查相关语法。

你需要重点掌握的是 goroutine 并发编程RPC 远程过程调用

关于测试程序

助教下发(并用以评分)的测试程序所做的事情是:在你的电脑上初始化若干个 DHT 节点,通过网络传输信息并维护结构,用以模拟在若干台分布的服务器运行效果。 你不应通过网络以外的途径通信(例如内存),你的程序应当能在真正的分布式场景下正确运行。

关于 DHT 协议

推荐阅读的综述 blog,对协议有个初步了解。

详细技术细节请翻阅两篇 paper:ChordKademlia (助教非常希望每位同学都阅读论文)

其他辅助参考资料:Kademlia in GoChord 解释Kademlia 解释

关于 Debug

建议不要使用单步调试去调试整个 DHT(这是因为 DHT 依赖于时延,而单步调试会改变时延,实际运行结果与单步调试的结果不相同)。

推荐 Debug 方式:使用 logrus 库将每个节点的行为记录下来并分析。

生成的 log 文件可能非常大(几百 MB),许多文本编辑器不能正常地打开和浏览它。这里推荐使用 Klogg 软件浏览 log。

关于 Application

欢迎任何天马行空的想法。以下是示例:

一个好玩的 网站:嗅探 BT 网络中 IP 的资源请求。

P2P 资源分享应用:BitTorrent 及一些原理解释 blog