Chia Farming mit dem Raspberry Pi 4 und Ubuntu

Dieses Tutorial zeigt dir, wie du energiesparsames Chia Farming mit dem Raspberry Pi 4, Ubuntu und externen USB Festplatten betreiben kannst. Die Konfiguration ist zudem sehr leise aufgrund des verwendeten passiven Raspberry Pi Gehäuses. Wie du Plots für diesen Farming PC erstellst erfährst du hier.

Hardware

In dem Build verwende ich folgende Hardware:

  • Raspberry Pi 4: Raspberry Pi 4 Modell B; 4 GB, ARM-Cortex-A72 4 x, 1,50 GHz, 4 GB RAM, WLAN-ac, Bluetooth 5, LAN, 4 x USB, 2 x Micro-HDMI
  • Passives Alu Gehäuse: Lüfterloses Vollaluminium Gehäuse für den Raspbery Pi. Mein aktuelles Lieblingsgehäuse mit guten Preis-Leistungsverhältnis
  • WD My Book 8 TB USB 3.0: Externe USB 3.0 8TB Festplatte
  • Netzteil: Raspberry Pi 4 USB-C Netzteil, 5.1V, 3A
  • SanDisk 64GB Micro SD Card: Micro SD Card mit 64 GB. Aus eigener Erfahrung würde ich keine kleinere Karte nehmen, da du aufgrund der schnell wachsenden Blockchain sonst schnell an die Grenzen des Speicherplatzes stößt.
  • Micro HDMI Adapter

Ubuntu Desktop Installation

  1. Als Betriebssystem für den Raspberry Pi verwenden wir Ubuntu Desktop 21.04 mit Gnome Desktop. Dieses kannst du einfach mit Raspberry Pi Imager herunterladen und auf die SD Card schreiben.
  2. Stecke die SD Card in den Raspberry Pi und schließe Tastatur, Maus, Bildschirm und Netzwerkkabel. Der Raspberry Pi startet sobald das Stromkabel eingesteckt wird. Zur Ubuntu Installation must du nur den Setup Anweisungen folgen.
  3. Abschließend bietet es sich an die System Software zu Aktualisieren. Öffne dazu ein Terminal (Strg+Alt+T) und gebe folgende Befehle ein:
    sudo apt update

    sudo apt upgrade -y

Chia Installation

Chia.net stellt für Ubuntu ein .deb Package zur Verfügung. Die Installation kann daher einfach grafisch erfolgen. Dazu lädst du mit dem bereits installierten Firefox das Installer Package „Ubuntu/Debian ARM“ von der Chia Download Seite herunter. Wichtig ist hier das ARM Package zu nehmen, da der Raspberry PI eine ARM CPU besitzt.
Die heruntergeladene Datei findest du dann im Download Verzeichnis das du über den „Files“ Browser links in der Menüleiste erreichst. Ein Rechtsklick auf das Installer Package erlaubt dir im Kontext Menü die Installation von Chia über den Menüpunkt „Open with Software Install“. Siehe Screenshot:

In dem Menü links unten solltest du nun den installierten Chia Client finden und starten können. Da sich der Raspberry Pi nur zum Farmen eignet und nicht zum erstellen von neuen Plots gehe ich davon aus, das du bereits eine Chia Wallets besitzt. Diese kannst du einfach über den Menüpunkt „Import from Mnemonics (24 words)“ importieren.

Da der Raspbery Pi sich nur zum Farmen eignet, gehe ich davon aus das du eine Ploting Maschine hast, die bereits mit der Chia Blockchain synchronisiert ist. Da dieser Vorgang sehr lange dauert, empfehle ich dir die Blockchain von diesem Computer auf den Raspberry Pi zu kopieren. Dies spart dir einige an Zeit. Schaue dazu bei den Tipps & Tricks rein. Alternativ kannst du den Raspberry Pi auch einfach laufen lassen bis Chia fertig synchronisiert ist.

Festplatten mounten

Erstelle ein Verzeichnis in das die Festplatte mit den Chia Plots gemountet werden soll. z.B. auf der Konsole (Strg+Alt+T) mit folgenden Befehl:
sudo mkdir /mnt/MOUNTNAME

