Solenoid:Internet Computerの分散型エッジ構造
- ICP Japan
- 5月5日
- 読了時間: 5分
更新日:7月8日

境界ノードは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のエッジインフラは、いよいよ完全に分散化されるのです。

境界ノードの分離:新アーキテクチャ
従来のエッジアーキテクチャでは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ゲートウェイへと置き換え中です。
Comments