繁体   English   中英

我想使用P2P构建一个分散的,类似reddit的系统。我应该以什么现有的p2p库为基础?

[英]I want to build a decentralized, reddit-like system using P2P. What existing p2p library should I base it on?

我想使用P2P构建一个分散的,类似reddit的系统。 基本上,我希望保留reddit的基本功能,但要使其分散,以使其更加强大并且不受审查。 这也将允许人们开发不同的客户端以匹配他们想要浏览它的方式。

你能推荐一些优秀的p2p库作为我的工作吗? 它们应该是开源的,跨平台的,强大且易于使用的。 我不太关心语言,我可以适应。

免责声明:警告,自我推销!!!

您是否考虑过JXTA的最新版本 它可能足以满足您的需求。 另外,我们正在开发一个名为Chaupal的新P2P框架,但它还没有运行。

编辑

还有我称之为快速和脏的UDP解决方案(毕竟不是那么脏,我应该把它称为最小)。

  1. 只需使用公共地址实现一台服务器并开始监听UPD。
  2. 位于NAT后面的对等方与服务器联系,该服务器可以读取其私有IP地址如何从接收的数据报转换为公共IP地址。
  3. 您将该信息发送回可以将其转发给其他对等方的对等方。 服务器还可以帮助在对等体之间交换此信息。
  4. 然后,对等体可以通过将数据报发送到这些转换的地址来直接(一对一)进行通信。

简单,易于实现,但不包括丢失的数据报,重放,无序等...(即TCP在IP堆栈级别为您解决的典型问题)。

我没有机会使用它,但Telehash似乎是为这种应用程序而制作的。 Peer2Peer应用程序在处理防火墙的限制方面面临特殊挑战......由于Telehash基于UDP,因此非常适合通过防火墙打孔

编辑static_rtti的评论

如果代码速度是一个要求libjingle需要付出很多努力,但主要是面向XMPP 您可以移除部分ICE代码,至少可以进行打孔。 有关其实现的详细信息,请参阅libjingle体系结构概述

查看CouchDB。 它是一个使用HTTP API的分散式Web应用程序平台。 人们已经用它来创建“CouchApps”,它是基于CouchDB的分散式应用程序,可以将病毒性质传播到其他CouchDB服务器。 编写CouchApps所需要知道的只是Javascript并学习CouchDB API。 您可以阅读这本免费的在线书籍以了解更多信息: http//guide.couchdb.org

CouchDB的秘诀是Master-to-Master复制协议,它允许信息像病毒一样传播。 当我参加第一届CouchConf时,他们通过举办“沙发派对”(这是一个充满了复制到他们旁边的人模仿ad hoc网络的人的房间)来证明这是多么有效率。

此外,使CouchApp工作的所有代码默认公开在称为设计文档的特殊实体中。

PS我一直在考虑做一个类似的项目,但我现在没有太多时间专注于它。 上帝加速我的男孩!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM