top of page

インターネットコンピュータのストレージモデルとさらに多くのストレージに向けたロードマップ

  • 執筆者の写真: ICP Japan
    ICP Japan
  • 5月13日
  • 読了時間: 7分

この記事では、インターネットコンピュータ(IC)のストレージモデルについて説明し、さらに多くのストレージを提供するためのロードマップに関する洞察を提供します。

まず、ブロックチェーンが一般的に提供できるストレージの種類についての概要を紹介し、その後、インターネットコンピュータのアーキテクチャによって可能となるユニークなトレードオフに関する詳細に進み、最後に、さらなるストレージに向けたロードマップの次のマイルストーンについて概観します。

ブロックチェーンのストレージの文脈では、大まかに言えば、2種類のストレージを区別できます:完全に複製されたストレージと分散ストレージです。インターネットコンピュータは、完全に複製されたストレージに依存しています。完全に複製されたストレージでは、プロトコルの一部として、参加するすべてのノードがデータの完全なコピーを保存することが保証されています。これを「複製された状態」とも呼び、したがって、このストレージタイプは、プロトコルに従って参加ノードが合意した内容を実行する一部として、データの読み取り、書き込み、更新、削除を直接サポートします。スマートコントラクト開発者の視点から見ると、このタイプのストレージは、従来のコンピュータプログラムにおけるRAMに似ており、永遠に保持されます。

一方、分散ストレージでは、コンセンサスプロトコルは、どのノードがどの部分のデータを保存するかを決定するオーケストレーターとして機能します。これにより、すべての参加ノードがすべてのデータを保存する必要はなくなり、複製の頻度を低く抑えることができます。しかし、重要なのは、これがデータの読み取りを直接行うことが実現不可能になることを意味し、したがってこのストレージタイプは主に静的なデータの保存に使用されます。

データが完全に複製されるモデルは、分散ストレージモデルと比べて、構築できるアプリケーションの範囲で明らかにより強力である一方、スケーラビリティの課題を伴います。

インターネットコンピュータのアーキテクチャには、これらのスケーラビリティの課題に対処し、巨大な完全複製ストレージ容量を提供するための3つのユニークな概念があります:決定論的分散化、高性能なストレージレイヤの実装、そしてサブネットを追加することによるスケーリング能力です。

以下では、これらがどのようにして高スケーラブルな完全複製ストレージを実現するのかについて簡単に説明します。

決定論的分散化

ネットワーク神経システム(NNS)DAOは、どのノードをネットワークに参加させるか、どのノードがサブネットの一部になるかを情報に基づいて決定します。このため、任意のノードがネットワークやサブネットに参加できる設定と比較して、サブネットごとのノード数は大幅に少なくて済みます。

高性能なストレージレイヤの実装

最近、インターネットコンピュータのストレージレイヤ全体がStellaratorマイルストーンの一部として再構築されました。この新しいストレージアーキテクチャは、サブネットごとの完全複製ストレージ容量を増加させる重要なステップです。Stellaratorマイルストーンの開始時に、サブネットごとの最大ストレージ容量は1TiB(約1.1テラバイト)に増加しましたが、重要なのは、この新しいアーキテクチャがさらに多くの完全複製ストレージをサポートするための後続プロジェクトを可能にする点です。

サブネットを追加することによるスケーリング

NNSは、必要に応じて新しいサブネットを起動することができるため、ストレージ容量をオンデマンドで追加できます。

これらのインターネットコンピュータのアーキテクチャ的特性により、これまでの焦点は、完全複製ストレージ容量の最適化に置かれてきました。この記事の残りの部分では、インターネットコンピュータにおける完全複製ストレージ容量の次のステップについて、もう少し具体的に概観します。

現在、1つのサブネットは1TiB(約1.1テラバイト)の完全複製ストレージを保存できます。インターネットコンピュータには現在、34のサブネットがdappをホストしており、つまり現在の全体の複製ストレージ容量は34TiBです。

