Voraussetzungen

Dieses Tutorial setzt Ubuntu als Betriebssystem zugrunde, welches wir gleichzeitig auch zur Benutzung empfehlen, da hier am wenigsten Systemressourcen benötigt werden und das Plotten ggf. schneller als auf Windows ist. Auch wird hier nicht die Installation der Chia Blockchain erklärt. Diese ist für alle Betriebssysteme auf GitHub dokumentiert.

Nutzung der CLI

Alle Befehle werden im Terminal eingegeben, bzw. können auch über SSH an eine entfernte Maschine gegeben werden.

cd chia-blockchain Um zu starten, navigieren wir in den Installationsort von Chia Blockchain.

source activate Zunächst müssen wir die Umgebung der Chia Blockchain aktiveren.

chia -h Nun können wir verschiedene Befehle ausführen. Einen Überblick über alle erhält man mit:

Dieser Befehl ist auch generell nützlich, um sich weitere Optionen anzeigen zu lassen. Bspw.
chia plots -h, chia farm -h

Auch auf GitHub gibt es eine Übersicht und detaillierte Beschreibung fast aller Befehle (https://github.com/Chia-Network/chia-blockchain/wiki/CLI-Commands-Reference).

Übersicht

chia start {Instanz} Startet eine gewählte Instanz: all, farmer, node, harvester… Bsp: chia start farmer (startet farmer, harvester, full node, wallet)

chia show -s Status eurer Node, auch kombinierbar mit -s -h um Verbindungen zu anderen Nodes zu zeigen.

chia farm summary Auskunft über eure Plots, die Anzahl von gefarmten Chia und den gesamten Netspace.

chia wallet show Kontostand aller Wallets, die hinterlegt sind

Plots

chia plots show Zeigt alle Verzeichnisse, welche Chia für das Farmen nutzt.

chia plots add -d {Verzeichnis} Fügt das Verzeichnis hinzu, und farmt Plots, welche sich in diesem Verzeichnis befinden

chia plots check Überprüft fertige Plots in allen Verzeichnissen und zeigt an, wie viele Proofs pro Plot gefunden wurden.

chia plots check -d {Verzeichnis} Überprüft nur Plots im angegebenen Verzeichnis.


Plotten mit dem CLI

chia plots create startet das Erstellen einen neuen Plots. Der Befehl sollte jedoch angepasst werden, um die richtige temporären Laufwerke und das Ziellaufwerk, sowie Prozessor Threads und RAM Größe anzugeben.

Beispiel: chia plots create -k 32 -b 4000 -r 4 -u 128 -t /pfad/zum/temporären/laufwerk -d /pfad/zum/ziellaufwerk

Chia erstellt nun einen K32 Plot mit 4000 MiB RAM, 4 Threads und 128 Buckets auf dem temporären Laufwerk und verschiebt ihn danach auf das Ziellaufwerk.

Plotten mit Plotman

Wir möchten euch noch ein Tool vorstellen, welches paralleles Plotten abhängig von dem Fortschritt der einzelnen Plots macht, und so die Auslastung von CPU, RAM und Festplatten optimiert.

Installation

1. Chia Umgebung aktivieren.
2. cd – Um auf die Root Ebene zurückzukehren.
3. pip install –force-reinstall git+https://github.com/ericaltendorf/plotman@main
4. plotman config generate

Einstellungen

In der eben erstellen config Datei müssen einmalig die Ziellaufwerke und Temporären Laufwerke angegeben werden.
plotman config path Findet den Speicherort der config Datei. Diese bspw. mit Nano öffnen (sudo nano /pfad/zur/plotman/config/plotman.yaml).

Speicherorte

Ab Zeile 27: Pfade zu den temporären Laufwerken (Temp SSD).
Ab Zeile 54: Pfade zu den finalen Laufwerken (Dst HDD).

Zeile 86: Scheduling

tmpdir_stagger_phase_major Legt die Hauptphase fest, vor welcher nur eine bestimmte Anzahl von Plots starten soll.

tmpdir_stagger_phase_minor Legt die Unterphase fest, vor welcher nur eine bestimmte Anzahl von Plots starten soll.

tmpdir_stagger_phase_limit Legt die Anzahl fest, wie viele Plots sich vor den festgelegten Haupt- und Unterphase befinden dürfen.
Bsp: tmpdir_stagger_phase_major: 2, tmpdir_stagger_phase_minor: 3, tmpdir_stagger_phase_limit: 4 -> Es darf nur ein neuer Plot gestartet werden, wenn sich weniger als 4 Plots vor Phase 2:3 befinden.

tmpdir_max_jobs Gibt an, wie viele Plots jeweils maximal gleichzeitig auf temporären Laufwerken erstellt werden dürfen.

global_max_jobs Legt die Anzahl von Plots fest, welche auf allen temporären Laufwerken insgesamt gleichzeitig erstellt werden dürfen.

global_stagger_m Ist die Zahl an Minuten, die immer gewartet wird, bevor der nächste Plot gestartet wird.

Zeile 117: Plotting

k Größe der Plots (Sollte 32 bleiben)
e Bitfield Plotting (Sollte False sein)
n_threads Anzahl von CPU Threads pro Plot
n_buckets Anzahl von Buckets pro Plot
job_buffer Größe des Arbeitsspeichers in MiB pro Plot

Optional: Archive

Plotman verfügt über ein rsync Modul, auf dieses wir hier nicht weiter eingehen werden. Ab Zeile 67 können dazu Einstellungen getätigt werden.
Empfehlung: Zeile 67 – 73 mit # auskommentieren.

Nutzung

plotman interactive Der Befehl startet Plotman. Dieses Fenter muss offen bleiben, damit Plotman weiter läuft.

plotman status Zeigt alle laufenden Plots in der Command Line, ohne Interactive zu öffnen.

plotman kill {ID} stoppt einen beliebigen Plot-Prozess, dieser wird über die Plot ID identifiziert, oder mit dem Flag all können alle Prozesse gestoppt werden.

plotman suspend {ID} pausiert Plot-Prozesse. Entweder über ID oder all.

plowman resume {ID} setzt pausierte Plot-Prozesse fort.