Im Ubuntu Software Menü findest du die Anwendung „Disks“. Mit dieser kannst du die USB Festplatte in das neue Verzeichnis mounten. Dazu klickst du die Festplatte an, gehst dann auf das Zahnradsymbol und wählst „Edit Mount Options…“

Hier wählst du dann „Mount at system startup“ und „Show in user interface“. Bei „Mount Point“ gibst du nun das zuvor angelegte Verzeichnis an. Nach einem Neustart des Raspbery Pi solltn nun die Plots auf der USB Festplatte in dem Verzeichnis verfügbar sein. Dies kannst du z.B. auf der Konsole prüfen oder mit dem Ubuntu File Browser.
Console:
cd /mnt/MOUNTNAME

ls -la

Im Chia Client kannst du die Plots nun im Menü „Plots“ –> „Add Plot Directory“ hinzufügen.

Statische IP Adresse einstellen

Der Farming Raspi sollte im Netzwerk immer unter der IP Adresse erreichbar sein. Dies erleichtert die Administration. Einstellen kannst du dies im Ubuntu Settings Menü „Settings -> Network -> IPv4“. Siehe Screenshot. Die IP Adresse muss natürlich zu deinem Netzwerk passen.
ama

Screen Sharing – Bildschirmfreigabe mit VNC

In Ubuntu ist die Bildschirmfreigabe mit dem VNC Protokoll integriert. Diese kannst du hier aktivieren „Settings -> Sharing -> Screen Sharing“ aktivieren. Siehe Screenshot:

Als Client kann z.B. der VNC Connect von Real VNC verwendet werden. Leider ist das Screensharing recht buggy. Folgende Probleme mit dem Screen sharing habe ich festgestellt und bislang noch keine Zeit für Lösungen gefunden:

  • Nach einem Neustart des Raspberry geht das hinterlegte Passwort verloren und muss neu eingegeben werden
  • Es muss scheinbar ein Bildschirm und Tastatur angeschlossen sein damit es funktioniert
  • Wird der VNC Connect Client verwendet muss in den Optionen „Bildqualität -> hoch“ gewählt werden. Andernfalls sieht man kein Bild.

Bleibt mir noch zu sagen: Happy Farming!

Chia – Tipps und Tricks

Chia Consolen Anwendung

Viele Aufgaben lassen sich auch ohne GUI auf der Konsole erledigen. Die dazu nötige Executable findest du hier:

Windows:
C:\Users\USERNAME\AppData\Local\chia-blockchain\app-1.2.2
Ein guten Einstieg bietet die Chia Hilfe:
chia.exe -h

Linux:
/usr/lib/chia-blockchain/resources/app.asar.unpacked/daemon
Ein guten Einstieg bietet die Chia Hilfe:
./chia -h

Chia Keys anzeigen

Mit folgendem Befehl kannst du dir deine Chia Adressen anzeigen lassen. Wie du zur Chia.exe kommst siehst du im oberen Punkt.
chia keys show

Ergebnis:

Fingerprint: 12345678
Master public key (m): 12345678
Farmer public key (m/12381/8444/0/0): 12345678
Pool public key (m/12381/8444/1/0): 12345678
First wallet address: 12345678

Blockchain und Wallet auf anderen Computer übertragen

Das Herunterladen der Chia Blockchain dauert mitunter viele Stunden oder gar Tage. Wird nun eine zweite Maschine benötigt, z.B. zum Farmen, ist es Sinnvoll diese Zeit einzusparen. Zum Glück lässt sich die Blockchain und die Wallet von einem Computer auf den anderen übertragen. Dies geht auch zwischen Windows und Linux Systemen. Getestet mit Windows 10 und Ubuntu 20.04.
Dazu must du nur die beiden Verzeichnisse „db“ und „wallet“ kopieren. Du findest sie in folgendem Verzeichnis:

Windows (im User Verzeichnis):
C:\Users\USERNAME\.chia\mainnet

Linux (im User Verzeichnis. Falls die Ubuntu GUI verwendet wird. Strg + H drücken um dir die versteckten Verzeichnisse anzuzeigen):

~/.chia/mainnet

Logfiles anschauen

Chia erstellt standardmäßig Logfiles. Diese sind hilfreich um zu Prüfen ob alles Rund läuft, oder um im Fehlerfall eine schnellere Fehlerbehebung zu ermöglichen. Das Standard Log Level ist WARNING. Dieses kann nach INFO geändert werden um mehr Informationen zu erhalten. Die Konfiguration findet sich hier:

