Folgend eine Anleitung zum Polkadot-Netzwerk, das Hauptprojekt der Web3-Foundation. Die Web3-Foundation wurde von Dr. Gavin Wood, Mitgründer von Ethereum und Gründer von Parity Technologies, gegründet, um sich auf die Entwicklung, Einführung und Wartung von „Web3“ zu konzentrieren. Der Begriff „Web3“ wurde durch Wood geprägt und er erklärte ihn im April 2014 in einem Blog-Post. Bald darauf schrieb Gavin das Polkadot-Whitepaper und begann mit der Entwicklung von Polkadot. Nun startet Polkadot in PoC-2 wie in ihrem Medium-Beitrag im Original zu lesen.

Aufregende Zeiten

Das POC-Testnet (Proof of Concept) von Polkadot läuft jetzt schon eine Weile, aber auf interessierte Neueinsteiger, die in die technischen Details springen wollen, mag es entmutigend wirken. Davon sollte man sich jedoch nicht abhalten lassen.

Die Polkadot-Knotensoftware wurde mit Rust entwickelt, einer sehr modernen, schnellen und robusten Programmiersprache.

In der Vergangenheit zeigte ParityTech die erfreuliche Tendenz, seine Software bereits in einem sehr frühen Entwicklungsstadium zu veröffentlichen. Mit Polkadot wurde der Code erneut allen zur Verfügung gestellt, so dass sowohl Mitwirkende als auch Tester von Anfang an an der Entwicklung des Netzwerks teilnehmen können.

Wie man schon im ersten Commit sehen kann, begann Polkadot mit einem einfachen „Hello, World“ und ReadMe von Robert Habermeier.

Ob Entwickler oder Benutzer, das erste, was jeder der sich für Polkadot interessiert, tun sollte, ist, das Netzwerk zum Laufen zu bringen. Schauen wir uns an, wie wir genau das machen können.

Polkadot ohne Docker

In den Anfangstagen eines solchen Projekts sind Binär-Installer für Linux, OS X oder Windows normalerweise nicht verfügbar (die Polkadot-Versionen findet man hier), so dass die einzige Möglichkeit sie zu verwenden darin besteht, die Software selbst zu kompilieren.

Obwohl der Prozess gut dokumentiert ist, ist das kompilieren eines Projekts wie Polkadot nicht trivial, es sei denn, man ist Rust-Entwickler oder hat vor einer zu werden.

Wenn die obigen Anweisungen für dich Sinn machen, wirst du noch etwas Geduld (und dein Lüfter etliche Umdrehungen) brauchen, bevor du deinen Knoten laufen siehst und er auf der Polkadot-Telemetrie-Seite auftaucht.

Das Kompilieren von Software wie Polkadot kann je nach verfügbarem Computer zwischen 30 Minuten und einigen Stunden dauern. Es muss einen schnelleren Weg geben!

“A focused man working on a sticker-covered laptop in a coffee shop” by Tim Gouw on Unsplash

Docker zur Rettung

Docker kann als eine sehr schlanke Virtualisierungslösung angesehen werden. Es ist ziemlich einfach zu installieren, alle Anleitungen findet man hier.

Docker wird uns helfen, zwei Probleme zu lösen:

  • Polkadot einfach bauen oder diesen Schritt sogar zu überspringen
  • Polkadot in weniger als 30 Sekunden zum laufen zu bringen*
  • Abhängig von der Internetverbindung.

Ein vorkonfiguriertes Docker-Image verwenden

Du bist also faul? Ich auch!

Sobald du Docker installiert hast, brauchst du nur noch eine Shell (Kommandozeile), um ein paar Befehle einzugeben. Wie wäre es mit ein paar Einzeilern, um es einfach laufen zu lassen und mit der Synchronisation zu beginnen?
Theoretisch sollte man zuerst das Image ziehen, das man verwenden möchte, aber ich erwähnte, wie faul ich bin, also überspringen wir das. Docker wird sich darum kümmern!

