Frontends für dezentrale Anwendungen
Webseiten ohne Server? (12.09.2018)
Förderjahr 2017 / Project Call #12 / ProjektID: 2387 / Projekt: SmartRaise

In den letzten Wochen war das Bauen des Frontends eines der zentralen Aufgaben. Weil wir hier auf besondere Technologien aufbauen, müssen einige Punkte auch in der Umsetzung besonders berücksichtigt werden. 

 

Denzentrales Hosting 

Eines der wichtigsten Ziele ist es, Smart Raise dezentral zu machen. Das schützt vor einer Abhängigkeit von einem zentralen Server oder Betreiber. Dafür wird das Frontend (quasi die Website) nicht auf einem Webserver gespeichert, sondern über ein verteiltes Netzwerk namens IPFS ausgeliefert. 

 

IPFS 

Die Technologie von IPFS hat sich in den letzten Monaten gut entwickelt, und kommt auch bei uns zum Einsatz. Es basiert auf verteilten Servern ("Nodes"), und ähnlich wie bei einer Musiktauschbörse kann jeder Benutzer Dateien zur Verfügung stellen, und Dateien von anderen hosten. Damit sind die Daten gegen Ausfälle gesichert, aber auch gegen Manipulation und Zensur.  

Jeder, der Smart Raise unterstüzten möchte oder ein eigenes Projekt erstellt hat, kann das Programm im Hintergrund laufen lassen, das die entsprechenden Dateien vorhält. Damit kann jeder mithelfen, dass die Daten verfügbar und die Ladezeiten möglichst kurz sind.

 

Ladezeiten 

Sowohl beim Laden von Daten aus der Blockchain, als auch beim Laden von Dateien von IPFS entstehen verhältnismäßig lange Wartezeiten. (häufig bis zu 300ms). Das hat großen Einfluss auf das gesamte Design. Die Seite muss minimalistisch gehalten werden, sowohl was grafische Elemente, als auch Programm-Bibliotheken angeht. Gleichzeitig werden soweit wie möglich Bibliotheken nicht von IPFS ausgeliefert, sondern von schnellen CDN Internet-Quellen eingebunden, damit sie nicht im langsamen IPFS System dupliziert werden müssen.

 

Pre-Caching / Lazy Loading 

Diese Gegebenheiten stellen auch besondere Anforderungen daran, wann bestimmte Informationen geladen werden. Um lange Wartezeiten nach jedem Wischen zu verhindern, ist ein Pre-Caching Mechanismus wichtig, der Daten vorlädt. 

 

Dynamische Grafiken mit SVG 

Unsere Grafik zur Anzeige der Projektphasen und Finanzierungsfortschritt würde klassicherweise auf einem Server gerendert, und mit ausgeliefert. Nachdem wir durch den dezentralen Charakter keinen Server verwenden können, werden diese Grafiken im Browser mit SVG erstellt. Das ist eine schlagkräftige, moderene Technologie, die auch gute Unterstzütung genießt, aber nur selten verwendet wrid. Für unseren Use Case ist SVG aber perfekt.

 

Erfahrungen in der Umsetzung 

Diese Eigenschaften stellen eine besondere Herausfordung dar, und erfordern ein Umdenken und hohes Umsetzungsniveau durch die Entwickler voraus. Es hat sich gezeigt, dass regelmäßige Code-Reviews und Umbauten notwendig sind, um den Code besonders schlank zu halten, und dennoch die Funktionalität sicher zu stellen. 

 

Als nächstes wird für das Frontend die erste Anbindung an die Smart Contracts sowie die Admin-Seiten auf der Tagesordnung stehen. 

Zoltan Vandor

Profile picture for user zoltan.vandor

Skills:

blockchain
,
Programmieren in allen Sprachen
,
Javascript
CAPTCHA
Diese Frage dient der Überprüfung, ob Sie ein menschlicher Besucher sind und um automatisierten SPAM zu verhindern.
    Datenschutzinformation
    Der datenschutzrechtliche Verantwortliche (Internet Privatstiftung Austria - Internet Foundation Austria, Österreich würde gerne mit folgenden Diensten Ihre personenbezogenen Daten verarbeiten. Zur Personalisierung können Technologien wie Cookies, LocalStorage usw. verwendet werden. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: