Förderjahr 2016 / Projekt Call #11 / ProjektID: 1589 / Projekt: Bloqs
Im folgenden Artikel sollen die wichtigsten Werkzeuge aufgezeigt und zusammengefasst werden, welche für die Smart Contract Entwicklung mittels der Ethereum Blockchain essentiell sind.
Solidity
Solidity ist eine Programmiersprache zur Entwicklung von Smart Contracts speziell für die Ethereum Virtual Machine. Solidity ist objektorientierten Programmiersprachen wie Python oder C++ sehr ähnlich. Solidity ist sicherlich die populärste und am besten unterstützte Programmiersprache zur Entwicklung von Smart Contracts. Neben Solidity gibt es noch Bamboo und Vyper als Smart Contract Programmiersprachen, welche sich aber eher noch in einem experimentelleren Stadium befinden.
Truffle
Truffle ist im wesentlichen ein Kommandozeilen Programm, welches den gesamten Workflow der Smart Contract Entwicklung unterstützt. Folgende wesentliche Aspekte werden unterstützt:
- Kompilieren von Smart Contract Quellcode in ausführbaren Bytecode für die Ethereum EVM
- Deployment von Bytecode in das Ethereum Mainnet, Testnet bzw. privates Testnet
- Unit Testing von Smart Contracts mittels JavaScript oder Solidity Tests
- Debugging einer "historischen" Smart Contract Ausführung. Da alle Smart Contract Ausführungen in der Blockchain gespeichert sind, können diese mittels eines Debuggers Schritt für Schritt nachvollzogen werden.
MetaMask
Ein Web-Browser kann generisch nicht zur Interaktion mit DApps genutzt werden, da eine Verbindung zum Ethereum Netzwerk fehlt bzw. eine Wallet benötigt wird um Transaktionen zu signieren. MetaMask ist eine Browser Extension, welche eine Wallet und eine Verbindung mit dem Ethereum Netzwerk über einen Proxy herstellen kann. MetaMask kann innerhalb von Chrome, Firefox, Opera und Brave genutzt werden. Die Extension kann über die entsprechenden Add-on Stores der Browserhersteller installiert werden. Die Sicherheit der intregrierten Wallet ist jedoch nicht zu vergleichen mit einer reinen Hardware Wallet, sodass nur wenig Ether darauf gehalten werden sollte. MetaMask eignet sich jedoch sehr gut um DApps zu testen, da man ein privates Netzwerk bzw. alle Testnetzwerke anbinden kann.
Ganache
Ganache ist eine sehr leichtgewichtige private Ethereum Testumgebung. Ganache bietet einen Kommandozeilenprogramm bzw. auch eine Benutzerschnittstelle. Die Bereitstellung eines eigenen Ethereum Client (zB geth oder parity) für Testzwecke kann mitunter aufwendig sein. Ganache bietet hierbei eine starke Vereinfachung und funktioniert ebenfalls für Continous Integration Umgebungen. Um als Entwickler möglichst schnell Smart Contracts in den Testbetrieb zu bekommen, gibt es keine einfachere und schnellere Variante als Ganache.
Open Zeppelin
Open Zeppelin ist ein Framework, welches eine große Auswahl an bestehenden Smart Contracts bietet, welche für eigene Zwecke verwendet werden können. Der wesentliche Bestandteil des Frameworks liegt vorranging auf die Unterstützung von Initial Coin Offerings (auch Crowdsales gennant). Alle Smart Contracts sind in unterschieldichen Projekten praxiserprobt und auditiert.