Wir beginnen einfach indem wir prüfen, welche Version von Polkadot wir haben. Du kannst den folgenden Befehl kopieren/einfügen, stelle nur sicher, dass du das „$“ ausschließt. Es sagt uns nur, dass dies ein Befehl ist, um in die Shell zu tippen.

$ docker run --rm -it chevdor/polkadot:0.2.0 ./version

Bevor wir uns das Ergebnis ansehen, lass uns einen Blick darauf werfen, was wir gerade ausgeführt haben. Du würdest nicht blind unbekannte Befehle von einem zufälligen Artikel im Internet ausführen, richtig?

  • docker run

    ruft Docker auf und bittet ihn, einen Container zu starten.

  • --rm

    bedeutet, dass alles, was mit dem Container zu tun hat, gelöscht und bereinigt wird, sobald wir den Container getötet haben. Das ist für den Moment gut.

  • -it

    wird uns zeigen, was in diesem Container vor sich geht.

  • chevdor/polkadot:0.2.0

    ist der Name und die Version des vorgefertigten Bildes, das wir verwenden wollen. Wenn du dich abenteuerlustig fühlst, kannst du sogar chevdor/polkadot:latest ausprobieren.

  • ./version

    Du musst mir dabei vertrauen (wenn nicht, kannst du immernoch den Code lesen!). Damit siehst du die Polkadot-Version und einen Hash. Die Polkadot-Entwickler werden dir dankbar sein, wenn du ein Problem meldest und dies mitlieferst.

Alle verfügbaren Versionen kannst du hier finden.

Du solltest etwas ähnliches wie die untenstehende Ausgabe sehen. Lasse dich nicht von Docker mit seinem Unable to find image abweisen, das ist normal: es bedeutet, dass Docker das Image nicht lokal auf deinem Rechner gefunden hat und es zuerst heruntergeladen werden muss.

$ docker run --rm -it chevdor/polkadot:0.2.0 ./version
Unable to find image 'chevdor/polkadot:0.2.0' locally
0.2.0: Pulling from chevdor/polkadot
Digest: sha256:59bacb0e77e32690fd0c31fc38cee4fdfca35618064b20e0b69d0d1563ef1adb
Status: Downloaded newer image for chevdor/polkadot:0.2.0
-----------------------------------------
Polkadot Docker Container: polkadot 0.2.0
32696111e00b6d5c442d5118da8cbef7e03ec299
-----------------------------------------

Wie wäre es jetzt mit einem echten Knoten? Beachte die kleine Änderung, wir ersetzen ./version durch polkadot :

$ docker run — rm -it chevdor/polkadot:0.2.0 polkadot
2018–07–23 17:09:02 Parity ·:· Polkadot
2018–07–23 17:09:02 version 0.2.0
2018–07–23 17:09:02 by Parity Technologies, 2017, 2018
2018–07–23 17:09:02 Chain specification: Krumme Lanke
2018–07–23 17:09:02 Node name: glamorous-whistle-6100
2018–07–23 17:09:02 Starting (heavy)
2018–07–23 17:09:02 Generated a new keypair: cc41c8ec255b630075d17b7ee21057b856149de109fdcd00890f8efc336d2a6b (5GgXAgp2…)
2018–07–23 17:09:03 Initialising Genesis block/state (state: 609a…3f5a, header-hash: 6c5a…71cc)
2018–07–23 17:09:03 Best block: #0
2018–07–23 17:09:03 Reconnected to telemetry server: wss://telemetry.polkadot.io/submit/
2018–07–23 17:09:03 Local node address is: /ip4/0.0.0.0/tcp/30333/p2p/Qmbr2BxgdUTzB6CWfdrbdnofmQAjcXY3dksNos8rcciu5N
2018–07–23 17:09:03 Idle (0 peers), best: #0 (6c5a…71cc)

