.mjtの日記: 略してOCN。
の、OpenClusterNetworkプロジェクトをやろうかなぁー と。
違法ファイル交換が主な目的とは言え、Winnyの仕組みはかなりいいもんじゃないかと思ってるんですが、いかんせん、クローズなんですよ。
「名前を明かさずにモノを発表したい」という向きもある国なので、別にオープンで解析可能であったとしてもいいんじゃないかなぁーとか思ってます。
以前、某プロコン(↓で書いた奴)で発表しようとしたものをぷちスクリプトで実装し直してSF.jpのプロジェクトとして登録しようかと。
・構造
「ディスカバリ部」と「転送部」に大雑把に分かれます。
・ディスカバリ部
オープンなBBSやIMソフトウェア(Regnessemがターゲット)で最初の接続相手を検索する所。
現状のWinnyでは初期ノードcgiが接続先の検索先として使われているが、これが中央サーバーとして見なせるので、多くのメディアに接続先の検索を任せるように。
・転送部(オープン)
基本的にはWinnyの仕組みを真似る。
ファイル転送は匿名で行われる。
転送の際のストリームはゆるい暗号化を施される。
(直接読めないけど、解読するのはちょっとめんどくさい暗号。保護期間は数時間~数日でよい)
また、ストリームはバイト単位で分割可能で、全てのストリームを手に入れないとファイル全体を手に入れることは出来ない。
もちろん、分割しないこともできる。
受信したストリームはキャッシュとして暗号化されたまま一時保存される。
基本的にオープンネットワークは性善説にたって作られているので、このネットワークの存在を否定する人間が多ければ自然消滅する。
ファイル名や、ファイル形式、ファイルのハッシュ値によってファイルにはインデックスがつけられる。
また、インデックスはネットワーク上を流れてはいるが、自分の手許にあるインデックスしか検索対象にはならない。
つまり、ファイルを保持している人間が流したインデックスは、オープンファイルを必要としないノードには保存しないこともできる。
・転送部(クローズド)
仲間内でファイルの交換を行う手軽な手段を提供する。
受動接続を受け付けることの出来ないノード間でのファイル転送は自動的にオープンネットワークのノードを利用して迂回される。
また、クローズドはインスタントメッセージの送信にも利用できる。
ミソは、オープンファイルのダウンロードを目的としない人にもある程度利用できるツールであること。
オープンファイルを公開したい人は、ファイルのインデックスとターゲットを公開する。
ターゲットとは、オープンファイルのコピーを渡したノードで、そのノードはさらに、他のノードにオープンファイルのコピーを渡していく。
ターゲットはなるべく多くのノードを選択するべき。
ノード攻撃への利用の可能性があるが、たとえば、ターゲットに有志でなることによってアプロダを運営することもできる。
このネットワークはあまり巨大なファイルの公開には向いていない。
また、特定のファイルを追跡するようなクライアントを作製することもできるが、多くの人間はそれを望まない。
・考えなければならないこと
一つのハッシュ値に対して、多くの情報を持たせることができるようにすること。
たとえば、ファイルの評価とか。
特定のアンチに不当な評価を下されないような仕組みが必要。
特定のクライアントを確実に区別すること。
接続しなおしたりしても、クライアントソフトウェアを変更しない限り同一のノードと見なされること。
# これは無理そう。
200302110601追記
んーどうしてもネットワークRPGには出来ないなぁ(w
だれでもサーバーになれる時代を早いトコ実現して欲しいものです。
略してOCN。 More ログイン