Advertencia
Este software se encuentra en una fase inicial de desarrollo y no está listo para entornos de producción.
Hoppipolla (en islandés "saltar en charcos" ) es un marco distribuido para redes responsables del lado del usuario basado en el protocolo de Internet SCION. Implementa parte de la propuesta de Internet Responsable con un enfoque inspirado en la arquitectura diseñada en el documento Accounting Value Effects for Responsible Networking y en el proyecto User-driven Path programming and control for Inter-domain Networks (UPIN).
Una vez instalado, Hoppipolla permite al usuario publicar políticas expresadas en Programación de conjuntos de respuestas (ASP) para seleccionar nodos de red (es decir, sistemas autónomos) que las cumplan al enrutar paquetes a otras direcciones remotas en la red SCION.
Un ejemplo de dicha política en lenguaje natural:
Do not route network traffic through nodes that are located in country X
Lo cual, usando la sintaxis ASP específica de Hoppipolla, se vería así:
-valid(Path) :- country(Hop, "X"), hop(Hop), path(Path), contains(Path, Hop).
El marco está constituido por un conjunto de servicios y los SDK específicos del idioma que se utilizan para interactuar con ellos desde el lado del cliente. Todos los servicios exponen una API gRPC definida en la carpeta protos
que se puede usar directamente en lugar del SDK de elección.
En términos de dependencias externas, Hoppipolla depende exclusivamente de SCION. Se espera que el usuario proporcione un punto de entrada a la pila SCION a través de una conexión estable al demonio SCION.
Siga esta guía para instalar SCION y utilizarlo dentro del banco de pruebas de SCIONLab.
En esta etapa, Hoppipolla no está listo para la producción en un entorno totalmente distribuido. Por lo tanto, para trabajos experimentales, se recomienda ejecutarlo localmente usando docker compose
.
Puede encontrar un ejemplo de las opciones de configuración que se pueden pasar a los servicios en el archivo .env.example
.
Importante
En particular, la variable env HOPPIPOLLA_SCIOND_URI
debe establecerse en la dirección del demonio SCION (por ejemplo, 127.0.0.1:30255).
El repositorio contiene un archivo docker-compose.yml
que ejecuta todos los servicios necesarios. Puedes acelerar Hoppipolla en tu máquina simplemente ejecutando:
docker compose up
Advertencia
Por determinar
El siguiente fragmento muestra un uso simple del SDK de Python:
config = hp.HoppipollaClientConfig() # valores predeterminadoscliente = hp.HoppipollaClient.from_config(config)emisor = client.get_default_issuer()policy1 = client.publish_policy( emisor, '-valid(Ruta):- país(Salto, "X") , salto(Salto), ruta(Ruta), contiene(Ruta, Salto).')resultado = cliente.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla tiene licencia GNU GPL v3.0.