Blockchain Programmierung

Blockchain Programmierung – Hello World Tutorial für Ethereum

Wie starte ich mit der Blockchain Programmierung? Bei dem ganzen Hype um diese Technologie interessiert mich natürlich, wie man als Entwickler konkret programmieren kann. Hierzu gibt es nun dieses Tutorial, das Schritt für Schritt zu einer Blockchain Hello World Anwendung führt.

 

Auf der Suche nach einer passenden Einführung zum Blockchain programmieren bin ich auf ein Tutorial auf Udemy gestoßen: Ethereum For Beginners: Build A Hello World Blockchain App . Wie der Titel schon verdeutlicht, ist der Kurs auf Englisch. In 14 Lektionen gibt das Tutorial eine gute Einführung in die Blockchain Programmierung. Insgesamt dauert der Kurs grob 1 Stunde.

Angelehnt an dieses englische Tutorial folgt hier nun eine Zusammenfassung der notwendigen Schritte auf Deutsch, um die erste eigene Blockchain Applikation zu programmieren:

1. Installieren des Go Ethereum Clients (Geth)

Der Go Ethereum Client (Geth) dient dem Zugriff auf die Blockchain. Er macht deinen Computer zu einer eigenständigen Node in der Ethereum Blockchain und verbindet zu anderen Nodes in diesem Netzwerk.

Der Client ist in verschiedenen Programmiersprachen geschrieben worden, wie C++ oder Python. Der Go-Client ist hier der populärste.

 

Lade dir Geth hier herunter und installiere es:
https://geth.ethereum.org/downloads/

 

Ich habe das Tutorial, ebenso wie im Udemy-Kurs, auf Windows durchgearbeitet. Der Prozess ist für Linux oder OS X ähnlich. Jedoch kann’s wie immer bei unterschiedlichen Betriebssystemen kleinere Abweichungen geben.

Geth versucht, zu anderen Nodes im Ethereum-Netzwerk eine Verbindung herzustellen. Dazu nutzt es den UDP Port 30303. Geth startet als Prozess im Hintergrund. Es ist nur möglich, einen Prozess zur gleichen Zeit zu starten. Sonst gibt es ein Error.
Geth generiert außerdem eine IPC-Datei, die wir noch benötigen werden.

 

2. Installieren des EthereumJS Test RPC

In diesem Tutorial möchten wir nicht tatsächlich eine Verbindung zur realen Ethereum-Blockchain herstellen. Wir simulieren das System nur (das Ethereum Protokoll, der Mining Prozess). Hier geht das Mining sehr schnell und ist für uns mit keinen Kosten verbunden. Für die Entwicklung und das Testen ist es sinnvoll, den EthereumJS Test RPC zu nutzen. Dieser ist im Node Package Manager enthalten.

 

Lade dir Node.js herunter und installiere es:
https://nodejs.org/de/download/

 

Starte eine Kommandozeile und führe den Befehl aus:
npm install -g ethereumjs-testrpc@beta

Hierbei werden alle notwendigen Softwarepakete installiert.

 

Falls Fehler auftauchen, probiere diesen Befehl:
npm install -g ethereumjs-testrpc

Update: Ein Leser hat an dieser Stelle eine Fehlermeldung erhalten („rollbackFailedOptional“). Das lag an der Firewall. Diese kann entweder etwas „gelockert werden“. Ansonsten könnten diese Lösungsvorschläge auf Stackoverflow helfen. 

 

3. Eigenes privates Netzwerk erstellen

Wir initialisieren unsere eigene Blockchain. Dazu benötigen wir den sogenannten Block 0, den wir in der Genesis.json-Datei definieren.

 

Lege die Genesis.json datei im Pfad C:\Users\<deinUser>\AppData\Roaming\Ethereum an.

Kopiere folgendes in die Datei:


{

„difficulty“ : „0x20000“,

„extraData“ : „“,

„gasLimit“ : „0x8000000“,

„alloc“: {},

„config“: {

„chainId“: 15,

„homesteadBlock“: 0,

„eip155Block“: 0,

„eip158Block“: 0

}

}

 

Initialisiere die Blockchain über eine Kommandozeile in deinem Ethereum-Pfad:
geth –datadir=./chaindata/ init genesis.json

 

4. MIST Wallet installieren und starten

Der MIST Wallet ist eine Art Browser. Im Grunde ist es eine Electron App, die in HTML und JavaScript geschrieben wurde. MIST enthält eine Geth-Node. Dieser startet automatisch, wenn man MIST startet. Über MIST erhältst du in grafisch ansprechender Form Zugriff auf die Blockchain.

 