1TiBから2TiBへのサブネットストレージの拡張

インターネットコンピュータ(IC)の新しいストレージレイヤは、複製された状態のサイズが大きくなるにつれて時間が線形的に増加する操作を実行する必要がないように設計され、実装されました。その操作は、前の状態と比較して変更されたデータ量にのみ依存します。この観点から見ると、インターネットコンピュータはサブネットの最大複製状態サイズを増加させるために非常に適していると言えます。

2TiBへの拡張を解放するために調査すべき既知の要素は残っていますが、実装中に新たな未知の要因が発見される可能性もあります:

  • 新しくサブネットに参加したノードや、他のノードより遅れているノードは、「状態同期(state sync)」というプロトコルを使用して、サブネットの最新の状態に完全に追いつきます。また、サブネットの回復には、いくつかのノードが完全な状態を同期する必要がある場合があります。2TiBの状態で状態同期がどのように機能するか、そしてそのパフォーマンスがすべてのケースで許容できるか、または最適化が必要かを確認するためにベンチマークを実行する必要があります。

  • 時折、サブネットに参加しているノードは、複製された状態をハッシュ化する必要があります。これは段階的に行われます(つまり、前の状態との違いだけをハッシュ化すればよい)のですが、多くの場合、状態全体をハッシュ化する必要があるエッジケースもあります。これらのケースが許容できるかどうかをテストする必要があります。

楽観的に言えば、2TiBへの拡張は広範なテストといくつかの最適化により解決できる可能性があります。

2TiBを超えるサブネットストレージ

次に、さらに進んで、2TiBを超えるストレージが可能かどうかという自然な疑問が湧きます。残念ながら、2TiBを超えることは、2TiBへの拡張よりもやや複雑です。主に、これ以上の容量を増やすことが、最悪の使用シナリオにおいてノードの物理ディスクを満杯にしてしまう可能性があるためです。特に、新しいストレージレイヤがディスク上にファイルを保存する方法や、プロトコルが古い状態を保持することに非常に慎重であることは、ディスク使用量にかなりのオーバーヘッドを伴います。

したがって、2TiBを超えて、例えば4TiBまたはそれ以上のストレージ容量を増加させるためには、いくつかのプロトコル変更が必要です。まず、ストレージオーバーヘッドを減らすためにストレージレイヤのパラメータを変更する必要があり、これは実行パフォーマンスにも影響を与えます。次に、古い状態を削除する際に、プロトコルをより積極的に変更する必要があります。明らかに、これらの変更は設計と実装において非常に慎重を期す必要があり、広範なテストも必要です。このステップに到達するためには、2TiBの段階で触れたすべての点を再調査し、さらに改善を加えることが求められるでしょう。

したがって、2TiBを超えるストレージにはもう少し時間がかかりますが、それでも最終的には到達可能であると確信しています。

インターネットコンピュータの分散ストレージ空間

最後に、インターネットコンピュータがこれまで大量の複製ストレージを提供することに焦点を当ててきた一方で、プロトコルを拡張して分散ストレージ空間(例:ブロブストレージ)を追加することは、基本的に妨げる要因はありません。このトピックについては、別の投稿で後ほど詳しく議論します。

結論

インターネットコンピュータは、ここ数年でブロックチェーン上での複製ストレージ容量に関して可能性の限界を押し広げ続けてきました。これは、数年前には不可能だと考えられていたWeb3の多くのユースケースにとって重要な要素です。その一例が、完全にオンチェーンで動作する大規模言語モデル(AI)です。

インターネットコンピュータには、現在の複製ストレージの限界を超えてさらに進むためのユニークなアーキテクチャ的特性があります。上記で議論したように、インターネットコンピュータのストレージ容量をさらに増加させるための具体的な次のステップがすでに計画されています。

また、インターネットコンピュータの分散ストレージに関しては、静的なブロブの保存が可能なストレージの第二層を提供するための取り組みが間もなく始まります。

Comments


bottom of page