Förderjahr 2016 / Projekt Call #11 / ProjektID: 1589 / Projekt: Bloqs
Das Ziel des Projekts bloqs ist es 3 Szenarien zu entwickelt, welche den Einsatz von Blockchain Technologie demonstrieren sollen. Folgende 3 Szenarien wurden definiert und ebenfalls als Proof of Concept Applikation entwickelt.
- Abbildung von Wetten Mit der Blockchain Technologie können Wetten abgebildet werden, ohne das eine zentrale Instanz den Wettverlauf (zB Ausschüttung) beeinflussen kann. Im implementierten Szenario können beliebige Sportwetten erstellt werden.
- Dezentrale Namensregistrierung (zB für Domains) Mit der Blockchain Technologie können Namensregistrierungen dezentral durchgeführt werden. Zum Namen können zusätzliche Daten registriert werden. Im implementierten Szenario kann eine Subdomain registriert werden, welche einen Redirect auf eine gewünschten hinterlegten Link durchführt.
- Crowdsales Mit der Blockchain Technologie können Initial Coin Offerings (ICO) durchgeführt werden, welche als Investitionsmethode in Startups genutzt werden können. Im implementierten Szenario wird ein ICO abgebildet.
Die 3 angeführten Szenarien wurden implementiert als vollständige DAPPS (Dezentrale Anwendungen), welche über einen Webbrowser genutzt werden können. Zur Verwaltung von Ethereum (einer Kryptowährung) wird ein Browserplugin (MetaMask) benötigt. Dieses Browserplugin fungiert als Wallet und ermöglicht das senden von Transaktionen an die entsprechenden Smart Contracts.
Die Szenarien bestehen aus einer DAPP und andererseits aus Smart Contracts, welche die tatsächlichen Anwendungen darstellen, welche innerhalb einer Blockchain ausgeführt werden. Die Smart Contracts wurden zur Demonstration in der Ropsten Ethereum Testnet Blockchain installiert. Dies ermöglich die Nutzung mittels frei erhältlichem Testnet Ethereum. Eine Verlinkung zu den jeweiligen Anwendungen findet sich auf der Projektwebsite (http://bloqs.at). Alle Implementierungen wurden auf Github gestellt (https://github.com/getbloqs).
Nächste Schritte im Projekt:
- Überarbeitung der Installationsdokumentation der jeweiligen Projekte.
- Abschluss des gesamten Berichtes zu den einzelnen Szenarien
Herausforderungen: Das Arbeiten mit Blockchains im speziellen der Ethereum Entwicklungsumgebung ist auf allgemeiner Ebene bereits sehr gut unterstützt. Es gibt sehr gute Werkzeuge wie zB Truffle zur Verwaltung von Projekten oder Ganache um eine lokale Blockchain zu Testzwecken zu betreiben. In den Details gibt es leider noch viele Hürden und Herausforderungen. Im folgenden 2 "kleine" Probleme die jedoch schnell sehr große Auswirkungen haben:
- Zum Arbeiten in einer DAPP wird die Javascript Bibliothek web3.js verwendet. Diese Bibliothek liegt in einer alten 0.20.0 Version und in neueren Versionen 1-beta vor. Diese sind von der API generell nicht mehr kompatibel. Die Einbindung dieser Bibliothek über den Node Package Manager und Einbindung in den Build-Prozess ist schwierig. Das integrieren mittels Webpack funktioniert nicht, da Teile der Bibliothek nicht korrekt verknüpft werden (siehe github issue). Die einzige Lösung aktuell ist eine kompilierte Version 0.20.0 mittels eigenem script Tag in die Html Seite zu integrieren.
- Zur Kommunikation innerhalb der DAPP mit dem Ethereum Netzwerk kann MetaMask verwendet werden. Dies ermöglicht es ebenfalls Transaktionen abzusetzen, vor allem im Testnet Betrieb kann es hier zu vielen Testnet Transaktionen kommen. MetaMask "verliert irgendwann den Faden" wie diese Transaktionen zusammenhängen (siehe github issue), dies kann dazu führen, dass keinerlei Testen mehr möglich ist. Zum Glück gab es einen kurzfristige Lösung durch das Eliminieren der Transaktionshistorie.