我想使用P2P构建一个分散的,类似reddit的系统。基本上,我想保留reddit的基本功能,但要使其分散,以使其更强大并且不受审查。这也将允许人们开发不同的客户端以匹配他们想要浏览它的方式。
你能推荐一些优秀的p2p库作为我的工作吗?它们应该是开源的,跨平台的,强大且易于使用的。我不太关心语言,我可以适应。
我想使用P2P构建一个分散的,类似reddit的系统。基本上,我想保留reddit的基本功能,但要使其分散,以使其更强大并且不受审查。这也将允许人们开发不同的客户端以匹配他们想要浏览它的方式。
你能推荐一些优秀的p2p库作为我的工作吗?它们应该是开源的,跨平台的,强大且易于使用的。我不太关心语言,我可以适应。
免责声明:警告,自我推销!!!
你考虑过JXTA的最新版本吗? 发布?它可能足以满足您的需求。另外,我们正在开发一个名为的新P2P框架 乔帕尔,但它还没有运作。
编辑
还有我称之为快速和脏的UDP解决方案(毕竟不是那么脏,我应该把它称为最小)。
简单,易于实现,但不包括丢失的数据报,重放,无序等...(即TCP在IP堆栈级别为您解决的典型问题)。
我没有机会使用它,但是 Telehash 似乎是为这种应用而做的。 Peer2Peer应用程序在处理防火墙的限制方面遇到了特殊的挑战...因为Telehash基于UDP,所以非常适合 打孔 通过防火墙。
编辑static_rtti的评论:
如果要求代码速度 设的Libjingle 我有很多努力,但主要是面向 XMPP
。你可以移除部分的 冰 代码,至少得到打孔。见 libjingle架构概述 有关其实施的详细信息。
查看CouchDB。它是一个使用HTTP API的分散式Web应用程序平台。人们已经用它来创建“CouchApps”,它是基于CouchDB的分散式应用程序,可以将病毒性质传播到其他CouchDB服务器。编写CouchApps所需要知道的只是Javascript并学习CouchDB API。您可以阅读这本免费的在线书籍以了解更多信息: http://guide.couchdb.org
CouchDB的秘诀是Master-to-Master复制协议,它可以让信息像病毒一样传播。当我参加第一届CouchConf时,他们通过举办“沙发派对”(这是一个充满了复制到他们旁边的人模仿ad hoc网络的人的房间)来证明这是多么有效率。
此外,使CouchApp工作的所有代码默认公开在称为设计文档的特殊实体中。
附:我一直在考虑做一个类似的项目,但我现在没有太多时间专注于它。上帝加速我的男孩!