← ブログ一覧

Solenoid:Internet Computerの分散型エッジ構造

Solenoid:Internet Computerの分散型エッジ構造

境界ノードはInternet Computerの入り口

Internet Computer(ICP)へのすべてのユーザーリクエストは、まず「境界ノード(Boundary Node)」を通過してから、目的のカニスター(スマートコントラクト)に到達します。この投稿では、新しい境界ノードのアーキテクチャ、Solenoidマイルストーンの成

果、そしてそれによって実現される機能について詳しく解説します。

境界ノード=Internet Computerの郵便配達人

大まかに言えば、境界ノードはInternet Computerの郵便配達人のような役割を果たします。クライアントからリクエストを受け取り、それを正しい宛先に届けるのです。

この役割をよりよく理解するためには、まずInternet Computerの中核構造を理解する必要があります。

ICPのコアは複数のサブネットに分割されており、各サブネットは複数のレプリカ(ノード)で構成されています。カニスター(ICPにおけるスマートコントラクト)はこれらのサブネットに配置されます。

例えばユーザーがICPレジャー(台帳)で送金を行いたい場合、対象のカニスターにリクエストを送る必要があります。そのリクエストは、該当サブネット内のレプリカのいずれかに正しくルーティングされなければなりません。

そこで、境界ノードの出番です。クライアントは単に任意の境界ノードにリクエストを送るだけでよく、あとはそのノードが適切なサブネットの適切なレプリカへとルーティングしてくれます。

この仕組みにより、クライアント側はICPの複雑な内部構造を意識する必要がなくなります。もし境界ノードが存在しなければ、クライアントはカニスターがどのサブネットにあるか、そこに存在するレプリカは何か、それらが動作しているかどうかまで自分で把握・管理する必要があります。

境界ノードはルーター以上の存在

しかし、境界ノードは単なる「ルーター」ではありません。

  • パフォーマンス向上のためのキャッシュ

  • セキュリティ確保のためのリクエスト制限や保護ルール

  • HTTPリクエストをIC APIコールに変換する“通訳”機能

など、多くの追加機能を担っています。

この変換機能により、ブラウザから直接カニスターにアクセス可能となっており、これはICPプロトコルならではの大きな特徴の一つです。

Solenoidの進展:境界ノードの分散化

これまで、境界ノードの運営はDFINITY Foundationが一手に担っていました。しかし、Solenoidマイルストーンの完了により、状況は変わります。

Internet Computerのエッジインフラは、いよいよ完全に分散化されるのです。

Solenoid:Internet Computerの分散型エッジ構造

境界ノードの分離:新アーキテクチャ

従来のエッジアーキテクチャでは1つの統合エンティティだった「境界ノード」は、現在では2つの異なるコンポーネントに分離されています:

  • APIバウンダリーノード(API Boundary Nodes)→ Internet Computerのパブリックエッジとして機能し、IC APIのエンドポイントを公開します。

  • HTTPゲートウェイ(HTTP Gateways)→ HTTPリクエストをIC APIコールへと変換するトランスレーターであり、ブラウザからのカニスターアクセスを可能にします。

加えて、ディスカバリライブラリ(Discovery Library)は、HTTPゲートウェイなどのICネイティブクライアントがAPIバウンダリーノードを発見し接続するのを支援します。

APIバウンダリーノード — ICのパブリックエッジ

APIバウンダリーノードは、先述の「郵便配達人」としての役割を担い、クライアントのリクエストを適切なレプリカにルーティングします。

これらのノードは、レプリカと同様にノードプロバイダーマシン上で稼働し、NNS(Network Nervous System)によって追加・削除・アップグレードなどがすべて提案型で管理されているため、Internet Computerのパブリックエッジは完全に分散化されました。

技術詳細:

  • APIバウンダリーノードの中核は ic-boundary サービスです。

  • このサービスはTLS終端、リクエスト解析、適切なレプリカへの転送といった主要機能を処理します。

  • キャッシュによるレスポンス高速化や、セキュリティ保護機能も内蔵されています。

  • ICPでは、レプリカノードとAPIバウンダリーノードの両方に単一のVMイメージが使用されており、役割に応じて ic-replica または ic-boundary が起動されます。

HTTPゲートウェイ — ブラウザからの直接アクセスを可能に

HTTPゲートウェイは、HTTPリクエストをIC APIコールに変換し、それをAPIバウンダリーノードに転送する追加の翻訳レイヤーです。これにより、ブラウザなどのHTTPクライアントが直接カニスターとやり取りできるようになります。

たとえば、internetcomputer.org にアクセスする際に追加ソフトなしでブラウザ表示できるのは、この仕組みのおかげです(サイトは完全にオンチェーンでホスティングされています)。

HTTPゲートウェイはICのコアではなく、誰でも自由にデプロイ可能です。

  • 中核は ic-gateway サービスで、以下の処理を担当:

    • TLS終端

    • HTTPキャッシング

    • HTTPリクエストをIC APIコールへ変換

    • レスポンスをHTTP形式に再変換

  • 複数のパッケージ形式で提供されており、単一インスタンスでも、大規模フリートとしても運用可能です(DFINITYも同様に運用中)。

Discovery Library — APIノードとの接続を支援

ディスカバリライブラリは、HTTPゲートウェイなどのクライアントが適切なAPIバウンダリ

ーノードを発見・接続できるよう支援します。

単純なランダム選択から、ノードのヘルスチェックやレイテンシー監視による最適ルーティングまで、さまざまな接続戦略を提供しています。

  • このライブラリは agent-rs に同梱されています。

  • 詳細なドキュメントは こちら で確認できます。

移行:ユーザーにとってはシームレスに

この旧アーキテクチャから新アーキテクチャへの移行は、ユーザーにとってはシームレスに行われるよう設計されています。一方で、開発者には新たなサービス開発やイノベーションの機会を提供します。

  • DFINITYは引き続き、ic0.app, icp0.io, icp-api.io といった既存ドメインに対応するHTTPゲートウェイを運用。

  • 開発者はディスカバリライブラリを使って、HTTPゲートウェイをバイパスし、APIバウンダリーノードに直接接続することが可能になります。

現在の状況

  • ic-boundary、ic-gateway、discovery library のすべてのコンポーネントはすでに本番稼働中であり、広範なテストも実施済み。

  • 提案#134902が可決されたことにより、現在は20のAPIバウンダリーノードがInternet Computerのパブリックエッジを構成。

  • DFINITYは複数のHTTPゲートウェイをテストおよびバリデーションのために運用しており、既存の境界ノードを1つずつHTTPゲートウェイへと置き換え中です。

フィードバック募集中

このアップデートに関するご意見は、ぜひ DFINITY DevelopersのXチャンネル や Developer Forum にて共有してください。今後のTech Roadmap更新もお楽しみに!