Chia Network unter Linux / Debian installieren (Anleitung und Tipps für Node + Farmer + Plot Setup)
Heute möchte ich Euch zeigen wie Ihr Chia (Chia Network/XCH) (externer Link zu github.com) unter Linux (Debian) installiert und lauffähig bekommt. Debian ist meine persönliche Lieblingsdistribution und Chia hat sich hier auch als sehr stabil erwiesen.
Kaffeespenden bitte an: 0xd0803A568615A18403C3722AC6dBb3202FD14034 (Ethereum)
Dir ist das alles zu kompliziert? Ich erstelle auch Plots im Auftrag für Dich! Hier klicken.
Zunächst muss Debian auf einen neuen Rechner oder innerhalb einer VM installiert werden (wichtiger Tipp für VM am Ende des Artikels). Ich empfehle hierzu die Verwendung des netinstall images (externer Link zu debian.org). Für die Installation ist keine GUI und kein PrintServer notwendig, wohl aber der SSH Server. Ich gehe in diesem Chia Tutorial davon aus, dass Ihr Debian nunmehr erfolgreich installiert habt.
Falls Ihr Euch direkt per root einloggen wollt, so müsst Ihr in der „/etc/ssh/sshd_config“ die Zeile
PermitRootLogin yes
hinzufügen (z. B. mit dem Texteditor vi (vi /etc/ssh/sshd_config | Neuen Text hinzufügen: EINFG | Speichern: ESC :wc ENTER). Natürlich solltet Ihr bevor Ihr den Texteditor startet Root-Rechte erlangen, das geht mit dem Befehl
su
Chia Installation
Falls Ihr nicht als root eingeloggt seid, müsst Ihr sudo vorne an die Befehle setzen (ggf. vorher apt-get install sudo).
Bitte führt nun die folgenden Kommandos aus:
apt-get update
apt-get upgrade
apt-get -y install screen
apt-get -y install lsb-release
apt-get -y install git
apt-get -y install iotop
Diese Kommandos führen zunächst ein Update durch und installieren die Tools screen, lsb-release, git und iotop.
Jetzt können wir chia (unter home) installieren:
cd /home/
git clone https://github.com/Chia-Network/chia-blockchain.git -b latest --recurse-submodules
cd chia-blockchain
chmod 775 install.sh
./install.sh
Solltet Ihr direkt als root eingeloggt sein müsst Ihr (z. B. mit einem Texteditor) aus der install.sh alle Vorkommnisse von „sudo “ (sudo und ein Leerzeichen) mit „“ (nichts) ersetzen. Ansonsten werdet Ihr eine Fehlermeldung erhalten.
Ich brauche an der Stelle natürlich nicht erwähnen, dass das Ausführen von jedem Programm mit root-Rechten ein Sicherheitsrisiko darstellen kann (=extra Benutzer erstellen).
Jetzt ist chia auch schon installiert! Machen wir uns an die Einrichtung, mit den folgenden Befehlen:
screen
. ./activate
chia init
Jetzt müsst Ihr entweder einen neuen Seed generieren oder einen bereits vorhandenen Seed hinzufügen.
Einen neuen Seed (Key) könnt Ihr mit diesem Befehl generieren:
chia keys generate
chia keys show
Falls Ihr bereits einen Seed (Key) besitzt, könnt Ihr diesen mit diesem Befehl hinzufügen:
chia keys add
Daraufhin werdet Ihr zur Eingabe des Seeds aufgefordert, ob alles stimmt lässt sich auch komfortabel mit der danach angezeigten ID abgleichen.
Danach initialisieren wir zur Sicherheit auch noch das Wallet:
chia init
chia wallet show
s
chia wallet show
Jetzt sollte Euch der Kontostand in XCH angezeigt werden.
Hinweis: Bei den neueren Chia-Versionen müsst Ihr zuerst die Blockchain aktualisieren/herunterladen (chia start farmer) und etwas warten.
Als nächstes starten wir den Node und die Farmer Software:
chia start farmer
Der Status des Chia Nodes kann später mit diesem Befehl abgefragt werden:
chia show -s
und der Status der Chia Farm mit diesem Befehl:
chia farm summary
Um ein neues Verzeichnis mit Plots zur „Farm“ hinzuzufügen, kann folgende Syntax verwendet werden
chia plots add -d /home/meineplots
Damit ist die Installation, Einrichtung und Inbetriebnahme von Chia bereits abgeschlossen. Zur Aktualisierung von Chia habe ich ein eigenes Tutorial angelegt (hier klicken).
Neue Chia Plots generieren
Im folgenden Teil widmen wir uns der Erstellung von neuen plots mit chia und sehen uns hierzu die Syntax dieses Befehls genauer an.
. ./activate
screen -mdS Chia1 chia plots create -k 32 -r 2 -n 1 -t /ssd/1 -d /hdd/1
Screen -mdS wird Chia in einem neuen Fenster starten – hiermit verhindern wir ein Beenden des Vorgangs bei Verbindungsabbruch.
Chia1 ist der Name des Fensters
plots create ist der Befehl zur Erstellung eines neuen Plots
-k 32 gibt an, dass wir einen Plot der Größe k32 erstellen wollen (ca. 250 GB temporäre Daten und 100 GB finaler Plot)
-r 2 gibt an, dass wir hierfür 2 Threads benutzen wollen
-n 1 gibt an, dass wir 1 Plot erstellen wollen
-t /ssd/1 gibt an, dass das temporäre Verzeichnis „/ssd/1“ ist
-d /hdd/1 gibt an, dass das finale Plot-Verzeichnis „/hdd/1“ ist
Tipp: Mit „Screen“ könnt Ihr problemlos mehrere Plot-Vorgänge (auf z. B. unterschiedlichen Festplatten) gleichzeitig ausführen. Ich empfehle hier einen Abstand von etwa 15 bis 30 Minuten je Thread (insbesondere wenn das selbe Plot-Ziel verwendet wird).
Chia Plots zu einem anderen PC übertragen (Netzwerk)
Im nachfolgenden Beispiel erfahrt Ihr zusätzlich, wie Ihr auf einem „Plot-Rechner“ neue Plots erstellt und diese zu einem „Farm-Rechner“ übertragt – und das in einer Endlosschleife.
Hierfür müssen rsync und sshpass installiert sein:
apt-get -y install rsync
apt-get -y install sshpass
Erstellt eine neue Datei „endlos.sh“
vi endlos.sh
EINFG-Taste
mit folgendem Inhalt
for (( ; ; ))
do
echo "endlosschleife [ CTRL+C zum beenden]"
echo "powered by lautenbacher.io"
chia plots create -k 32 -r 12 -n 1 -t /tempVerzeichnis -d /FinalesPlotVerzeichnis
sshpass -p "geheimesPasswort" rsync --remove-source-files --progress -e 'ssh -p23' --recursive /FinalesPlotVerzeichnis/ Benutzername@hostOderIP-AdresseDesFarmRechners:/home/ZielVerzeichnisFuerPlotsAufDemFarmRechner/
done
Der Inhalt muss selbstverständlich noch entsprechend angepasst werden, danach speichern wir mit
ESC-Tase
:wq
ENTER-Taste
und machen die Datei ausführbar
chmod 775 endlos.sh
und starten die Endlosschleife in einer neuer Screen-Sitzung, mit aktiviertem venv
screen
. ./activate
/endlos.sh
Zusätzlich muss noch der HostKey hinzugefügt werden oder die HostKey-Überprüfung für den Farm-Rechner deaktiviert werden, dass geht indem Ihr die Datei „/etc/ssh/ssh_config“ bearbeitet und einen Eintrag nach folgendem Beispiel hinzufügt:
Host deinfarmer.de/IP
StrictHostKeyChecking no
Ab jetzt plotten wir endlos viele Chia-Plots und übertragen diese danach automatisch zum Zielrechner. Wenn die SSH-Verbindung getrennt wird ist das kein Problem (Dank dem kleinen Tool screen).
Tipp: Die aktuelle Schreibgeschwindigkeit seht Ihr mit dem Befehl „iotop“. Alle Screen-Sitzungen können mit „screen -ls“ angezeigt und mit „screen -r ID“ wieder aufgerufen werden. Mit der Tastenkombination Strg+A und D könnt ihr das aktuell geöffnete Screen-Fenster verlassen ohne es zu beenden.
Kaffeespenden bitte an: 0xd0803A568615A18403C3722AC6dBb3202FD14034 (Ethereum)
Du hast 256 GB Arbeitsspeicher und möchtest eine Ramdisk für Chia erstellen? Kein Problem:
mount -t tmpfs -o size=241G ilovelautenbacherch /home/ramdisk/
Dieser Befehl erstellt eine 241 GB große Ramdisk unter /home/ramdisk/ – Das ist für das Plotten von k32 Plots ausreichend. Ich empfehle die Verwendung von ECC-Ram. Zum löschen einfach „umount“ verwenden.
Du hast haufenweise neue Festplatten angeschlossen und möchtest diese jetzt formatieren, partitionieren und mounten?
Tipp: Alle (bereits) verfügbaren Verzeichnisse (und eingebundene Festplatten) siehst du direkt mit dem Befehl „df“
Überprüfen wir zunächst ob die neue Festplatte vorhanden ist, mit
fdisk -l
Hier erkennen wir auch den sehr wichtigen Pfad der neuen Festplatte, z. B. /dev/sdb
Jetzt erstellen wir eine neue GPT-Tabelle und eine neue Partition für die Festplatte sdb:
fdisk /dev/sdb
g
n
1
ENTER
ENTER
w
Jetzt formatieren wir die neue Partition sdb1 auf der Festplatte sdb:
mke2fs -j /dev/sdb1
und zu guter letzt erstellen wir den „virtuellen Pfad“ und binden die Festplatte ins System ein:
mkdir /hdd/1
mount -v -o rw /dev/sdb1 /hdd/1
Erklärung: „/hdd/1“ steht hier für den späteren Pfad der Festplatte und „/dev/sdb1/“ ist sozusagen die „Original-Hardwareadresse“. „mkdir“ erstellt ein neues Verzeichnis, ggf. muss vorher zuerst das Verzeichnis „/hdd“ erstellt werden
Tipp: Die Festplatte kann mit „umount“ wieder entfernt werden.
Diese Schritte sind für jede neue Festplatte/SSD zu wiederholen. Ist die Festplatte bereits formatiert, kann das Erstellen der GPT-Tabelle und das Partitionieren entfallen. FAT32 ist kein geeignetes Dateisystem für Chia. MBR-Tabellen sind auf 2 TB Partitionen beschränkt, aus diesem Grund empfehle und verwende ich GPT-Tabellen.
Damit die neuen Partitionen auch nach einem Neustart eingebunden werden, muss die Datei „/etc/fstab/“ bearbeitet werden. Hier muss für jede Festplatte die Originaladresse und der virtuelle Pfad angegeben werden, jeweils in einer neuen Zeile. Anbei ein Beispiel für die Partition sdb1 die im Verzeichnis /hdd/1 eingebunden wird:
/dev/sdb1 /hdd/1 auto rw 0 0
VirtualBox-Port-Weiterleitung (SSH-Terminal für virtuellen Linux-Server)
Natürlich wollt Ihr auf Euren (virtuellen) Server per SSH (Putty) zugreifen, hierfür genügt die Einrichtung einer Port-Weiterleitung in VirtualBox (Ändern->Netzwerk->Port-Weiterleitung).
Im Einzelnen muss der Host-Port und der Gast-Port auf 22 eingestellt bzw. weitergeleitet werden.
Danach könnt Ihr Euch mit putty über die Adresse „localhost“ auf dem virtuellen Linux Server einloggen.
Häufig gestellte Fragen zu Chia
Wie viele Daten werden für einen Plot (k32) geschrieben?
Während der Erstellung eines Plots werden etwa 1,6 TB geschrieben und gelesen. Dies erfolgt in 128 sogenannten (temporären) buckets.
Warum sind SSDs/NVMEs schneller als HDDs?
Da es sich um 128 buckets handelt (siehe oben), erfolgen auch dementsprechend viele I/O-Zugriffe, was letztendlich erklärt warum SSDs/NVMEs schneller sind.
Wie lange dauert das Erstellen eines Plots mit einer SSD/HDD/NVME/Ramdisk?
Das Plotten mit einer herkömmlichen HDD dauert ca. 18 Stunden, mit einer SSD ca. 7 Stunden, mit einer NVME ca. 6 Stunden und mit einer Ramdisk ca. 5 Stunden. Ich persönlich konnte bereits einen Plot in 4,33 Stunden erstellen.
Wie lange überlebt meine SSD, HDD, NVME oder Ramdisk?
Die HDD überlebt theoretisch endlos viele Schreibvorgänge, eine SSD übersteht ca. 600 TBW bzw. 374 Plots, eine NVME übersteht ca. 150 TBW bzw. 93,5 Plots. Bei der HDD wird jedoch die Rampe und der Schreibkopf durch das viele hin- und herspringen ebenfalls stark beansprucht. Eine Ramdisk kennt all diese Probleme nicht, hier sind endlos viele Schreibvorgänge mit bestmöglichen I/O-Zugriff der CPU möglich.
Warum reicht eine Ramdisk in der Praxis nicht zum plotten?
Mit einer Ramdisk kann nur 1 Plot gleichzeitig erstellt werden, dass geht zwar schnell und materialschonend ist aber nicht zielführend. Es bietet sich eher an auf mehreren SSDs gleichzeitig Plots zu erstellen.
Kann ich einen PCIe-SATA-Controller mit 6 Ports benutzen?
Ja und Nein, diese Controller sind meistens nur mit einem PCIe x1 Stecker ausgestattet. Das ermöglicht zwar den Anschluss von HDDs für deine Chia-Farm, zum plotten selbst sind diese Controller aber nicht geeignet. Ich empfehle den Einsatz von Controllern mit PCIe x4 oder mehr.
Wie time ich meine Plots am besten wenn ich mehrere SSDs nutze?
Ich empfehle Dir deine Plots zeitversetzt zu starten (ca. 15 bis 30 Minuten unterschied). Insbesondere falls das Ziel des Plots die selbe HDD ist. Du wirst etwa 15 bis 30 Minuten benötigen um deinen Plot auf die HDD zu kopieren.
Wie viele Plots kann ich gleichzeitig auf einer SSD oder NVME erstellen?
Für jeden Plot sollten etwa 250 GB temp. Speicher zur Verfügung stehen. Daher kannst du auf einer 1 TB SSD auch 3 Plots gleichzeitig generieren. Bei NVMEs gilt das selbe, denn diese verfügen ohnehin über sehr gute Zugriffszeiten.
Ich persönlich würde dir aber trotzdem empfehlen, diese gleichzeitigen Plot-Vorgänge auf der selben SSD, mit einer zeitlichen Differenz von etwa 1 Stunde zu starten.
Sollte ich nicht noch mehr CPU-Kerne für das Erstellen der Plots verwenden?
Es eignen sich am besten 2 CPU-Kerne bzw. Threads, die Verwendung von mehr als 4 Kernen führt sogar zu einem Abfall der Geschwindigkeit.
Worauf kommt es bei der CPU an?
Eine hohe Single-Core-Leistung ist zu bevorzugen.
Wie viel Arbeitsspeicher benötigt ein Plot-Prozess / ist mehr RAM besser?
Ein Plot-Vorgang benötigt etwa 1,2 bis 4,5 GB Arbeitsspeicher. Das zuweisen von mehr als 4,5 GB Ram führt zu keinen signifikanten Verbesserungen.
Kann ich per USB3 plotten?
Mit einer Samsung 860 Evo und USB3 beträgt die Plot-Zeit erhebliche 13 Stunden – eine Verschwendung der SSD.
Kann ich per USB3 farmen?
Natürlich, das ist kein Problem.
Kannst du mir helfen?
Ja, ich kann Dir bei deinem Chia-Projekt zu günstigen Stundensätzen helfen – hier ist das Kontaktformular.
Hinweis: Dieser Text ist urheberrechtlich geschützt. Es gibt bisher kein anderes deutsches Chia-Tutorial, welches tatsächlich alle wichtigen Schritte abhandelt, insbesondere mit relevanten Hinweisen, die über das reine Installieren von Chia hinausgehen. Das Kopieren ist also untersagt – solltet Ihr kleine Teile hieraus zitieren ist das mindeste ein Backlink; solltet Ihr ein YouTube-Video erstellen, erwarte ich einen Backlink im oberen Teil des Beschreibungstextes und dass die Seite auch im Video zu sehen ist.
Solltet Ihr (günstige aber kostenpflichtige) Hilfe benötigen, stehe ich Euch gerne unter Kontakt zur Verfügung.
Kaffeespenden bitte an: 0xd0803A568615A18403C3722AC6dBb3202FD14034 (Ethereum)
11 Antworten zu “Chia Network unter Linux / Debian installieren (Anleitung und Tipps für Node + Farmer + Plot Setup)”
Danke fuer das Tutorial! Hey hast Du Empfehlungen fuer Einsteiger Hardware?
Ich würde zu AMD Prozessoren und günstigen SSDs greifen. Es zählt mehr die Anzahl der SSDs als die Geschwindigkeit für einen einzelnen Plot.
Danke. Ich hab mir einen AMD gekauft mit einer 12TB Hdd und guenstiger M2 SSD.
Arbeitest Du nur mit M2 oder auch mit Sata SSDs?
Gruesse
M2 NVMEs haben eine geringere Lebenserwartung (TBW) als SSDs. Daher würde ich eher SSDs verwenden.
Zur Frage „Sollte ich nicht noch mehr CPU-Kerne für das Erstellen der Plots verwenden?“
Mit Kernen meinst du echte CPU-Kerne oder die Threads?
Ich meine damit Threads. Was jedoch wichtig ist: Eine höhere Single-Core-Leistung ist immer zu bevorzugen. Es wird nur mehr als 1 Thread in Phase 1 genutzt. Phase 2, 3 und 4 nutzen nur einen Thread. Aus diesem Grund können positive Ergebnisse auch durch ein zeitversetztes Plotten (auf mehreren SSDs) erzielt werden, denn hierdurch wird die Last auf der CPU stabiler und gleichmäßiger verteilt.
Hallo,
wenn ich das Wallet starten will bekomm ich die Meldung wodurch ich nicht weiter komme:
Connection error. Check if wallet is running at 9256
Das Wallet oder der Farmer mit Full Node arbeitet noch nicht. Sie können den Farmer mit „chia start farmer“ starten, dann wird auch das Wallet funktionieren.
Danke für die schnelle Antwort aber leider nicht. Wenn ich den Farmer starten will bekomme ich die Nachricht „Failed to create the chia daemon“.
Dann haben Sie irgendetwas vergessen. Haben Sie einen neuen Key generiert oder einen alten Seed hinzugefügt? Das geht mit chia keys generate oder chia keys add, danach sollten Sie zur Sicherheit auch noch einmal chia init ausführen. Bitte vergessen Sie auch nicht vorher venv zu laden bzw. zu aktivieren „. ./activate“
Für andere die das selbe Problem haben:
Das ganze lag an einem Bug der aber mit der aktuellen Version (1.2.0) behoben ist