C:\Users\USERNAME\.chia\mainnet\config\config.yaml

Suche hier die Zeile
log_level = WARNING
und ändere sie auf INFO. Anschließend muss der Chia Client neu gestartet werden. Beim editieren der Datei must du Aufpassen die Formatierung nicht zu ändern. Bei dem verwendeten YAML Format ist die Einrückung der Zeilen für die Funktion wichtig!

Sobald Chia neu gestartet ist, solltest du hier das Log File sehen. Chia verwendet Logfile Rotation. d.h. es werden nach einiger Zeit mehrere Logfiles erstellt und das älteste gelöscht.
C:\Users\USERNAME\.chia\mainnet\log\debug.log

Verbindungsprobleme beheben

In der Regel sollte der Chia Client ohne manuelle Einstellungen am Router funktionieren. Sollte es doch einmal Probleme mit der Verbidnung geben, kannst du eine Portweiterleitung von Port 8444 am Router anlegen, die auf deinen Chia Rechner verweist.
Weitere Fehlerquellen die du checken kannst sind die Windows Firewall oder dein Virenscanner.

Im Chia Client kannst du unter „Full Node -> Connections -> Connect to other Peers“ versuchen weitere Peer Adressen hinzuzufügen:

node.chia.net:8444
node-eu.chia.net:8444
node-apne.chia:8444

Energieoption für Festplatte anpassen

Die Chia Blockchain fragt regelmäßig die Challenges für den nächsten Block ab. Dazu werden die Plots auf der Festplatte gescannt und ggf. ein Hashwert geliefert der zu der Challenge passt. Diesem Vorgang steht nur eine gewisse Zeit zur Verfügung. Antwortet das System nicht schnell genug verfällt die Chance die Challenge zu gewinnen. Daher sollten die Festplatten auf denen die Plots liegen immer Laufen um die Zugriffszeit so gering wie möglich zu halten. Unter Windows kann man dies in den Energie Optionen einstellen.

Systemsteuerung 🠖 Hardware und Sound 🠖 Energieoptionen 🠖 Energiesparplan bearbeiten

Chia – Plots Erstellen mit Windows PowerShell

Das Erstellen von Chia Plots kann nicht nur über die Chia GUI erfolgen sondern auch auf der Konsole. Dies hat den Vorteil, das kein Full Node betrieben werden muss und der Overhead der GUI entfällt. Außerdem hast du durch die Konsolenausgabe immer einen guten Überblick darüber, in welcher Phase der Plot Erstellung sich der Prozess gerade befindet. Dieser Artikel zeigt dir wie du ein kleines PowerShell Skript anlegst um Plots zu erzeugen.

Als Basis sollte das Skript im Download dienen, oder du legst es mit einem Texteditor deiner Wahl an, fügst den unten stehenden Startbfehl ein und benennst die Dateiendung in „.ps1″um.

invoke-expression ‘cmd /c start powershell -NoExit -Command {cd „C:\Users\USERNAME\AppData\Local\chia-blockchain\app-1.2.2\resources\app.asar.unpacked\daemon\“;$host.ui.RawUI.WindowTitle = „TITLE„; start-sleep 0 ; .\chia.exe plots create -k 32 -b 4000 -n 999 -r 4 -t C:\PATHTOTEMP -d C:\PATHTOFINALDIR -c POOLNFTADDRESS;Read-Host -Prompt „press enter to exit“}‘

Alle Fett markierten Stellen müssen angepasst werden. Insbesondere der Pfad zur Chia.exe und zu den Temp und finalen Plot Verzeichnis. Hierzu must du deinen Windows Benutzernamen (z.B. über den „Taskmanager -> Benutzer“ zu ermitteln) und deine verwendete Chia Version eintragen.

BENUTZER: Dein Windows Benutzername
app-1.2.2: Deine aktuelle Chia Client Version
host.ui.RawUI.WindowTitle: Hier kannst du einen Titel für das Konsolenfenster vergeben. Dies ist besonders hilfreich wenn mehrere Skripte erstellt werden und diese parallel gestartet werden. Dies ist z.B. nötig wenn verschiedene Temp Verzeichnisse genutzt werden.

