11

P2P を使用して分散型の reddit のようなシステムを構築したいと考えています。基本的には、reddit の基本的な機能を保持したいのですが、分散化して、より堅牢で検閲の影響を受けないようにしたいと考えています。これにより、閲覧したい方法に合わせてさまざまなクライアントを開発することもできます。

私の仕事のベースとなる良い p2p ライブラリを推奨してもらえますか? それらはオープンソースで、クロスプラットフォームで、堅牢で使いやすいものでなければなりません。言語はあまり気にしません。順応できます。

4

3 に答える 3

6

免責事項:警告、自己宣伝はこちら!!!

JXTA の最新リリースを検討しましたか? あなたがやりたいことにはおそらくそれで十分です。それ以外の場合は、 Chaupalと呼ばれる新しい P2P フレームワークに取り組んでいますが、まだ運用されていません。

編集

また、クイック アンド ダーティ UDP ソリューションと呼んでいるものもあります (これはそれほどダーティではないため、最小限と呼ぶべきです)。

  1. パブリック アドレスを使用して 1 つのサーバーを実装し、UPD のリッスンを開始するだけです。
  2. NAT の背後にあるピアは、受信したデータグラムからプライベート IP アドレスがどのようにパブリック IP アドレスに変換されたかを読み取ることができるサーバーに接続します。
  3. その情報を他のピアに転送できるピアに送り返します。サーバーは、ピア間でこの情報を交換するのにも役立ちます。
  4. 次に、これらの変換されたアドレスにデータグラムを送信することで、ピアは直接 (1 対 1) 通信できます。

シンプルで実装が簡単ですが、失われたデータグラム、リプレイ、順不同など (つまり、TCP が IP スタックレベルで解決する典型的なもの) はカバーしません。

于 2011-04-11T20:51:24.267 に答える
4

私はそれを使う機会がありませんでしたが、Telehashはこの種のアプリケーションのために作られたようです。Peer2Peerアプリには、ファイアウォールの制限に対処するための特別な課題があります... TelehashはUDPに基づいているため、ファイアウォールを介した穴あけに適しています。

static_rttiのコメントを編集します

コード速度が要件である場合、libjingleはそれに多大な労力を費やしますが、主にに向けられていXMPPます。ICEコードの一部を移植して、少なくとも穴を開けることができます。それらの実装の詳細については、libjingleアーキテクチャの概要を参照してください。

于 2011-04-18T10:28:27.247 に答える
1

CouchDBをチェックしてください。これは、HTTPAPIを使用する分散型Webアプリプラットフォームです。人々はそれを使用して、他のCouchDBサーバーにウイルスの性質で広がることができる分散型CouchDBベースのアプリケーションである「CouchApps」を作成しました。CouchAppsを作成するために知っておく必要があるのは、JavascriptとCouchDBAPIを学ぶことだけです。詳細については、この無料のオンラインブックを読むことができます:http://guide.couchdb.org

CouchDBの秘訣は、情報をウイルスのように拡散させるマスター間レプリケーションプロトコルです。私が最初のCouchConfに参加したとき、彼らは「Couch Party」(アドホックネットワークをシミュレートする隣の人に複製する人でいっぱいの部屋がある場所)を開催することによって、これがいかに効率的かを示しました。

また、CouchAppを機能させるすべてのコードは、デフォルトでデザインドキュメントと呼ばれる特別なエンティティで公開されています。

PS私は同じようなプロジェクトをやろうと思っていましたが、今のところそれに専念する時間はあまりありません。神は私の少年をスピードアップ!

于 2012-10-23T23:59:24.840 に答える