2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
リンクをコピー
記事をブックマーク
ここまでWinnyの全体像の仕組みをお話ししました。後半は、Winnyというソフトウェア開発がどういうふうに進められていたかを、バージョンアップの内容からおさらいをしていこうと思います。
Winnyの開発期間は2002年5月から2003年11月の1年半だけだったのですが、その間に283回もバージョンアップしてるんですね。そういったところを、ダイジェストというかたちでササッといこうと思います。
2002年4月1日に、いわゆる最初の書き込みと開発宣言があります。いわゆる47氏と呼ばれてますが、最初の書き込みでFreenetの話をしました。
そこから1ヶ月経って最初のリリースがありました。これはだいぶバギーで、最初の1ブロックしか落ちてこないみたいな。128機能のブロックしか落ちてこないような動作が確かあったような記憶があります。
当初は基本動作のところもけっこうトラブルシュートが大変で、47氏自体もどんなふうにトラブルシュートすればいいのかが手探りなところもあって。
思ったよりポート分けしてない人も多かったり、やはり実際に世の中にデプロイしてみないとわからないことがけっこうあったりして、そういったことをやるために、例えば一時的にWinnyの根幹の1つである転送動作をやめたりとかしながらトラブルシュートをやっていました。
そんなこんなで前回のバージョンアップ、リリースから半月ほどで今の最終的な自動ダウンロードのベースになる自動再試行が入りします。
あと、最初はできませんでしたが、先ほど言ったPort0のノード対応みたいなもの、Port0のノードから検索ネットワークの上流になれるようになったり、他のノードにアップロードできるようになったり、そういったいわゆるフル機能の対応ができるようになったり。序盤はこういった開発をやっていました。
Winnyの特徴である自動ダウンロード機能がついたのも5月の内でした。これは当時WinMXが普及していたってところもあって。WinMXって、相手を指定してファイルを貨幣のように交換する、いわゆるファイル共有というよりはファイル交換の文化だったところがあるって。
正直Winnyは検索結果が不安定なところがデメリットというか(Winnyの)苦手なとこだったのでしたが、逆にそれを逆手に取って、Winnyなりの解決案として「そもそもゆっくり気長にダウンロードを待つというユースケース」を提案したようなかたちになっているわけです。
続いて、6月になると自動ダウンロードの条件を使ってクラスタリングをする機能が入りました。47氏は最初、0から1の間の数値を取ってクラスタリング、円柱のかたちみたいにクラスタリングをするような考えたっぽいですが、あまり評判がよくなくて。
その中で出てきたアイデアとして「検索条件をクラスタリングにしたらいいんじゃないか」みたいなところに、クラスタリングの機能がありました。これでWinny1の機能がだいたい揃ってきます。
この間にけっこういろいろなチューニングや調整もやっていて。キーの拡散というものがWinnyの重要な要素の1つですが、キーの拡散方法とかも、このあたりでいろいろな試行錯誤を続けていました。
7月になると遂にBBS機能が入ります。けっこう序盤からBBSの機能があったんですね。このBBSの機能が入ったことで、ファイル共有のネットワークを活用すると言うと語弊がありますが、ネットワークを活用するかたちでBBSにおける試行錯誤が始まったわけです。
この後はいろいろなチューニングや開発環境の変更などいろいろをやっていて。通称“白Winny”みたいな。けっこうWinnyを使っていた記憶がある人は、黒というか青い画面を覚えてる人も多いと思いますが、一瞬ユーザーインターフェイスが白系になったりとか。そういう試行錯誤もやってました。
10月になるとファイルの公開者を主張できるトリップ機能、トリップは2ch用語ですが、いわゆる「誰がアップロードしたか」を示すための簡易署名機能です。これは暗号学的な署名ではないので、キャッシュ書き換えとかするといくらでも書き換えができちゃうんですが、「匿名のAさんとして継続的にファイルを上げてる誰かだ、というようなことが重要」というユースケースが存在しました。
例えばWinny本体の配布とかもそうですよね。そういうファイルの配布者を特定する、継続して特定するための機能が入ってきました。
遂に2002年の年末に正式版ができました。最終βは22.53ということで、バージョンアップを重ねて「ここまできたな」という感じですね。
1.0が出てからもけっこう根本的なところの変更は続いていて、昔のなごりを引っ張ったところとして、ファイルのハッシュ値にMD5をそのまま使うようになったり。
そんなこんなで、4月にはWinny1の最終盤が出ます。
5月に入ると、(登場から)ちょうど1年ぐらいですね。そうすると、BBSに力を入れている、いわゆるWinny2というものが出てきました。
Winny専用のファイル共有をしないノードが実装されたのがβの3.2ですね。
このあたりで、開発環境をC++Builderに変更して、GUIの作り直し(したり)とか、微調整をムチャクチャこのあたりで重ねていた記憶があります。
2.0のβ7.1が最終リリースですが、ここに至るまで1年半を駆け抜けてきました。
ここではけっこう大きな変更だけを紹介しましたが、載せきれないチューニングもずっと重ねてきました。これが283回というバージョンアップの(うちの)一番を占めているものですね。アーキテクチャレベルでの試行錯誤もあったし、いろいろなパラメータを上げては試し、下げては試しみたいなことをやってました。
大規模P2Pネットワークを作るのは本当に難しいことで、一時期には数十万ノード、数億ファイルあったとも言われているそうなのですが、PCやネットワーク環境も今以上に多様でした。特に貧弱方向に多様で、最新のものでもPenrium MとかAthlon 64が出た頃で、メモリも512メガとかの頃だったし、回線もISDNも現役だったような時代でした。
そのあたりを調整して、展開しては観測してという繰り返しで効率を上げていったわけです。1年半のバージョンアップの成果として効率が達成されたわけですが、この後の(セッションで)いろいろな方がこの話をたぶんすると思いますが、効率悪かったらプライバシー被害なども含めて防げたかもしれませんが、十分な効率を維持できてしまったわけです。
さて、というわけで15分で駆け抜けてきましたが、Winnyネットワークの仕組みのおさらいと、1年半の開発史を追体験することで、みなさんはWinnyの話を思い出してもらえたでしょうか。
Winnyの技術の何がおもしろかったのか、誤った神格化をするよりは、その道筋と結果をきちんと評価してくれる人が少しでも増えてほしいなと思っています。というわけで、映画を楽しみにしています。
以上です。ありがとうございました。
関連タグ:
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略