警告
このソフトウェアは開発の初期段階にあり、運用環境で使用する準備ができていません。
Hoppipolla (アイスランド語で「水たまりに飛び込む」という意味) は、SCION インターネット プロトコルに基づいたユーザー側責任ネットワーキングのための分散フレームワークです。これは、「責任あるネットワーキングのためのアカウンティング価値効果」の論文と、ドメイン間ネットワークのユーザー主導パスの検証および制御 (UPIN) プロジェクトで設計されたアーキテクチャに触発されたアプローチを使用して、責任あるインターネットの提案の一部を実装しています。
Hoppipolla をインストールすると、ユーザーは応答セット プログラミング (ASP) で表現されたポリシーを公開し、SCION ネットワーク内の他のリモート アドレスにパケットをルーティングするときにポリシーに準拠するネットワーク ノード (つまり、自律システム) を選択できるようになります。
自然言語でのこのようなポリシーの例:
Do not route network traffic through nodes that are located in country X
Hoppipolla 固有の ASP 構文を使用すると、次のようになります。
-valid(Path) :- country(Hop, "X"), hop(Hop), path(Path), contains(Path, Hop).
このフレームワークは、一連のサービスと、クライアント側からサービスと対話するために使用される言語固有の SDK で構成されます。すべてのサービスは、 protos
フォルダーで定義された gRPC API を公開しており、選択した SDK の代わりに直接使用できます。
外部依存性に関しては、Hoppipolla は SCION のみに依存しています。ユーザーは、SCION デーモンへの安定した接続を介して SCION スタックへのエントリポイントを提供することが期待されます。
このガイドに従って SCION をインストールし、SCIONLab テストベッド内で使用します。
現段階では、Hoppipolla は完全な分散環境で運用する準備ができていません。したがって、実験的な作業の場合は、 docker compose
使用してローカルで実行することをお勧めします。
サービスに渡すことができる構成オプションの例は、 .env.example
ファイルにあります。
重要
最も注目すべき点は、 HOPPIPOLLA_SCIOND_URI
環境変数を SCION デーモンのアドレス (例: 127.0.0.1:30255) に設定する必要があることです。
リポジトリには、必要なサービスをすべて実行するdocker-compose.yml
ファイルが含まれています。以下を実行するだけで、マシン上で Hoppipolla を起動できます。
docker compose up
警告
未定
次のスニペットは、Python SDK の簡単な使用法を示しています。
config = hp.HoppipollaClientConfig() # デフォルト値client = hp.HoppipollaClient.from_config(config)issuer = client.get_default_issuer()policy1 = client.publish_policy( issuer, '-valid(Path) :- country(Hop, "X") 、ホップ(ホップ)、パス(パス)、含まれる(パス、ホップ)。')結果 = client.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla は GNU GPL v3.0 ライセンスを取得しています。