我想知道在哪里可以了解更多关于去中心化共享和 P2P 网络的信息。理想情况下,我想创建一些东西来帮助学生通过他们的大学网络相互共享文件,这样他们就可以共享而不必担心外部实体。
我不是想在这里构建下一个 Napster,只是想知道这个想法是否可行。是否有任何开源 P2P 网络可以调整来做我想做的事?
我想知道在哪里可以了解更多关于去中心化共享和 P2P 网络的信息。理想情况下,我想创建一些东西来帮助学生通过他们的大学网络相互共享文件,这样他们就可以共享而不必担心外部实体。
我不是想在这里构建下一个 Napster,只是想知道这个想法是否可行。是否有任何开源 P2P 网络可以调整来做我想做的事?
基本上你需要一个服务器(好吧,你不需要一个服务器,但它会更简单),它将在文件哈希列表等其他事物之间存储用户 IP。
该服务器可以在你想要的任何环境中(其中很舒服)。
然后,每个客户端连接到服务器(它应该有一个dns,可以是免费的,我用过一次no-ip.com)并首先发送基本信息(例如它的IP,以及文件哈希列表) ,然后不时地发送一些东西(比如每 5 分钟或更短时间)以报告它仍然可以访问。
当客户端搜索文件/用户时,它只是询问服务器。
这是一个集中式网络,但文件共享将在 p2p 客户端到客户端连接中完成。
这样做的原因是,如果没有一些参考,您将无法知道要连接的 IP。
只是为了清除这个服务器的东西:
- Torrents 使用跟踪器。
- eMule 的 ED2K 使用lugdunum 服务器。
- eMule 的“真正的 p2p”Kademlia 使用已知节点(客户端)(大部分时间来自这样的服务器)。
Tribler是您正在寻找的!
它是来自代尔夫特理工大学的完全去中心化的 BitTorrent 客户端。它是开源的,用 Python 编写,因此也是一个很好的学习起点。
使用DC++
Bit-Torrent 有什么问题?
编辑:微软操作系统上还有一个预先构建的 P2P 网络,作为构建某些东西的基础非常酷。 http://technet.microsoft.com/en-us/network/bb545868.aspx