警告
该软件正处于开发的早期阶段,尚未准备好用于生产环境。
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(Hop, "X") ,跳(跳),路径(路径),包含(路径,跳)。')结果= client.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla 已获得 GNU GPL v3.0 许可。