福冨諭の福冨論

RSSリーダーではこちらをどうぞ→https://feeds.feedburner.com/fuktommy

2005-10-08から1日間の記事一覧

タスク管理

Winnyは自前でタスク管理をしていますが、新月はOSのプロセス(Perl版や古い朔の場合)やスレッドを利用します。デッドロック等で特に困った記憶もないです。

キャッシュファイル

仮想ファイルは書き込みごとに分割してファイルに保存されます。詳しくは朔のキャッシュ構造 - fuktommyの日記をご覧ください。

仮想ファイルの検索・補完

ゲートウェイでスレッドなどを表示しようとして、その仮想ファイルが手元にないときにはネットワークから検索します。また転送の失敗やネットワークからの離脱・再接続に備えて、定期的に仮想ファイルを検索して補完を試みます。手順は簡単なものです。 検索…

中継・転送

転送の実装は割と簡単です。 書き込みがあったというメッセージを受け取る。 その仮想ファイルを持っていれば書き込み本体を要求する。 メッセージを転送する。

ノード管理

クライアントの仕事は次の通りです。 定期的に初期ノードを利用してノードに接続し、得られたノードをノードテーブルと検索ノードテーブルに書き込みます。 接続しているノードと通信できるかのチェックを行い、ノードテーブルを最新に保ちます。 後で述べる…

新月の実装の概観

新月の実装の1つである朔のプログラムを構成する要素は次のようになっています。肝はサーバとクライアントです。サーバは外部からの接続に応じて動作し、クライアントは自分から外部に接続します。

大規模な運用

Winnyでは「上流と下流」と「クラスタリング」によって大規模な運用に対応しています。新月にも(Winnyと比べて簡易的ではありますが)同様の仕組みがあります。まず上流と下流ですが、新月ネットワークの概観 - fuktommyの日記の図のように、ノードや閲覧者は…

書き込みが伝播していく様子

新月はプッシュ型で書き込みを伝播していきます。しかし書き込みそのものをプッシュ型で転送するとネットワークに負荷がかかってしまいます。新月では書き込みを書き込みそのものと書き込んだというメッセージの2つに分けることで解決を図ります。まず次のよ…

新月ネットワークの概観

ここでは新月のソフトウェアを動かしているコンピュータをノードと呼ぶことにします。厳密には1つのコンピュータで複数のソフトウェアを動かすこともできますし、複数のコンピュータで見掛け上1つの新月を動かすこともできますが、話を簡単にするためです。…

新月の開発の過程

2003年 8月 2日 0.1-beta1をひっそりと発表 2003年 8月18日 プッシュ型転送による掲示板の構想を発表 2003年12月24日 0.1.0を発表 2004年 2月 8日 掲示板機能の見直しに着手 2005年 2月 5日 Perl版の開発終了 2005年 2月27日 Python版の開発に着手

匿名性と効率を実現する転送

「Winnyの技術」によればFreenetの匿名性の肝は情報の断片化でも拡散でも暗号化でもなく多段中継(転送)です。転送するとき、1つのノードから来たデータを複数のノードに転送してやれば効率よくデータを広めることができます。匿名性と効率が両立するわけです…

新月の開発コンセプト

匿名性 効率のよさ マルチプラットフォーム オープンソース Winnyと共通するのは匿名性です。効率のよさはちょっと違います。残り2つは全く逆のものです。ここでいう匿名性とは「情報の第一発信者を隠すことによりプライバシーを保護すること」という「Winny…