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.

Übrigens: Wenn du mit Kryptos Geld verdienen willst, schaue dir mal Cake DeFi an.

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/

Blockchain Programmierung 1

 

Ich habe das Blockchain Programmierung 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 Blockchain Programmierung 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/

Blockchain Programmierung 2

 

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

Blockchain Programmierung 3

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

}

}

Blockchain Programmierung 4

 

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

Blockchain Programmierung 5

 

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

Hey: Bist du soweit zufrieden mit dem Blockchain Programmierung Tutorial? Dann schaue dir doch die Akademie* an 🙂

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();)

 

 

Blockchain Programmieren lernen Hello World Tutorial

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. Wenn dich das Thema Blockchain generell interessiert, schaue dir doch die Akademie* von Dr. Julian Hosp an.

Ich jedenfalls finde das Thema Blockchain spannend und glaube, dass es massiven Impact in der Zukunft haben wird. Jetzt kannst du die Zeit nutzen, um dich einzuarbeiten in die Thematik. Eigne dir Skills an und bereite dich auf die Zukunft vor.

Du solltest deine Fähigkeiten im digitalen Bereich erheblich erweitern, um auf den vorderen Plätzen mitspielen zu können. Blockchain programmieren lernen kann hierbei ein wichtiger Schritt sein. Natürlich gibt es eine Menge anderer spannender Felder in der IT:

  • Machine Learning
  • Internet of Things
  • Künstliche Intelligence
  • Big Data
  • diverse andere Buzz Words, die ich einwerfen könnte
  • und natürlich auch die Blockchain Technologie

Die Digitalisierung ist auf dem Vormarsch. Viele Unternehmen sind dabei, ihre Prozesse zu digitalisieren. Und die, die es nicht tun, gehen ein großes Risiko ein. Denke doch nur an Quelle, die damals den Schritt vom Katalog ins Internet nicht so richtig geschafft hatten. Oder Nokia, die von neuen Technologien überrollt wurden.

Sei als Unternehmer deinen Wettbewerbern einen Schritt voraus. Und als Angestellter oder Selbstständiger, bilde dich stets weiter und eigne dir neue Skills an. Als IT-ler oder gerade als Entwickler, könnte Blockchain Programmierung ein wichtiger Skill sein.

Wie siehst du das Thema Blockchain an? Das du dieses Blockchain Programmierung Tutorial durchgearbeitet hast, ist bereits ein Schritt in die richtige Richtung.

 

Blockchain Programmierung

Die Blockchain Programmierung könnte eine bedeutsame und gefragte Fähigkeit in der Zukunft werden. Dieses Blockchain programmieren lernen Tutorial sollte dir helfen, dich mit der Thematik vertraut zu machen. Wenn du dich weiter damit beschäftigst, könnte es dir zukünftig viel Erfolg verschaffen.

Natürlich müssen deine Erfahrungen über ein Blockchain Hello World Programm hinaus gehen. Deshalb, suche dir Communities im Internet oder in deiner Stadt, um gemeinsam mit anderen tollen Leuten an einem Blockchain Projekt zu arbeiten. Sammle noch mehr Erfahrungen, in dem du so ein Projekt begleitest.

Pflege deinen Github Account, damit du hervorragende Referenzen für potenzielle Arbeitgeber oder Kunden vorweisen kannst. Bilde dich weiter mit guten Blockchain Büchern, besuche ein Blockchain Seminar oder andere Kurse. Ein Blockchain Kurs könnte diese Akademie* (Jetzt klicken)  sein.

Bleibe informiert, indem du dich im Internet zu neuesten Entwicklungen im Blockchain Bereich informierst. Eine Quelle für dich ist auch dieser Blog. Trage dich am besten gleich in den Newsletter ein, damit du keinen Artikel mehr verpasst.

Was ist deine Lieblings-Quelle, wo du dich über die Blockchain informierst? Schreibe es in die Kommentare und gebe den anderen Besuchern somit hilfreiche Hinweise.

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.

2 comments

ich bin bis zu Schritt3 gekommen, danach hat des mit dem Initialisieren nicht funktioniert. geth –datadir=./chaindata/ init genesis.json wenn ich des eingebe, dann kommt das es die Datei nicht gefunden hat. Könntest du mir helfen, was ich falsch gemacht haben könnte?
Danke im Voraus

Portig Roland

In der PowerShell erhalte ich vor de, Dateipfad immer ein PS.
Wenn ich dann die json Datei initialisieren will, erhalte ich invalid command datadir=
Komme nicht weiter