Jacek Varky MaibornWolff GmbH

„Wir haben gezeigt, wie man mit einer bereits bestehenden Infrastruktur eine Continuous-Integration-Pipeline für das Entwickeln von DApps aufbaut. Damit sind wir in der Lage, das Deployen und Testen von Smart Contracts zu automatisieren und dadurch den Entwicklungsprozess von DApps effizienter zu gestalten.“

DApps (decentralized Apps) sind verteilt laufende Anwendungen, die in der Regel auf einer Blockchain implementiert werden. Ihr Vorteil: Das dezentrale Layout macht sie schwer angreifbar, hinzu kommt die hohe Manipulationssicherheit von Distributed-Ledger-Technologien. Diese Eigenschaften machen DApps für einige Anwendungsfälle zu einer interessanten Alternative zu Client-Server-Anwendungen. So weit, so gut. Als Entwickler sind wir jedoch an einige Arbeitsabläufe gewöhnt, die Frameworks für Blockchain-Entwicklung noch nicht umsetzen. So brauchen wir für ein schnelles Deployment häufig eine funktionierende CI-Pipeline. Ich zeige in diesem Artikel die Konfiguration einer CI-Pipeline in GitLab und Docker, mit Embark als Entwicklungs- und Testumgebung für DApps und dem statischen Codeanalysewerkzeug Mythril. Vorher führe ich kurz in die beteiligten Komponenten ein.

Der Backend-Code einer DApp wird dezentral auf einem Peer-to-Peer-Netzwerk aus vielen Rechnern betrieben. Die verteilten Anwendungen kommen damit ohne zentrale Server aus. Das macht sie schwer angreifbar, daher stammt die Bezeichnung „unstoppable Apps“. Hinzu kommt: Wenn die Programme richtig programmiert sind, skalieren sie automatisch mit der Anzahl der Nutzer. Mehr Benutzer bedeuten auch mehr Nodes, die an der Weiterverteilung des Programms teilnehmen.

DApps müssen nicht zwingend auf einer Blockchain betrieben werden; die dezentrale Anlage der Blockchain macht eine Verknüpfung jedoch naheliegend. Zusätzlich kommen DApps so auch in den Genuss der Vorteile der Blockchain, etwa von Smart Contracts (Kasten „Was sind Smart Contracts?“) und der Unveränderbarkeit der Blockchain.

Vor- und Nachteile von DApps

Wie jede Technologie, hat auch die Blockchain Vor- und Nachteile. Es ist wichtig, diese zu kennen, bevor man entscheiden kann, ob man ein Projekt als DApp umsetzten möchte. Die Vorteile der Technologie sind eine hohe Transparenz, Manipulations- und Ausfallsicherheit sowie geringere Transaktionskosten:

  • Transparenz: Nutzer und Entwickler können mit Hilfe von Etherscan Nachrichten aus der Blockchain auslesen und validieren. Damit ist das System transparenter als eine Client-Server-Anwendung.
  • Manipulationssicherheit: Die abgelegten Daten sind durch die Verwendung von Kryptografie unveränderlich und dadurch manipulations- und revisionssicher.
  • Ausfallsicherheit: Die Blockchain bietet Ausfallsicherheit, da die Informationen nicht auf einem zentralen Server, sondern verteilt auf vielen Servern auf der gesamten Welt gespeichert werden. Wenn einer dieser Server nicht mehr erreichbar ist oder durch einen Cyberangriff kompromittiert wurde, gehen die Informationen der Blockchain trotzdem nicht verloren.
  • Transaktionskosten: Die Blockchain erlaubt Transaktionen zwischen zwei Parteien, ohne eine dritte Partei, etwa eine Bank, einzuschalten. Wenn der unabhängige Dritte nicht für Dienste entlohnt werden muss, sinken die Transaktionskosten. Die Betriebskosten für die Blockchain bleiben natürlich; eine andere Art der Applikation würde jedoch auch Kosten für Infrastruktur und Betrieb verursachen.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Entwickler Magazin Spezial Vol.18: Blockchain - "Blockchain"

Alle Infos zum Heft
579865618Dezentrale Apps zentral testen mit CI
X
- Gib Deinen Standort ein -
- or -