Toolchain für Ethereum IDEs und Tools für Dapps und Smart Contracts

Von Mirco Lang

Anbieter zum Thema

Wer Python oder JavaScript beherrscht, hat bereits den wichtigsten Schritt in Richtung Blockchain-Entwicklung getan. Aber mit welchen Tools lassen sich diese Fähigkeiten umsetzen? Ein Überblick über die wichtigsten Frameworks, IDEs und Helferlein rund um Solidity, Dapps und Smart Contracts in Ethereum.

Die Blockchain-Entwicklung ist noch zu jung und unausgegoren, um auf standardisierte Tools zurückgreifen zu können.
Die Blockchain-Entwicklung ist noch zu jung und unausgegoren, um auf standardisierte Tools zurückgreifen zu können.
(Bild: / CC0)

Der Einstieg in die Blockchain-Entwicklung ist bisweilen etwas holprig, das ganze Universum aus Dokumentationen, Hilfen und Artikeln ist noch recht jung und unausgegoren. Und auf der Tool-Seite gibt es einen riesigen Wust aus IDEs, Frameworks, Compilern, Bindings, APIs und so weiter – viele nicht klar abgrenzbar, viele nach kurzer Zeit wieder eingestellt und „das eine“ Standard-Tool-Set hat sich auch noch nicht heraus kristallisiert.

eBook Blockchain
eBook „Blockchain“
(Bild: Dev-Insider)

E-Book zum Thema

Unser eBook „Blockchain“ umreißt interessante Blockchain-Technologien und geht näher auf die Ethereum-Plattform ein.

Wer sich der Thematik über Praxis, Tutorials und verfügbare Software sowie deren Funktionen annähern will, bekommt hier einen kurzen Überblick über die wichtigsten Tools zum Entwickeln, Testen und Deployen verteilter Anwendungen (Dapps) und ihrer Smart Contracts. Der grundsätzliche Aufbau einer Entwicklungsumgebung für Dapps sieht dabei wie folgt aus: Für die Frontend-Entwicklung kann ein beliebiger HTML-/JavaScript-Editor herhalten, für das Backend/den Smart Contract kommt eine IDE oder ein Framework zum Einsatz und zum Testen bedarf es gegebenenfalls noch eines lokalen Ethereum-Test-Nodes; alternativ kann auch Ethereums Testnetz „Ropsten“ genutzt werden.

Programmiersprachen

Die Basis für jede Entwicklung bildet natürlich die Programmiersprache und für das Backend, die Smart Contracts, gibt es hier drei Varianten:

  • Die Standardsprache Solidity arbeitet mit einer JavaScript-ähnlichen Syntax, ist objektorientiert und kann ausschließlich von der Ethereum Virtual Machine (EVM), also auf der Blockchain ausgeführt werden. Für die produktive Entwicklung von Verträgen ist die High Level Language Solidity heute eindeutig die erste Wahl.
  • Serpent ist an Python angelehnt und etwas rudimentärer und näher an der EVM als Solidity. Die Sprache bietet die Effizienzvorteile einer Low Level Language und zugleich einfachen Code und spezielle Smart-Contract-Funktionen.
  • Lisp Like Language (LLL) ist eine an Lisp angelehnte Low-Level-Sprache, die in der Praxis jedoch kaum genutzt wird, selbst die obige GitHub-Adresse scheint verwaist.

CLI-Frameworks

  • Truffle ist derzeit wohl das verbreitetste Framework zum Entwickeln von Dapps und läuft wie alle Tools dieser Kategorie ausschließlich auf der Kommandozeile. Der Funktionsumfang entspricht im Grunde ähnlichen Rahmenwerken für herkömmliche Programmiersprachen: Kompilierung, Verlinkung und Deployment von Verträgen, automatische Testverfahren, Scripting-Fähigkeiten für Wartung/Deployment, Verwaltung mehrerer Blockchains/Netzwerke (test, produktiv), Paketmanager für Smart-Contract-Abhänigkeiten, interaktive Konsole, einfache Anbindung an den Test-/Entwicklungs-Client EthereumJS TestRPC.
  • Embark ist als Framework nicht auf Ethereum spezialisiert, sondern unterstützt auch die Entwicklung verteilter Anwendungen für dezentralisierten Speicher via InterPlanetary File System (IPFS) sowie die dezentralisierten Kommunikationsplattformen Whisper und Orbit. Der Funktionsumfang für Ethereum: Automatisches Deployment von (aktualisierten) Verträgen, Kompilierung, Verwaltung unterschiedlicher Netzwerke sowie Abhängigkeiten
  • Dapp ist ein einfaches CLI-Werkzeug und erledigt ebenfalls die Basics der Entwicklung: Paketmanagment, Unit testingund Deployment.

IDEs

