Avertissement
Ce logiciel est en première phase de développement et n'est pas prêt pour les environnements de production.
Hoppipolla (en islandais « sauter dans les flaques d'eau » ) est un framework distribué pour un réseau responsable côté utilisateur basé sur le protocole Internet SCION. Il met en œuvre une partie de la proposition Internet responsable avec une approche inspirée de l'architecture conçue dans le document Accounting Value Effects for Responsible Networking et du projet User-driven Path vérifie et contrôle pour les réseaux inter-domaines (UPIN).
Une fois installé, Hoppipolla permet à l'utilisateur de publier des politiques exprimées dans Answer Set Programming (ASP) pour sélectionner les nœuds de réseau (c'est-à-dire les systèmes autonomes) qui s'y conforment lors du routage des paquets vers d'autres adresses distantes du réseau SCION.
Un exemple d’une telle politique en langage naturel :
Do not route network traffic through nodes that are located in country X
Ce qui, en utilisant la syntaxe ASP spécifique à Hoppipolla, ressemblerait à :
-valid(Path) :- country(Hop, "X"), hop(Hop), path(Path), contains(Path, Hop).
Le framework est constitué d'une suite de services et de SDK spécifiques au langage utilisés pour interagir avec eux du côté client. Tous les services exposent une API gRPC définie dans le dossier protos
qui peut être utilisée directement à la place du SDK de votre choix.
En termes de dépendances externes, Hoppipolla dépend exclusivement de SCION. L'utilisateur doit fournir un point d'entrée à la pile SCION via une connexion stable au démon SCION.
Suivez ce guide pour installer SCION et l'utiliser dans le banc d'essai SCIONLab.
À ce stade, Hoppipolla n'est pas prêt pour la production dans un environnement entièrement distribué. Par conséquent, pour les travaux expérimentaux, il est recommandé de l'exécuter localement à l'aide docker compose
.
Vous pouvez trouver un exemple des options de configuration qui peuvent être transmises aux services dans le fichier .env.example
.
Important
Plus particulièrement, la variable d'environnement HOPPIPOLLA_SCIOND_URI
doit être définie sur l'adresse du démon SCION (par exemple, 127.0.0.1:30255).
Le référentiel contient un fichier docker-compose.yml
qui exécute tous les services nécessaires. Vous pouvez lancer Hoppipolla sur votre machine simplement en exécutant :
docker compose up
Avertissement
À déterminer
L'extrait suivant montre une utilisation simple du SDK Python :
config = hp.HoppipollaClientConfig() # valeurs par défautclient = hp.HoppipollaClient.from_config(config)issuer = client.get_default_issuer()policy1 = client.publish_policy( issuer, '-valid(Path) :- country(Hop, "X") , hop(Hop), chemin(Chemin), contient(Chemin, Hop).')résultat = client.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla est sous licence GNU GPL v3.0.