Distributed hash table
アドホック性とスケーラビリティの両立を目指す探索 (lookup) 手法で、コンピュータネットワーク上に構築されることから、オーバレイネットワークの一つといえる。 アドレスとコンテンツのハッシュ値を空間に写像し、その空間を複数のピアで分割管理することで、特定ピアに負荷が集中することなく大規模なコンテンツ探索を実現する。 IPFS特有の技術とかそういう話ではないYudai.icon
サーバの集合により構成され、主な機能はハッシュテーブルと同等である。あるキー(ビット列)をハッシュ関数、あるいは何らかの直線化関数により論理的な空間の1点に射影し、射影された点に値を関連づけることを特徴とする。DHTは高いスケーラビリティを持つことが特徴である。スケーラビリティは、DHTに参加するノード数Nに対して、どのノードから探索を開始しても、全てのノードにO(N)オーダよりも良いオーダ (Chord等の代表的なアルゴリズムではO(log(N))) の通信により到達可能なことが確率的に保証されていることによる。この性質は、スケーラビリティを実現するための自律分散的なアルゴリズムに従った多数のノードによる、ハッシュテーブルを管理する論理空間の分割統治によるものである。論理空間の一部の管理を分担したDHTノード間で構成するオーバーレイネットワークの構成と、その上でのルーティングを工夫することでスケーラビリティを実現している。
状態的に全ピアでハッシュテーブルを持つってことに近いのかな?Yudai.icon
chatGPT.iconこの設計の目的は、大規模なシステムでもデータの格納と取得が効率的に行えるようにすることです。特定のキーに関連付けられた値(データ)を見つけるためには、そのキーが割り当てられた特定のノードだけを調べれば良いのです。その結果、大量のデータを検索する必要がなく、スケーラビリティが大幅に向上します。
各ノードは、その一部のハッシュテーブルを保持し、自分自身の範囲内のキーと値のペアを保存します。また、他のノードに関する情報(それがどのキーと値のペアを持っているか)も保持しています。これにより、ネットワーク全体としては、一つの大きなハッシュテーブルが形成されていると言えます。しかし、全てのノードが全ての情報を持っているわけではなく、情報はネットワーク全体に分散されているのです。
そういうわけではなさそうYudai.icon
ノードが保存しているデータの関連情報のみを持っている
キーを値にマッピングする分散システムです。IPFSでは、DHTはコンテンツ・ルーティング・システムの基本コンポーネントとして使用され、カタログとナビゲーション・システムを掛け合わせたような役割を果たします。ユーザーが探しているものを、一致するコンテンツを保存しているピアにマッピングします。誰がどのデータを持っているかを保存する巨大なテーブルのようなものだと考えてください。
疑問なんだけどこれってIPFS上で状態を保持出来ないと思うんだけどどうなんだろYudai.icon ↑上記参考
キーと値のペア
Provider records
データ識別子を、そのコンテンツを持っており、提供する意思があると宣伝しているピアにマッピングする
IPNS records
IPNSキー(公開鍵のハッシュ)をIPNS recordsにマッピングする
Peer records
PearIDをそのピアに到着できるマルチアドレスのセットにマッピングする
ネットワークピアを一意に識別するためのアドレス空間
IPFS上では0~2^251-1
アドレス空間内のピアを順序付ける貯めのメトリックでありピアを可視化する
= まるでソートされたリストのようにネットワークを検索可能
もしかしたらDHTっていろんな種類があるかもYudai.icon
いろいろあった