PythonでP2Pアプリケーションを作成するためのライブラリまたはフレームワークはありますか?
私は最初のBittorrentクライアントがPythonで書かれたことを知っています。私はJXTAのようなものを探していますが、Python用です。
PythonでP2Pアプリケーションを作成するためのライブラリまたはフレームワークはありますか?
私は最初のBittorrentクライアントがPythonで書かれたことを知っています。私はJXTAのようなものを探していますが、Python用です。
Twisted は、Python で真剣にネットワークに関連するものに対する答えのほとんどですが、実際には Twisted のやり方を受け入れる必要があります。これは本質的に P2P スタックではなく、イベント ループ、コールバック システム、およびネットワーク フレームワークです。
Divmod Vertex は現在メンテナンスされておらず、数年前に使用しようとしたときはまだかなりラフでした。
CSpaceは、あなたが探しているものに最も近いかもしれません。「インターネットを介した、安全で分散化されたユーザー ツー ユーザー通信のためのプラットフォーム」です。P2P と NAT トラバーサルを抽象化して、アプリが「P2P アプリ」ではなく正常に動作できるようにします。
同様に、数年前に「The Circle」と呼ばれるオーストラリアの古い P2P システムがありました。これは完全に Python で書かれており、安全な P2P メッセージング、チャット、ファイル共有などの機能を備えていました。0.41c が最後のバージョンでした: http://savannah.nongnu.org/projects/circle/
また、私のブックマークから:
http://entangled.sourceforge.net/は Entangled であり、「Kademlia に基づく分散ハッシュ テーブル (DHT) と、ピアツーピア タプル スペースの実装」です。
http://khashmir.sourceforge.net/は Python 分散ハッシュ テーブルです。これは、非常にフォールト トレラントな Airhook プロトコルを使用してネットワーク化されているため注目に値します (セルラー ネットワークなどで使用するために設計されています)。
http://kenosis.sourceforge.net/は Python P2P RPC システムです。
もちろん、私が考えることができる最良のオプションは、twistedを使用することです。
BitTorrent の古いバージョンはそれで構築されました。リンクは、ツイストを使用する最後の既知のバージョンです。それを出発点として勉強できます。
頂点もあります。ツイストを使用し、ファイアウォールをバイパスして p2p を許可するライブラリです。
そのようなものが存在するかどうかはわかりませんが、次の代替案を提供できます。
こんにちは (JXTA for Java 2.6 & 2.7 の最後の 2 つのリリースのリーダーから)、
Python での JXTA の既知の実装はありません。
この問題に取り組みたい人は、まず JXTA 2.0 プロトコルについて学ぶ必要があります。Scribd でオンラインで読むことができる Practical JXTA II ブックは、テクノロジの理解に役立つはずです。
乾杯!
2002 年 12 月の Sun JXTA ページから引用します。
「プロジェクト JXTA には、download.jxta.org から入手できる Java リファレンス実装があり、現在、C、Objective C、Perl、Ruby、Python など、他の一般的な言語でリファレンス実装を追加する作業を行っています。Java 実装が最も完全ですが、 JXTA プロトコルの実装、C 実装 (Win32 と Linux の両方で利用可能) は、同じレベルの完成度に急速に近づいています。」
スタックレス Pythonに興味があるかもしれません。