Ebenso muss der Pfad zu deinem temporären Verzeichnis und zu dem Verzeichnis wo die finalen Plots hin kopiert werden sollen eingetragen werden.

Bei dem -c Parameter trägst du deine Pool NFT Adresse ein. Wie du einem Pool bei tritts wird in diesem Tutorial erklärt. Ebenso wie du deine Pool NFT Adresse ausliest.

Parameter:

  • -k : Plot Format. k32 im Beispiel
  • -b : Maximaler RAM Verbrauch. 4000MB im Beispiel
  • -n : Anzahl zu erstellender Plots. 999 im Beispiel
  • -r : Anzahl der CPU Threads. 4 Gleichzeitig im Beispiel. Nur die erste Phase der Ploterstellung nutzt mehrere Threads. Daher ist es bei der parallelen Erstellung von Plots sinnvoll die Vorgänge etwas zeitlich zu versetzen um die CPU dauerhaft maximal auszulasten
  • -t : Pfad zum Temp Verzeichnis
  • -d : Pfad zum Zielverzeichnis für fertige Plots
  • -c : P2 singleton address (pool contract address for plotting)

Die Parameter kannst du an deine Hardware anpassen. Sie sind aber eine ganz gute Orientierung zum Starten. Eine Übersicht über alle Parameter findet ihr hier. Zum Starten des Plot Vorgangs machst du einfach einen Rechtsklick auf die Skript Datei und wählst „Mit PowerShell ausführen“. Auch das Parallele Erstellen mehrerer Plots gleichzeitig ist möglich, indem du das Skript mehrfach startest. Achte hier auf deinen RAM Verbrauch und die zur Verfügung stehenden CPU Threads.

Chia Pool Farming

Mit der Version 1.2 des Chia Clients ist es nun möglich poolfähige Plots zu erstellen. Hier die Kursfassung wie du einem Chia Pool am Beispiel von XCH Pool beitritts und Plots erstellst:

  1. Download der neusten poolfähigen Chia Client Version (1.2 aufwärts)
  2. Um einen Contract für den Pool zu erstellen brauchst du ein wenig Chia Guthaben. Du kannst dir auf https://faucet.chia.net/ oder auf https://xchfaucet.togatech.org ein paar Mojo auf deine Wallet übertragen lassen.
  3. Damit das Guthaben in deiner Wallet angezeigt und verwendet werden kann muss diese synchronisiert sein.
  4. Danach muss ein Pool NFT erstellt werden. Dies geht mit dem Befehl:
    chia plotnft create -u https://pool.xchpool.org -s pool
    Der Befehl muss auf der Commandozeile (CMD) im „daemon“ Verzeichnis deines Chia Clients ausgeführt werden
    C:\Users\[USERNAME]\AppData\Local\chia-blockchain\[APP VERSION z.B.: app-1.1.6]\resources\app.asar.unpacked\daemon
  5. Überprüfen des Plot NFT mit dem Befehl:
    chia plotnft show
    Merken solltest du hier die „Launcher ID“ und der „P2 singleton address (pool contract address for plotting)“
  6. Auf der Webseite https://explorer.xchpool.org/membersearch kannst du mit deiner Launcher ID überprüfen ob dein Client im Pool registriert ist.
  7. Die Chia Version erlaubt das Erstellen poolfähiger Plots indem der Parameter -c oder –pool_contract_address verwendet wird. Die Pool Contract Address hast du mit dem „chia plotnft show“ ausgelesen.
    chia plots create -c POOL_CONTRACT_ADDRESS

In der Chia Gui siehst du unter dem Menüpunkt „Pool“ wie viele Plots du einsetzt und wie viele Punkte du erworben hast:

Chia Blockchain – Start Plotting & Farming

Chia ist eine Proof of Space and Time (PoST) Cryptowährung des BitTorrent Erfinder Bram Cohen. Anstatt des klassischen Minings wie bei anderen Cryptowährungen, bei denen häufig der Energieintensive Proof of Work Ansatz für den Konsensmechanismus verwendet wird (z.B. bei Bitcoin), werden beim Chia „Mining“ so genannte Plot Files berechnet, die dann später gefarmt werden um Chia Coins (XCH) zu erhalten. Dieses Farming verbraucht deutlich weniger Strom, da nur die Phase der Plot File Erstellung Energieintensiv ist. Für das spätere Farming wird nur wenig CPU Power benötigt. Daher gilt Chia als neue, grünere Alternative zu Bitcoins. Dieser Artikel soll einen kurzen Einstieg in das erstellen von Plot Files und Farming unter Windows geben.

