メーリングリスト

ポエニーをどんなソフトにするか、ずーと考えていた。
(名前からしてポエムを配るものっぽいけど、それだけだとおもろないなーと思ってて)
んで、今日無理やり決定してしまおうと、超考えた末、メーリングリスト(ニュースグループ?)のようなものを作ることにした。

ny漫画大王からヒントを得た。
メーリングリストの明確なリスト分けは、単にファイル名だけか、トリップのところにメーリングリスト名のハッシュ値を入れるかという単純なものにする。

掲示板ほど順番どおりに並べる必要がないので、書き込み先ノードや読み込み元ノードが固定化されないし、返信元があるメールはそれとセットで配るようにすると、コミュニケーション的には支障がでないかなーと。

問題はゴミファイルかな。

特に、「返信元があるメールはそれとセットで配る」というふうにすると、ゴミファイルがいろいろなハッシュ値のパターンに変化するので削除しにくくなる。
なので、ここはセットなりに内部でメールごとに分割する必要があって、そいつを展開する段階でゴミファイルを削除するしかないかなーと今のところは考えている。(本当はそもそもダウンロード自体したくないが)

いや、まった。撤回する。
メールはメール単位で配って、ゴミファイルはダウンロードしないようにする。
返信元があるが、その返信元メールを持っていない状態では、メールを画面上に表示しない(表示する設定にすると無理やり表示するようになる)。
基本的に1つのノードに対して問い合わせた結果自分の持っていないメールを持っていた場合は、そこからすべてDLするよう努める(もちろん、だめならあきらめる)。
で、ここで、Winnyには検索結果は30件以上(実装上は33件?)返さないという仕様があるので、どれだけ持っているか分からないという問題があるのだけど、これは、拡散クエリや定期的な検索でできるだけ受け取れるように、クラスタリングワードの1つをメーリングリスト名とかにしとくなどで・・・いやよくないか・・。
・・・あとで、じっくり考えてみます。

あとソフト側でゴミファイルを弾く方法。

@ まずゴミファイルの定義

  1. 意味不明なメールを大量にアップロードディレクトリにコピペしたもの

これだけ。
正当な方法でポストしたメールは、どんな内容だろうとゴミではないはず。

@ 解決方法

UIは、コア側にアップロードするファイルのリストを送ってからアップロードディレクトリへファイルを置く。
コアは、UIから指示を受けた以外のファイルをアップロードディレクトリで発見すると削除する。
これは同時に使用者の意図しないファイルのアップロードを防ぎ、Winnyで流行っている情報流失の防止にも役立つはず。

今のところUIとコアは1対1で繋がっているので、隙間から入ってくることはない。

ただ、別のソフト(本物Winnyなど)で配られると、こっち側ではどうにもできない。

なので、次に、何らかの理由でネットワーク上に撒かれたゴミファイルを削除する方法。(削除=ネットワーク上からの削除)

@ どうやってゴミファイルを削除するか

電子署名つきの削除情報を定期的に配布して、各自ローカルに持っている信用のできる削除人の暗号鍵で認証してから使うようにする(もちろんここは自動化する)。
この削除情報に記してあるファイルをローカルにもっている場合は削除する。
持っていない場合でもネットワーク上からダウンロードしない。
こうしておくと、そのうちネットワーク上から消える。

ただ、これには削除されていくゴミファイルと新規に配布されるゴミファイルの割合が問題で、実際は古いゴミファイルを削除する程度しか効果がなくて、本気でゴミファイルを撒けば、防ぎようがない気がする・・。
どうしよ。どうしようもなくなったらWinnyから切り離す。

とりあえず、作ってみる。