警告
該軟體正處於開發的早期階段,尚未準備好用於生產環境。
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,可以直接使用該 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(PathpPath) :-X(Path) :-X(Path) :-X(Path) :-X(Path) ) , hop(Hop), path(Path), contains(Path, Hop).')結果 = client.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla 已獲得 GNU GPL v3.0 許可。