インターネットコンピュータのストレージモデルとさらに多くのストレージに向けたロードマップ
- ICP Japan
- 5月13日
- 読了時間: 7分
更新日:7月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の状態で状態同期がどのように機能するか、そしてそのパフォーマンスがすべてのケースで許容できるか、または最適化が必要かを確認するためにベンチマークを実行する必要があります。
時折、サブネットに参加しているノードは、複製された状態をハッシュ化する必要があります。これは段階的に行われます(つまり、前の状態との違いだけをハッシュ化すればよい)のですが、多くの場合、状態全体をハッシュ化する必要があるエッジケースもあります。これらのケースが許容できるかどうかをテストする必要があります。
Commenti