Telegramの5つあるデータセンターの謎
親愛なる読者の皆さまへ。ご存じの通り価格高騰などの悪影響でサーバー運営がとても苦しい状態です。回線や台数を整理し見直せる部分は全て見直しましたが、やはりまだ危険水域です。このままだと1ページを10分割ぐらいして無理矢理PVを増やさざるを得なくなってしまいます。そこで、GIGAZINEの物理的なサーバーたちを、たった1円でも良いので親愛なる読者の皆さまに支援してもらえればとっても助かります!今すぐ寄付は上のボタンから! ・ これまでGIGAZINEを支援してくれたメンバーのリスト
方法2はユーザーのDCを表示するサードパーティ製クライアントを使用して別のアカウントでログインし、新規アカウントのDCを確認するというものです。ただ、新規アカウントのプロフィール画像をアップロードするまではクライアントはDCを表示できません。プロフィール画像をアップロードすると新規アカウントがDC2に登録されていることが表示されます。
方法2でDCを特定可能な理由は、サードパーティのクライアントがユーザーのプロフィール画像をダウンロードする際に、MTProtoプロトコルのuserProfilePhoto構造体のdc_idフィールドからユーザーのDCを取得できるためです。ユーザーがアップロードしたファイルが保存されているCDに基づいてユーザーのDCを特定できるというわけです。
方法3は先述の通りボットを使用して新しいアカウントのドメインコントローラーを照会します。しかし実際にこの方法を試してみると、DC2アカウントであるはずがボットはDC4と出力します。
方法2を用いればユーザーのDCを正しく特定できることを確認したのち、Coxxs氏は実際に多くのアカウントを調査しました。結果として世界的にDC2ユーザーは珍しくない一方で、DC3ユーザーは極めてまれであることを確認しました。最終的にCoxxs氏が見つけたDC3ユーザーは2名だけでした。つまり、ボットがDC2ユーザーを見つけられなかったのはボットの検出ミスによるものであった一方で、DC3ユーザーが見つけられなかったのは実際にレアケースだったからということになります。
さらに、 photos.GetUserPhotos を呼び出してDC3ユーザーのプロフィール写真のリストを表示してみると、新しくアップロードされたものはDC3ではなくDC1にあることがわかりました。
DC3ユーザーのメッセージ履歴にある画像についても同様に確認してみたところ、DC3には古い画像がわずかに保存されているだけで、新しい画像はDC1に保存されていることがわかりました。一方、他のDC上のユーザーについても調べてみたところ関連付けられたDCに画像を保存していることがわかりました。加えて、方法3のものとは別のボット(画像やファイルを調査対象ユーザーに送信させて保存先からDCを特定するもの)を使用してみたところ、やはりDC1であることが示されました。
この要約はメディアの公開フィードから5Newsが集約したものです。 文脈も含めた全文はgigazine.netにあります — コンテンツの権利はGIGAZINEに帰属します。