Lade dir MIST herunter und installiere es:
https://github.com/ethereum/mist/releases

Achtung: Nicht das Ethereum Wallet wählen, sondern MIST.

Für unser Tutorial wollen wir MIST auf unserer privaten Blockchain laufen lassen. Wie schon erklärt ist der Grund, dass man zu Entwicklungs- und Testzwecken die Pseudo-Real-Umgebung wählt. Dadurch vermeiden wir den ganzen Aufwand, der bei der richtigen Ethereum-Blockchain einhergehen würde.

 

Starte die private Blockchain in der Kommandozeile in deinem Ethereum Pfad:
geth –datadir=./chaindata

 

Starte die installierte MIST Wallet und wähle „Launch Application“

Das „Private-Net“ in der Ecke rechts oben zeigt, dass wir mit dem privaten Netzwerk verbunden sind.

 

Erstelle einen Account

 

Verbinde dich zu dem Account

 

5. Minen von Ether

Starte eine zweie Kommandozeile in deinem Ethereum-Pfad und führe den Befehl aus:
geth attach

Bei einem Fehler muss man noch unsere anfangs erwähnte IPC-Datei angeben:
geth attach ipc:/path/to/geth.ipc

In meinem Fall ist es
geth attach ipc://./pipe/geth.ipc

 

Du findest den Pfad im ersten Kommandozeile-Fenster:

Du musst nur die \\ durch ein / ersetzen.

 

Nachfolgend ein Screenshot, wie es bei mir geklappt hat:

 

Starte den Miner im zweiten Kommandozeile-Fenster:
miner.start(1);

‚null‘ ist der richtige return-Wert.

 

In der ersten Kommandozeile sieht man jetzt, wie das Minen abläuft:

 

In MIST sieht man, wie in dem erstellten und verbundenen Account das Ether-Guthaben steigt:

 

Zum Stoppen des Mining-Prozess gebe ein (im zweiten Kommandozeilen-Fenster):
miner.stop();

 

6. Installieren des Hello World Smart Contracts

Gehe in MIST auf „Contracts“ und wähle „Deploy new contract“:

 

Gebe folgenden Quellcode ein und wähle ‚Hello World‘ unter ‚Select contract  to deploy‘:

pragma solidity ^0.4.8;

contract HelloWorld {

uint256 counter = 0;

function increase() public{

counter++;

}

function decrease() public{

counter–;

}

function getCounter() public constant returns(uint256) {

return counter;

}

}

 

Klicke auf ‚Deploy‘, gebe dein Passwort zum erstellen des Contracts ein und klicke auf ‚Send Transaction‘:

 

Jetzt muss der Contract noch vom Netzwerk bestätigt werden.

Gebe dazu im zweiten Kommandozeilen-Fenster ein:
miner.start(3);

Jetzt wurde der Contract bestätigt:

Stoppe das Minen über miner.stop();

 

Nun kann man mit dem Hello World Contract rumspielen:

Geh zum Contract, wähle nach beliebem ‚increase‘ oder ‚decrease‘, gebe dein Password ein und sende die Transaction.

 

Um die jeweiligen Transaktionen zu bestätigen, muss der Miner wieder laufen:
miner.start(3);

Hier siehst du, wie Transaktion bestätigt wurde (counter increase):

Jetzt kannst du das Minen wieder stoppen (miner.stop();)

 

 

Das war’s auch schon! Jetzt bist du in der Lage, eigene Smart Contracts zu erstellen. Mir hat das Tutorial geholfen, den Einstieg in die Blockchain Programmierung zu finden. Vorher wusste ich nicht, wie ich anfangen kann. Dies war nun ein Anfang. Ich hoffe sehr, dass ich dadurch auch dir zu einem guten Einstieg helfen konnte.

Schreibe gerne in die Kommentare, wenn Fragen auftauchen oder auch gerne Feedback. Teile dieses Tutorial, damit noch viele einen guten Start in die Blockchain Programmierung erhalten können.

 

Summary
Blockchain Programmierung – Hello World Tutorial für Ethereum
Article Name
Blockchain Programmierung – Hello World Tutorial für Ethereum
Description
Möchtest du die Blockchain programmieren lernen? Dann ist dieses Tutorial etwas für dich. Es führt dich Schritt für Schritt zu einem Hello World Anwendungsfall.
Author
Publisher Name
blockchain-infos.de
Publisher Logo

Schreibe einen Kommentar