GSoC 2018: GNUnet WebUI (GNUnet Web-basierte Benutzeroberfläche)


Di, 14.08.2018 - 07.55 Uhr, Phil Buschmann

What was done?

Im Rahmen von Google Summer of Code 2018 haben mein Mentor (Martin Schanzenbach) und ich an der Erstellung und Erweiterung der REST-API von GNUnet gearbeitet. Gegenwärtig haben wir die Funktionalität der folgenden Kommandos gespiegelt:

  • gnunet-identity
  • gnunet-namestore
  • gnunet-gns
  • gnunet-peerinfo

Zusätzlich haben wir eine Website mit dem Javascript-Framework Angular 6 und dem Design-Framework iotaCSS entwickelt, um die neue REST-API zu verwenden. Die REST-API von GNUnet ist nun mittels Sphinx dokumentiert.

Why did we create a REST API?

... wann kannst du die Kommandozeilen-Tools verwenden? Wir müssen uns vor Augen halten, daß jeder das Recht hat, sicher und privat zu bleiben, aber nicht jeder sich bei der Nutzung eines Terminals wohl fühlt. Gemeinsam mit der neuen Webapplikation erlaubt das weiterentwickelte REST neuen Nutzern den Zugang zu GNUnet APIs über ein wohlgekanntes Medium: ihren eigenen Browsern. Diese Weiterentwicklung des C-API und den Kommandozeilen-Tools könnte neue Nutzer und Entwickler anziehen.

How can we use it?

  1. Die in GNUnet entwickelte REST-API
    Die REST-API ist bereits im gnunet.git-Repository ( GNUnet Main Git ) zusammengeführt.
    Um die neuen Funktionen zu nutzen, klonst du das Repository und folgst der Installation auf gnunet.org. Starte dann den Rest-Service mit "gnunet-arm -i rest".
  2. Die Web-Anwendung
    Die Web-Anwendung ist verfügbar unter der GNUnet-webui.git-Repository (GNUnet WebUI Git).
    Du mußt die neuste Version von 'node' und 'yarn' installieren. In Abhängigkeit von deinem System mußt du eventuell neuere Versionen herunterladen und manuell anstatt über deinen Paket-Manager installieren. Nach erfolgreicher Installation mußt du die Repository klonen. Anschließend läßt du "yarn install" und "yarn start" für Testzwecke laufen. Um die Webseite bereitzustellen (beachte dabei, daß diese Webseite mit einer weiteren lokalen Host-Instanz kommuniziert) benutzt du "yarn build", um die Webapplikationen zu bauen, und verwendest das Ergebnis im 'dist'-Verzeichnis.
  3. Die Dokumentation
    Die Dokumentation ist verfügbar unter der gnunet-rest-api.git-Repository (GNUnet REST API Docmentation Git).
    Klone die Repository und "make html". Dann öffnest du den 'index.html' unter 'build/html/'.

Bitte probiere es aus und melde dich bei mir, wenn du Fehler oder unbeabsichtigte Funktionen findest. ;)

What can be improved?

Derzeit ist der Erstellungsprozess der Webanwendung für einen gelegentlichen Nutzer möglicherweise etwas zu komplex. Eventuell können wir dies durch die Nutzung von docker lösen.
Darüber hinaus verhindert die Webanwendung zwar keine falschen Inputs, aber reagiert darauf mit Fehlermeldungen. Die Hinzufügung von GNUnet Records ist gegenwärtig nur benutzbar für Leute, die wissen wie eine GNS Record aussieht. Dies kann auf jeden Record-Typus angepaßt werden.
Zu guter Letzt, zusätzliche Funktionen, Designänderungen, etc...

Danke fürs Lesen.