Warnung
Diese Software befindet sich in einer frühen Entwicklungsphase und ist noch nicht für Produktionsumgebungen bereit.
Hoppipolla (isländisch für „in Pfützen hüpfen“ ) ist ein verteiltes Framework für benutzerseitig verantwortliche Vernetzung auf Basis des SCION-Internetprotokolls. Es setzt einen Teil des Responsible Internet-Vorschlags mit einem Ansatz um, der von der im Dokument „Accounting Value Effects for Responsible Networking“ entworfenen Architektur und vom UPIN-Projekt (User-Driven Path Verification and Control for Inter-Domain Networks) inspiriert ist.
Nach der Installation ermöglicht Hoppipolla dem Benutzer, in Answer Set Programming (ASP) ausgedrückte Richtlinien zu veröffentlichen, um Netzwerkknoten (d. h. autonome Systeme) auszuwählen, die diese einhalten, wenn Pakete an andere Remote-Adressen im SCION-Netzwerk weitergeleitet werden.
Ein Beispiel für eine solche Richtlinie in natürlicher Sprache:
Do not route network traffic through nodes that are located in country X
Was bei Verwendung der Hoppipolla-spezifischen ASP-Syntax wie folgt aussehen würde:
-valid(Path) :- country(Hop, "X"), hop(Hop), path(Path), contains(Path, Hop).
Das Framework besteht aus einer Reihe von Diensten und den sprachspezifischen SDKs, die für die Interaktion mit ihnen von der Clientseite aus verwendet werden. Alle Dienste stellen eine im protos
Ordner definierte gRPC-API bereit, die direkt anstelle des SDK Ihrer Wahl verwendet werden kann.
Hinsichtlich der externen Abhängigkeiten ist Hoppipolla ausschließlich auf SCION angewiesen. Vom Benutzer wird erwartet, dass er über eine stabile Verbindung zum SCION-Daemon einen Einstiegspunkt zum SCION-Stack bereitstellt.
Befolgen Sie diese Anleitung, um SCION zu installieren und im SCIONLab-Testbed zu verwenden.
Zu diesem Zeitpunkt ist Hoppipolla noch nicht für die Produktion in einer vollständig verteilten Umgebung bereit. Daher wird für experimentelle Arbeiten empfohlen, es lokal mit docker compose
auszuführen.
Ein Beispiel für die Konfigurationsoptionen, die an die Dienste übergeben werden können, finden Sie in der Datei .env.example
.
Wichtig
Insbesondere sollte die Umgebungsvariable HOPPIPOLLA_SCIOND_URI
auf die Adresse des SCION-Daemons gesetzt werden (z. B. 127.0.0.1:30255).
Das Repository enthält eine docker-compose.yml
-Datei, die alle erforderlichen Dienste ausführt. Sie können Hoppipolla auf Ihrem Computer beschleunigen, indem Sie einfach Folgendes ausführen:
docker compose up
Warnung
Noch offen
Der folgende Ausschnitt zeigt eine einfache Verwendung des Python SDK:
config = hp.HoppipollaClientConfig() # Standardwerteclient = hp.HoppipollaClient.from_config(config)issuer = client.get_default_issuer()policy1 = client.publish_policy( Issuer, '-valid(Path) :- Country(Hop, "X") , hop(Hop), path(Path), enthält(Path, Hop).')result = client.ping("1-ff00:0:110,10.0.0.1")
Hoppipolla ist GNU GPL v3.0 lizenziert.