Предупреждение
Это программное обеспечение находится на ранней стадии разработки и не готово к использованию в производственных средах.
Hoppipolla (по-исландски «прыжки в лужи» ) — это распределенная среда для ответственной работы в сети на стороне пользователя, основанная на интернет-протоколе SCION. Он реализует часть предложения по ответственному Интернету с использованием подхода, вдохновленного архитектурой, разработанной в документе «Эффекты учетной стоимости для ответственной сети», а также проектом проверки и контроля управляемого пользователем пути для междоменных сетей (UPIN).
После установки Hoppipolla позволяет пользователю публиковать политики, выраженные в программировании набора ответов (ASP), для выбора сетевых узлов (т. е. автономных систем), которые соответствуют им при маршрутизации пакетов на другие удаленные адреса в сети SCION.
Пример такой политики на естественном языке:
Do not route network traffic through nodes that are located in country X
Что, используя синтаксис ASP, специфичный для Hoppipolla, будет выглядеть так:
-valid(Path) :- country(Hop, "X"), hop(Hop), path(Path), contains(Path, Hop).
Платформа состоит из набора сервисов и SDK для конкретного языка, используемых для взаимодействия с ними со стороны клиента. Все службы предоставляют API-интерфейс gRPC, определенный в папке protos
, который можно использовать непосредственно вместо выбранного SDK.
Что касается внешних зависимостей, Hoppipolla зависит исключительно от SCION. Ожидается, что пользователь предоставит точку входа в стек SCION через стабильное соединение с демоном SCION.
Следуйте этому руководству, чтобы установить SCION и использовать его на испытательном стенде SCIONLab.
На данном этапе Hoppipolla не готова к работе в полностью распределенной среде. Поэтому для экспериментальной работы рекомендуется запускать его локально с помощью docker compose
.
Пример параметров конфигурации, которые можно передавать службам, можно найти в файле .env.example
.
Важный
В частности, переменная env 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):- страна(Hop, "X") , hop(Hop), path(Path), contains(Path, Hop).')result = client.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla имеет лицензию GNU GPL v3.0.