2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
ここまで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.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05