Fallstricke und einige vorab Infos

Das Chia Netzwerk wird gerade total gehypet und wächst daher rasant. Da die Erträge beim Solofarming einer Lotterie gleichkommen, bei der die Gewinnchance steigt, je größer der eigene Speicheranteil am Gesamtnetzwerk ist, kann es aktuell schon sehr lange dauern bis du den ersten XCH Coin gefarmt hast. Dadurch wird das Solofarming immer uninteressanter wenn du nicht im sehr großen Stil einsteigen möchtest. Die kommende Pool Farming Unterstützung sorgt hier hoffentlich für gleichmäßigere und kontinuierliche Einnahmen auch für kleine Farmen. Es scheint langsam loszugehen mit dem Pool Farming. Erste Schritte kannst du mit dieser Anleitung ausprobieren.

Ein weiterer wichtiger Punkt ist die Hardware. Bevor ggf. in neue Hardware investiert wird empfiehlt es sich mit bestehender Hardware Erfahrung zu sammeln und die neue Technologie zu verstehen. Mit einem modernen Desktop PC mit 6+ Kernen, 16GB RAM, einer mindestens 300 GB großen SDD zum Plotten und einigen Terrabyte Festplatte zum Farmen ist man für den Start gut gerüstet. Das Erstellen der Plots ist auch mit einer HDD möglich, dauert aber vergleichsweise lange. Daher ist eine schnelle M2 SSD mit einem möglichst hohen TBW Wert sinnvoll. SSDs verschleißen beim Schreiben und haben damit eine begrenzte Lebenszeit. Die Total Bytes Written (TBW) geben darüber Auskunft, wie viele Daten während der Lebenszeit insgesamt auf eine SSD geschrieben werden können und eignet sich daher um zu berechnen wie viele Plots ca. mit der SSD erstellt werden können. Empfehlenswert ist z.B. die Seagate FireCuda 520 der 4ten Generation. Sie bieten laut Spezifikation einen TBW von 3600 GB.
Wer sich der Risiken und Nebenwirkungen nun bewusst ist kann gerne weiterlesen und Chia auf seinem Rechner einrichten 😉

Chia Installation und Wallet einrichten

Die Installation von Chia unter Windows ist sehr einfach. Dazu muss nur das Setup von Github heruntergeladen und ausgeführt werden. Anschließend kann über die Oberfläche ein neues Wallet in dem deine Coins gespeichert werden erstellt werden.

Das Programm erstellt dir für dein neues Wallet einen Mnemonic Phrase, der dir zum Wiederherstellen deines Wallet dient und auf jedenfall sicher gespeichert und geheim gehalten werden muss.

Im Anschluss findest du dich im Programm wieder. Das Programm startet automatisch einen Sync um den aktuellen Stand der Chia Blockchain zu laden.
Nicht nur der Full Node sondern auch die Wallet muss synchronisiert sein um Gewinne verbuchen und einsehen zu können oder zu farmen. Dies dauert für den ersten Sync mit einigen Stunden bis einen Tag sehr lange. Ein Resync nach einem Update geht dann deutlich schneller. Während des Synchronisierens wird zusätzlich die CPU stärker beansprucht. Der Chia Client kann aber auch jederzeit beendet werden und der Sync Vorgang später fortgeführt werden. Im nächsten Schritt wird das Erstellen von Plots beschrieben. Dies ist auch schon möglich solange der Client noch nicht vollständig synchronisiert ist.

Erstellen von Plots

Kommen wir nun zum Plotting. Hierzu links im Menü auf Plots klicken und „Add Plot“ wählen um eine oder mehrere Plot File(s) zu erstellen. Sind bereits Plot Files vorhanden, so können diese über „Add Plot Directory“ hinzugefügt werden. Generell lässt sich sagen das Erstellen von Plot Files über die Chia Software recht rudimentär ist. Möchte man diese automatisieren und besser steuern sollte auf weitere Software wie den SWAR Chia Plot Manager zurückgegriffen werden. Hier lässt sich besser einstellen wieviel Jobs parallel laufen sollen und wieviel Threads diesen zu Verfügung stehen. Ist ein Job abgearbeitet stellt der Manager automatisch einen neuen ein.