Jetzt kann der Spaß beginnen, denn der Polkadot, den du am Ende des Befehls siehst, ist der echte Polkadot. Lass uns nach Hilfe fragen:

$ docker run --rm -it chevdor/polkadot:0.2.0 polkadot --help
polkadot 0.2.0
Parity Team <admin@parity.io>
Polkadot Node Rust Implementation
USAGE:
polkadot [FLAGS] [OPTIONS] [SUBCOMMAND]
FLAGS:
--dev             Run in development mode; implies --chain=dev --validator --key Alice
-h, --help        Prints help information
--light           Run in light client mode
<...>

Optional, wenn du Linux oder OS-X verwendest, kannst du einen Alias verwenden und musst nicht mehr darüber nachdenken, Docker zu verwenden. Im folgenden Beispiel habe ich den Alias polkadocker genannt, aber du kannst ihn beliebig benennen.

$ alias polkadocker=’docker run --rm -it chevdor/polkadot:0.2.0 polkadot’
$ polkadocker --help
polkadot 0.2.0
Parity Team <admin@parity.io>
Polkadot Node Rust Implementation
USAGE:
polkadot [FLAGS] [OPTIONS] [SUBCOMMAND]
<...>

Schonmal ganz cool, aber wir müssen ein bisschen mehr verbessern, um einen Knoten richtig laufen zu lassen können:

  • Ports öffnen
  • Datenvolumen laden

Das Öffnen der Polkadot-Ports ist wichtig, wenn du mit deinem Knoten kommunizieren möchtest. Siehe die -p-Flags unten.

Vor allem das Mounten des Volumens ist sehr wichtig. Dies geschieht durch das -v, das du unten siehst. Tust du das nicht, sind alle Daten einschließlich der Blöcke, die du in den letzten Stunden/Tagen synchronisiert hast, verschwunden, sobald du den Container stoppst oder wenn er aus irgendeinem Grund abstürzt. („Ohne den Befehl hat dein Container keine Festplatte“)

$ docker run --rm -it -p 30333:30333 -p 9933:9933 -v ~/polkadot-data/:/data chevdor/polkadot:latest polkadot

Nun speichert unser Knoten alle wichtigen Daten in ~/polkadot-Daten. Du kannst nun den Container anhalten oder neu starten und er wird dort fortgesetzt, wo er vorher war.

  • OS-X: ~/Library/Application Support/Polkadot/
  • Linux: ~/.local/share/Polkadot/

Coolen Namen wählen

Wenn du deinem Knoten keinen Namen gibst, wird Polkadot einen für dich aussuchen (manchmal mit einer lustigen Note, gib ihm eine Chance). Du kannst deinen Knoten jedoch mit –name „<name hier>“ benennen.

$ docker run --rm -it -p 30333:30333 -p 9933:9933 -v ~/polkadot-data/:/data chevdor/polkadot:latest polkadot --name "jumpy-monkey-4448"

Fast geschafft! An diesem Punkt ist soweit alles gut, aber das Schließen der Shell/Kommandozeile, in der Docker läuft, stoppt den Container.

Als Daemon ausführen

Anstatt uns mit scrollenden Logs zu unterhalten, kann Docker auch im Hintergrund laufen und das ist super einfach mit -d zu bewerkstelligen:

$ docker run -d -p 30333:30333 -p 9933:9933 -v ~/polkadot-data/:/data chevdor/polkadot:latest polkadot

Du kannst nun telemetry.polkadot.io checken und dein Knoten sollte dort erscheinen.

https://telemetry.polkadot.io/

Gratulation

Wenn du bis jetzt mitgemacht hast, solltest du etwas Ähnliches wie das Konsolen-Capture unten sehen und dein Knoten sollte sich bereits synchronisieren.

Damit bist du nun Teil eines einzigartigen Experiments!

Zum Abschluss noch nützliche Links:

[Bild: Samir Kumar Bitt/ Behance]

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here