ビットコイン・インスティテュート

distributed mailing list architecture (fwd) — ジム・チョート​「『中心の​一つ』は​何も​あってはならない」​(1997年2月)

転送するメッセージ:

アダム・バックの投稿(1997年2月13日16:50 UTC)

Date: Fri, 7 Feb 1997 20:11:15 GMT From: Adam Back aba@dcs.ex.ac.uk Subject: distributed mailing list architecture

Igor Chudov ichudov@algebra.com writes:

私はもっと簡単な解決を勧めたい。各サーバーを、ほかの二つか、三つのサーバーとつなぐ。このやり方はかなり堅牢で、CPUの時間や帯域をあまり食わず、実装も簡単だ。

あなたの提案している構成がどういうものかよく分からないが、私がいちばん設けやすいと考えるのは、こういうものだ。

私が思い描いているのは、漁網のような形だ。

アダム・バック

主となるmajordomoを一つ置く。

この企てには、「中心の一つ」は何もあってはならない。

アダム・バック

購読するときは、主となるmajordomoの申し込みのアドレスに送る。すると、そこからあなたの購読の申し込みが、無作為のメール分配器に転送される。

購読をやめるときは、主となるmajordomoの申し込みのアドレスに送る。すると、そこからあなたの申し込みが、すべてのメール分配器の申し込みのアドレスに転送される(購読の解除の流れはどのみち少ないし、主となるmajordomoで誰がどこに購読しているかを追う価値はなさそうだ)。

分配器を動かしたい人は、それぞれ(手作業で)主となるmajordomoに購読させる。

記事は主となるmajordomoに送る。するとそこから、購読者(メール分配器)に記事の写しが送られる。

メール分配器は、自分の購読者の一覧にあるアドレスにメールを送る。

(この構成は、より簡単な別案として、ジョン・ギルモアが提案した。)

簡単? とんでもない。

リメーラーの連鎖の案なら、あと数日で動くリメーラーのネットワークを立ち上げられる。あなたの提案は、コードを書いてデバッグし、それを最後まで進めるのに何週間もかかる。

いや、このやり方は簡単でも効率的でもない。

私が漁網の形と呼ぶものは、ずっとすっきりしている。各拠点は、自分が発信元の連鎖に含まれていたメッセージを選り分けるだけでいい。procmailなら簡単で、manページの最初の例、たとえばdev/nullに捨てるやり方を見れば、procmailがしなければならないことの完璧な例が見つかる。ネットワークにほかに誰がいるかを知る必要はなく(星形の場合とは違う)、流れは、届くもの一つにつき写し一つで済む。星形のリメーラーのそれぞれからのn個の写しと、地元の購読者からの送信の分が要るのとは違う。下流のリメーラーが壊れたら、連鎖の次のリメーラーを購読するという簡単な手順を決められる。これも、ほんの数行のコードで簡単にできる……

  If (bounce count of next site expires)
    {
       subscribe backup feed
    }
  If (next site returns)
    {
       unsubscribe backup feed
    }

実際の構成については:

                      A --> D
                     ^ \   ^ \
                    /   v /   v
                   C <-- B <-- E
                         ^
                         |
                         v
                         N  (mail-news gateway)

繰り返すが、良い特徴がいくつかある。

  • ありふれたmajordomo/procmailの導入から、ごく簡単に立ち上げられる

  • 拠点は、自分から出たメールを選り分けるだけでいい

  • ネットワークの多くの拠点ではなく、二つの拠点とだけやり取りすればいい(範囲を限ることと匿名性を支える)

  • 各拠点は、大事な流れをほかの1拠点からしか受けないので、重複の流れが最小になる

  • 網の端にある拠点を除き、どの拠点にも出力を送る先が二つあり、堅牢さが増す。端がつながるようにすれば(たとえばトーラス)、送り先がほかの2拠点より少ない拠点はなくなる。

  • つながりごとに、さまざまな段階の暗号や認証に対応でき、すべての参加者に一つの全体の構成への服従を強いない

  • 簡単に規模を広げられる。星形はそうはいかない。中心のマシンは、連鎖の中のリメーラーの総数に応じて大きくならなければならず、ネットワークが広がれば、それは大金、それも山のような大金を意味する

  • ある連鎖の中の実際のマシンの数は柔軟だ。平面を敷き詰める図形、三角形(n=3)、正方形(n=4)、六角形(n=6)に合わせるのがいいと思う

  • この構成では、星形や中心のあるネットワークより、流れの分析や同期の洪水をしかけにくい

  • 「小さな」マシンや、達人でもなく、資金も豊富でない運営者を支えられる

                                              ジム・チョート
                                              CyberTects
                                              ravage@ssz.com

原典の外部ソース

https://mailing-list-archive.cryptoanarchy.wiki/archive/1997/02/3bd0dca2cbb01a494ae021f4cf77a59a519527aa09fb79eaf2557ab86b707d1d/
1997年2月13日(木)11:22:48 PST(19:22:48 UTC)の投稿。同じ日の朝のアダム・バックのメッセージを転送して答えている。