Im nachfolgenden Schritt werden die Einstellungen für die Erstellung der Plot Files durchgeführt:

Choose Plot Size:
Bei der Plot File Größe sollte der Standard bei (101,4GiB – K32) belassen werden. Größere Plot Files machen zum aktuellen Zeitpunkt keinen Sinn. Insbesondere da natürlich mehrere Plot Files dieser Größe erstellt werden können und Chia aktuell kein Pausieren der Plot File Erstellung kann. D.h. wenn ihr den PC einmal neu starten müsst, startet ihr wieder von ganz vorne und es sind womöglich viele Stunden Rechenzeit verloren.

Choose Number of Plots:
Hier kannst du die Anzahl der zu erstellenden Plots einstellen und ob diese parallel oder nacheinander erstellt werden sollen. Beachte das pro Plot Vorgang etwa 3,5GB Ram und 2 Cores benötigt benötigt werden. Wie viele Plots parallel erstellt werden können hängt damit im wesentlichen von den CPU Kernen und RAM in deinem PC ab. Die Dauer pro Plot liegt bei 6-12 Stunden je nach System. Hier heißt es dann etwas ausprobieren was die eigene Hardware schafft. Grundsätzlich lässt sich sagen, dass Plotting eine schnelle CPU, viel Arbeitsspeicher und eine schnelle Festplatte (SSD / NVMe SDD) benötigt. Achte auf jeden Fall da drauf deinem System einige Ressourcen über zu lassen.

Select Temporary Directory
Das temporäre Verzeichnis wird beim Erstellen der Plot Dateien benutzt. Es sollte möglichst schnell sein und ausreichend Speicherplatz zur Verfügung stellen. Pro Plot Vorgang werden temporäre Dateien mit einer Größe von 238,3 GiB (256 GB) erstellt. Dementsprechend groß muss euer schneller Speicher dimensioniert werden. Bei vier parallelen Plots wird somit schon eine NVMe-SSD mit 1,5 TB benötigt. Die finale Plot Datei besitzt eine Größe von 101,4 GiB und sollte auf einen großen, langsamen Speicher transferiert werden, der im nächsten Schritt angegeben wird.

Select Final Directory
Dieses Verzeichnis dient dir als Lagerort für die fertigen Plot Files. Er wird für das Farming genutzt und muss nicht sonderlich schnell sein. Hier bieten sich große, günstige Festplatten an. Nachdem alles eingestellt wurde kannst du mit einem Klick auf „CREATE PLOT“ den Plot Vorgang gestartet starten.

Farming

Der Farming Prozess startet automatisch sobald die Plots fertig erstellt sind und die Software vollständig mit dem Chia Netzwerk synchronisiert ist. Happy Farming!

Weitere Überlegungen zum Chia Farming

Nachfolgend einige weitere Überlegungen zum Chia Coin (XCH) Farming:

  • Du kannst die Chia Blockchain Software auf mehreren Computern mit dem gleichen Schlüssel ausführen. Dazu must du nur anstatt „Create a new wallet“ “IMPORT FROM MNEMONICS (24 Words)” auswählen und deine 24 Mnemonics Wörter in der richtigen Reihenfolge eingeben.
  • Die Chia Software wird schnell weiter entwickelt. Prüfe öfter ob du noch aktuell bist
  • Du solltest die Chia Blockchain Software nicht zu oft Neustarten, da es bis zu einer Stunde dauern kann bis die Software wieder mit der Chia Blockchain synchronisiert ist. In dieser Zeit findet kein Farming statt.
  • Die Windows Energieoptionen sollten so eingestellt werden, das Windows und vor allem nicht die Festplatten sich ausschalten.
  • Wenn die Chia Software deinstalliert wird, bleibt dein Schlüssel erhalten. Um diesen zu löschen must du auf der Programmstartseite „DELETE ALL Keys“ wählen
  • Aktuell erstellte Plots können nicht für das Pool Farming verwendet werden. Sobald Pools verfügbar sind und du umsteigen möchtest, macht es Sinn die alten Plots nach und nach durch Poolfähige Plots zu ersetzen und nicht alle alten Plots mit einem mal zu löschen.