Die „Standard“-IDE ReMix im Browser.
Die „Standard“-IDE ReMix im Browser.
(Bild: ReMix Screenshot)

  • ReMix ist eine Browser-basierte Entwicklungsumgebung – und kann somit direkt über den Link ausprobiert werden; ein Beispielprojekt wird standardmäßig geladen. Die IDE bietet einen simplen Texteditor mit Syntax-Highlighting, Projektverwaltung, Module für Debugging und Analyse und kann für Testzwecke auch eine Verbindung zum lokalen Server aufbauen. ReMix ist jedoch weit davon entfernt selbsterklärend zu sein und die Dokumentation ist spärlich und unvollständig.
  • Die Visual Studio Solidity Extension von ConsenSys bringt Solidity-Unterstützung in die gewohnte Visual-Studio-Umgebung und unter anderem folgende Features mit: Deployment, Compilation, Projektmanagement, kontextsensitive Menüs, Syntax-Highlighting, Vorlagen, Entwicklung für NodeJS und ASP.Net, erweiterte Testing-Werkzeuge und natürlich die äußerst nützliche Auto-Vervollständigung samt zugehöriger Klammern.

Testing/Clients

  • testrpc ist ein auf Node.js basierender Ethereum-Client zum lokalen Testen von Smart Contracts, ohne eine Verbindung zu einem echten Blockchain-Netzwerk zu benötigen; testrpc wird in vielen Anleitungen im Netz eingesetzt.
  • Alternativ zu testrpc kann auch das Tester-Modul pyethereum.tester genutzt werden – die Dokumentation ist auch hier wieder eher seicht, die Interaktion mit dem lokalen Testnetz aber auch recht simpel, unter anderem da nach der Installation direkt zehn Test-Accounts zur Verfügung stehen.
  • Natürlich kann auch mit dem regulären Client geth eine Testumgebung aufgebaut werden.
  • web3.js ist die Ethereum JavaScript API und eine gute Möglichkeit, einfach mit dem lokalen Testnetz zu interagieren; eine exakte, englischsprachige Anleitung zum Aufsetzen einer Testumgebung mit testrpc und web3.js findet sich hier.

Sonstige Tools

  • solc-js bietet JavaScript-Bindings für den Solidity Compiler (solc). So können JavaScript-Entwickler ohne Umgewöhnung direkt in gewohnter Umgebung Smart Contracts programmieren.
  • Solidity REPL ist eine interaktive Shell für Solidity (ähnlich iPython), mit der sich sehr einfach erste Erfahrungen mit Solidity-Syntax und -Funktionen machen lassen.
  • Doxity erzeugt automatisch eine Dokumentation aus dem Solidity-Code von Smart Contracts. Die statischen HTML-Seiten können so direkt in GitHub integriert werden. Doxity unterstützt Syntax-Highlighting, komplett individualisierbare Ergebnisse und Whitelisting für Methoden, Application Binary Interface Code (ABI), Bytecode und/oder Quellcode. Die Anwendung arbeitet auch mit Truffle zusammen.

Eingestellte Apps

Das Wort „deprecated“ taucht auf sehr vielen Webseiten rund um Blockchain-Entwicklung ganz allgemein auf – viele Tools werden genauso schnell eingestellt, wie sie aufgetaucht sind. Das ist verständlich, da die Thematik noch recht jung und sehr dynamisch ist – bei der Einarbeitung ist es aber schwierig: Kaum ist ein brauchbar aufgebauter Artikel gefunden, stellt er sich auch schon als obsolet heraus, wenn die „falschen“ Tools verwendet wurden.

Die hier wohl wichtigsten Stichwörter sind die App-Namen Mix (Vorgänger von ReMix), Ethereum Studio, AlethZero und Dapple (jetzt Dapp) – aber es lohnt sich generell, vor der Vertiefung in längere Artikel und Tutorials zu checken, ob die eingesetzten Tools überhaupt noch aktuell sind.

Beispiel-Setups

  • Zum Schluss sollen zwei Beispiel-Setups den Einstieg erleichtern: Ein minimales Test-Setup könnte aus testrpc als Test-„Server“ (Node) und web3.js für die Kommunikation bestehen – minimale Test-Verträge können im Texteditor der Wahl erstellt werden.
  • Für ein Minimal-Setup für produktive Entwicklung würde sich die Kombination geth Truffle und gegebenenfalls ReMix anbieten, oder alternativ die Variante Visual Studio plus Solidity Extension.

Es gibt noch allerhand weitere Tools rund um die Entwicklung von Smart Contracts und Dapps für die Ethereum-Blockchain und viele Möglichkeiten, diese zu einer persönlichen Entwicklungsumgebung zu kombinieren. Aufgrund der extrem dynamischen App-Landschaft bleibt jedoch vor allem eine Empfehlung: Es sollten die populärsten Tools genutzt, jedoch Wissen unabhängig von diesen aufgebaut werden.

E-Book zum Thema

Blockchain

eBook Blockchain
eBook „Blockchain“
(Bild: Dev-Insider)

Um die Möglichkeiten von Blockchains einschätzen zu können, muss man verstehen, was eine solche Kette von Blöcken überhaupt im Stande ist zu leisten, und wie sie das realisiert.

Dieses eBook umfasst die folgenden Themen:

  • Blockchain: Definition, Funktionen und Visionen
  • Ethereum: Schlaue Verträge und Standardisierung
  • Die spannendsten Projekte rund um Blockchain

(ID:44815230)

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung