XCHPool · Dem Pool beitreten · NanoFarmer · Chia-Blockchain-Explorer · My Farm · News · FAQ

So funktioniert NanoFarmer

So funktioniert NanoFarmer

XCHPool NanoFarmer · Technische Details

Was auf deinem Computer läuft, was XCHPool betreibt, welche Nachrichten zwischen beiden ausgetauscht werden und was deine Schlüssel und deine Belohnungen schützt. Geschrieben für Farmer, die es genau wissen wollen.

Farmer und Harvester von Chia 2.7.4

Pooling-Protokoll v1, Plot-NFTs

Eine ausgehende WebSocket-Verbindung

Was eine Full Node tut und was NanoFarmer ändert

Zum Farmen von Chia braucht es drei Programme, die zusammenarbeiten. Die offizielle Chia-App lässt alle drei auf deinem Computer laufen. NanoFarmer behält zwei davon auf deinem Computer und lässt XCHPool das dritte betreiben.

Harvester

Liest deine Plots. Für jeden Signage Point wendet er den Plot-Filter an, der nur einen kleinen Teil der Plots durchlässt (im Mainnet derzeit 1 von 256), und sucht in den durchgelassenen Plots nach Proofs of Space.

Farmer

Schickt jeden Signage Point an den Harvester und empfängt dessen Proofs. Ein Proof, der deine Pool-Schwierigkeit erfüllt, wird zum Partial für den Pool; ein Proof, der gut genug ist, um einen Block zu gewinnen, geht an die Full Node. Zusammen mit dem Harvester signiert er Partials und Blöcke.

Full Node

Hält eine Kopie der gesamten Blockchain (weit über 100 GB) und bleibt mit dem Netzwerk synchron. Sie liefert etwa alle 9,4 Sekunden einen neuen Signage Point und baut und verbreitet den Block, wenn dein Proof gewinnt.

NanoFarmer lässt Chias eigenen Farmer und Harvester unverändert auf deinem Computer laufen und ersetzt die Full Node durch eine einzige Verbindung zu XCHPool. Die Full Nodes von XCHPool liefern die Signage Points und bauen den Block, wenn du gewinnst. Nichts herunterzuladen oder zu synchronisieren, und deine Schlüssel bleiben bei dir.

Dein Computer, mit der gesamten Blockchain

Die Full Nodes von XCHPool, über das Gateway

Nicht enthalten: Importiere deine Wörter in Sage oder die Chia-Wallet, um deine Belohnungen zu sehen

Die Komponenten

Was jeder Teil macht, wo er läuft und womit er gebaut ist.

NanoFarmer-App

Es kann beim Anmelden starten: über einen Eintrag pro Benutzer unter Windows, einen LaunchAgent unter macOS, einen systemd-Benutzerdienst unter Linux. Keine Administratorrechte. Unter Windows öffnet ein Symbol im Infobereich das Fenster wieder, nachdem es geschlossen wurde, und beendet NanoFarmer.

Ein Programm pro System. Es läuft als Hintergrund-Agent, der die Engine überwacht, den Uplink betreibt, die lokale Oberfläche bereitstellt und Updates installiert.

Das Fenster ist unter macOS ein natives Fenster und unter Windows und Linux ein App-Fenster von Edge oder Chrome (oder deinem Standardbrowser). Wenn du es schließt, endet das Farmen nicht.

Eine Kommandozeile mit denselben Funktionen, sodass NanoFarmer auch ohne Bildschirm über SSH läuft, etwa auf einem Raspberry Pi.

Uplink

Bricht die Verbindung ab, verbindet er sich selbst neu, mit einer Pause, die von 1 auf 30 Sekunden wächst.

Eine stellvertretende Full Node auf 127.0.0.1. Chias Farmer verbindet sich damit genau so wie mit einer echten Full Node, über TLS 1.3 mit dem eigenen Zertifikat der Engine.

Er kopiert Chias Nachrichten Byte für Byte in eine einzige WebSocket-Verbindung zum Gateway. Nur ein paar eigene Textnachrichten des Gateways (eine Begrüßung, Warnungen, Statistiken) kommen hinzu; sie erreichen nie den Farmer, und Warnungen erscheinen in der App.

Sein Signierschutz prüft die wenigen Nachrichten, auf die es für deine Belohnungen ankommt (siehe Schlüssel und Vertrauen).

Gateway

Leitet nur Proofs von Plot-NFTs weiter, die zu XCHPool farmen. Es begrenzt die Verbindungen pro Internetadresse und insgesamt und sagt der App, warum, wenn es eine ablehnt.

Teil des NanoFarmer-Servers, gebaut auf dem Netzwerkcode von Chia 2.7.4. Für deinen Farmer ist es eine Full Node; für die Full Nodes von XCHPool ist es ein Farmer.

Schickt jeden neuen Signage Point einmal an jeden verbundenen NanoFarmer, und direkt nach dem Verbinden den neuesten.

Prüft jeden deklarierten Proof exakt, bevor eine Full Node ihn sieht: ein echter Signage Point, ein Plot-NFT-Plot, ein gültiger Proof, der wirklich gewinnt, passende Signaturen, keine Wiederholung.

NanoFarmer-Server

Ein REST-Dienst unter https://pool.xchpool.org, gemacht für die App. Ein Browser liest dort nur die öffentlichen Release-Dateien und Update-Manifeste, so wie die NanoFarmer-Seite für ihre Downloads.

Findet deine Plot-NFTs, bereitet das vom Pool bezahlte Erstellen und Beitreten vor und liefert die Releases und die signierten Update-Manifeste aus.

Bezahlt neue Plot-NFTs und Beitrittsgebühren aus einer eigenen Finanzierungs-Wallet, getrennt von den Wallets des Pools.

Pool

Derselbe XCHPool, mit dem jedes Mitglied farmt, über das Standard-Pooling-Protokoll v1.

Dein Farmer registriert sich selbst und schickt seine Partials direkt an den Pool, nicht über das Gateway. Punkte und Auszahlungen funktionieren wie bei jedem anderen Mitglied.

Chain API

Die öffentliche Blockchain-API von XCHPool, ein vom NanoFarmer-Server getrennter Dienst.

Die App nutzt sie, um den Coin eines Plot-NFT auf der Blockchain zu finden, bevor sie ihm vertraut, und um vor einem Beitritt aus dem Self-Pooling zu prüfen, ob am Plot-NFT noch Belohnungen warten.

Explorer und My Farm

„My Farm öffnen“ in der App meldet dich mit dem Pool-Login-Link deines Plot-NFT an.

Jede NanoFarmer-Installation ist auf My Farm ein eigener Harvester. Kurz nachdem der Pool ihr erstes Partial akzeptiert hat, benennt die App ihn nach dem Gerät (Marke, Modell und System; nie der Name deines Computers oder dein Benutzername). Du kannst ihn in der App oder auf My Farm umbenennen.

Die Karte mit den Antwortzeiten der Partials zeigt, wie schnell jeder Harvester antwortet.

Vom Signage Point zum Partial oder Block

Was etwa alle 9,4 Sekunden passiert, mit den Nachrichtennamen, die Chia verwendet.

Ein neuer Signage Point

Die Full Nodes von XCHPool schicken jeden Signage Point an das Gateway, das ihn einmal an jeden verbundenen NanoFarmer weitergibt.

Geprüft und weitergegeben

Der Uplink prüft, ob die Hashes des Signage Points zu den mitgeschickten Daten passen, und gibt ihn dann an den Farmer weiter.

Plot-Filter und Suche

Der Harvester wendet den Plot-Filter an, sucht in den durchgelassenen Plots nach Proofs und gibt jeden gefundenen Proof zurück.

Partial an den Pool

Ein Proof, der deine Pool-Schwierigkeit erfüllt, wird zum Partial. Der Harvester signiert es mit dem Plot-Schlüssel, der Farmer fügt seine eigene Signatur hinzu und schickt es direkt über HTTPS an den Pool. Der Pool prüft es, vergibt Punkte und erfasst die Antwortzeit.

Deklariert

Ein Proof, der gut genug für einen Block ist, wird deklariert. Der Uplink verlangt darin deine eigene Belohnungsadresse und fordert die Daten hinter den Hashes an, um deren Signatur er später gebeten wird. Das Gateway prüft den Proof und ob er wirklich gewinnt, und gibt ihn dann an die Full Nodes weiter. Ein Proof, der nicht gewinnt, würde eine Full Node dazu bringen, die Verbindung des Gateways zu trennen; deshalb prüft das Gateway so streng.

Signiert

Die Full Node baut den Block und fordert seine Signaturen an. Der Uplink lässt diese Anfrage nur durch, wenn der Block die Farmer-Belohnung an deine Adresse zahlt. Der Harvester signiert, und die Signaturen gehen denselben Weg zurück.

Verbreitet

Die Full Node stellt den Block fertig und verbreitet ihn. Die Farmer-Belohnung (0,125 XCH plus die Gebühren des Blocks) geht an deine Belohnungsadresse; der Anteil des Pools geht an die Pool-Adresse deines Plot-NFT, wo XCHPool ihn einsammelt.

Schlüssel und Vertrauen

Deine Schlüssel bleiben auf deinem Computer. Hier steht, was das in der Praxis bedeutet, was NanoFarmer signiert und was nicht, und was auf Seiten von XCHPool möglich ist und was nicht.

Wo dein Schlüssel liegt

In den Einstellungen kannst du die Wörter noch einmal anzeigen lassen, um sie auf Papier zu schreiben: nur nach deiner Bestätigung, mit der Passphrase, falls eine gesetzt ist, ohne Kopier-Button, und nach einer Minute werden sie wieder ausgeblendet.

NanoFarmer erstellt einen neuen Schlüssel aus 24 Wörtern oder importiert deinen und bewahrt ihn in einem eigenen Chia-Schlüsselbund in einem eigenen Datenordner auf, nie im Schlüsselordner der offiziellen Chia-App.

Der Farmer liest seine Farmer-, Pool-Login- und Plot-NFT-Besitzerschlüssel aus diesem Schlüsselbund. Die Wörter verlassen nie deinen Computer und landen nie in einem Log.

Eine optionale Passphrase (mindestens 8 Zeichen) verschlüsselt den Schlüsselbund. NanoFarmer speichert sie im Anmeldedatenspeicher deines Systems, damit das Farmen von selbst startet; wo es keinen gibt, fragt es nach jedem Start nach der Passphrase.

Was NanoFarmer signiert und was es verweigert

Pool-Werte: Die Pool-URL, die Zieladresse des Pools, die Sperrhöhe und die Verzögerungszeit sind in die App eingebaut. Weicht etwas davon ab, verweigert sie das Erstellen, Beitreten oder Signieren, egal was ein Server sagt.

Plot-NFT-Spends: Der Helfer baut jeden Spend, den der Server vorschlägt, mit Chias eigenem Puzzle-Code nach, prüft ihn gegen die in die App eingebauten Pool-Werte und signiert erst dann. Er signiert nie einen Hash, den er nicht nachbauen kann.

Blöcke: Chias Farmer signiert Block-Hashes, ohne zu sehen, wofür sie stehen, und die Full Node nimmt die Farmer-Belohnungsadresse aus einem unsignierten Feld. Deshalb lässt der Signierschutz des Uplinks eine Signaturanfrage nur durch, wenn die Blockdaten dahinter mitkommen, zu den Hashes passen und die Farmer-Belohnung an die Adresse zahlen, die NanoFarmer eingerichtet hat.

Signage Points: Der Plot-Schlüssel, der Signage Points signiert, signiert auch Blöcke. Der Signierschutz lässt nur Signage Points durch, deren Hashes die Hashes ihrer eigenen Quelldaten sind, die nie Blockdaten sein können, und höchstens ein paar Mal so häufig, wie die Chain selbst sie liefert.

Was auf Seiten von XCHPool möglich ist und was nicht

Die Konsensregeln von Chia schicken den Anteil des Pools an jedem Block an die Pool-Adresse deines Plot-NFT, wie bei jedem Pool.

Das Gateway und die Full Nodes von XCHPool könnten einen Block, den du gewinnst, zurückhalten oder ungültig machen, wie jede Full Node, auf die du dich verlässt. Sie können NanoFarmer nicht dazu bringen, einen Block zu signieren, der deine Farmer-Belohnung an jemand anderen zahlt.

Erfundene Signage Points (Chias Farmer-Protokoll enthält keinen Proof of Time) würden deinen Harvester nur einige Suchvorgänge kosten, die der Signierschutz begrenzt, und nie eine Signatur erzeugen, die zu einem Block passt.

Was die App sendet

An den Explorer: den Namen deines Harvesters, gebildet aus Marke, Modell und System des Geräts.

An das Gateway: Chias Farmer-Nachrichten (deine Proofs und Signaturen), dazu die Version von App und Engine, deinen Systemtyp und eine zufällige Installations-ID.

An den Pool: deine Partials und die Registrierung deiner Farm, wie jeder Chia-Farmer.

An den NanoFarmer-Server: öffentliche Schlüssel, um dein Plot-NFT zu finden und zu erstellen, und das Plot-NFT, das du beitreten lässt. Nie einen privaten Schlüssel und nie deine Wörter.

Die lokale Oberfläche

Das Fenster und die Kommandozeile sprechen nur auf 127.0.0.1 mit der App, mit einem zufälligen Token, das bei jedem Start neu ist, strengen Host- und Origin-Prüfungen und einer strengen Content Security Policy, sodass Webseiten sie nicht nutzen können.

Plot-NFT: Erstellen und Beitreten

NanoFarmer farmt Plot-NFT-Plots mit Pooling-Protokoll v1. In Schritt 2 der App sucht es unter den ersten 20 Besitzerschlüsseln deines Schlüssels nach Plot-NFTs und nutzt dann eins, lässt eins beitreten oder erstellt eins.

Ein Plot-NFT, das zu XCHPool farmt

Es wird so genutzt, wie es ist, sobald die App auf der Blockchain geprüft hat, dass es zu deinem Schlüssel gehört.

Ein Plot-NFT im Self-Pooling

Ein Spend für den Beitritt. Belohnungen, die noch am Plot-NFT warten, werden vorher an dich ausgezahlt.

Der Pool steuert die Gebühr bei

Ein Plot-NFT bei einem anderen Pool

Zwei Spends: jetzt verlassen und beitreten, sobald die Sperrhöhe des anderen Pools erreicht ist. Du signierst beide auf einmal; der Server sendet den zweiten, wenn er fällig ist.

Der Pool steuert die Gebühren bei

Ein neues Plot-NFT wird für dich erstellt. Es ist nach 3 Bestätigungen bereit, meist innerhalb weniger Minuten.

Der Pool zahlt das 1 Mojo und die Gebühr

Der Coin des Pools zahlt 1 Mojo an deine eigene Adresse, und dein Schlüssel macht in derselben Transaktion aus diesem Mojo den Launcher des Plot-NFT. So gehört das Plot-NFT von Anfang an dir: Die Chia-Wallet findet es, und du kannst XCHPool mit Standardwerkzeugen verlassen.

Die kostenlose Erstellung ist auf einmal pro Internetadresse in 24 Stunden und einmal pro Schlüssel begrenzt.

Die App trägt das Plot-NFT in die Pool-Einstellungen der Engine ein; der Farmer registriert sich dann von selbst beim Pool.

Der Server bereitet die Spends vor; der Helfer baut jeden mit Chias eigenem Code nach und signiert nur, wenn er bei XCHPool mit deinem eigenen Besitzerschlüssel endet.

Die App meldet einen Beitritt erst als abgeschlossen, wenn die Blockchain ihn zeigt, egal was der Server meldet.

Ein Beitritt, der erst in mehr als etwa einem Tag durchgehen könnte (eine lange Sperrhöhe beim alten Pool), wird abgelehnt, bevor irgendetwas signiert wird. Die vom Pool bezahlte Beitrittsgebühr hat eigene Grenzen; darüber hinaus geht ein Beitritt trotzdem durch, nur ohne die Gebühr des Pools.

In die App eingebaute Pool-Werte

100 Blöcke, etwa eine halbe Stunde: die Wartezeit, wenn ein Plot-NFT XCHPool verlässt

7 Tage (604.800 Sekunden): Belohnungen, die der Pool in dieser Zeit nicht einsammelt, können an deine Adresse zurückgeholt werden

Updates und Release-Sicherheit

App und Engine werden getrennt aktualisiert. Eine neue Engine wird heruntergeladen, während du farmst, und aktiviert, wenn gerade kein Plot-NFT-Auftrag läuft; startet sie nicht, kommt die vorherige Engine zurück. Eine neue App-Version wird ab dem nächsten Start der App genutzt, oder sofort, wenn du aus der App heraus aktualisierst.

Die App sucht beim Start und alle 6 Stunden nach Updates, anhand eines Manifests, das mit einem Ed25519-Schlüssel signiert ist. Zwei öffentliche Schlüssel sind eingebaut, damit der Signierschlüssel ausgetauscht werden kann.

Das Manifest nennt jede Datei mit Größe und SHA-256, läuft nach einer Weile ab, kann eine Mindestversion festlegen und bringt die App oder die Engine nie auf eine ältere Version zurück.

Zwei Kanäle, stable und beta. Eine neue Version kann zuerst einen Teil der Installationen erreichen, ausgewählt anhand eines Hashes der zufälligen Installations-ID.

Von beiden bleibt die jeweils vorherige Version für ein Rollback auf der Festplatte.

Der Signierschlüssel liegt offline auf einem einzigen Rechner, nie auf einem Server oder in der Build-Pipeline.

Auch die Prüfsummendatei jedes Releases ist signiert, für Erst-Downloads, und die NanoFarmer-Seite zeigt die SHA-256 jeder Datei.

Die Programme sind noch nicht mit Zertifikaten von Apple oder Microsoft code-signiert, daher bittet dich dein System, den ersten Start zu bestätigen.

Die Engine enthält deinen Schlüsselbund und aktualisiert sich ohne Klick, also darf ein einzelner Build-Rechner nicht ausreichen, um eine auszuliefern. Jedes Engine-Release wird zweimal aus einem getaggten Commit gebaut, in zwei getrennten, sauberen Build-Umgebungen. Der Build ist reproduzierbar, und das Signierwerkzeug signiert nur, wenn beide Builds Byte für Byte identische Pakete erzeugt haben.

Plattformen und Voraussetzungen

Installer (pro Benutzer) oder portables zip

macOS 15 oder neuer, Apple Silicon

macOS 15 oder neuer, Intel

Linux x86-64, glibc 2.28 oder neuer

Linux ARM64, glibc 2.28 oder neuer (Raspberry Pi 4 und 5 mit 64-Bit-System)

tar.gz mit Installationsskript und systemd-Benutzerdienst

Speicherplatz

Etwa 1 GB frei für die App, die Engine, die jeweils vorherige Version von beiden und die Logs. Keine Blockchain.

Netzwerk

Lokale Ports

Die Engine nutzt eigene Ports neben den Standardports von Chia: Daemon 55410, Farmer 8457, Uplink 8454, Farmer-RPC 8569, Harvester-RPC 8570. Ist einer belegt, rückt der ganze Satz um 100 nach oben.

Timing und Antwortzeiten

Chia-Farming läuft nach der Uhr. Das sind die Zahlen, auf die es ankommt.

Partials laufen nicht über das Gateway. Nur der Signage Point kommt von den Full Nodes von XCHPool über das Gateway zu dir; der Farmer schickt das Partial direkt an den Pool.

64 Signage Points in jedem 10-Minuten-Sub-Slot

Chias Harvester warnt, wenn die Suche in einem Plot länger dauert

vom Signage Point bis zur Infusion des Blocks: Proof, Block und seine Signaturen müssen vorher fertig sein

die Zeit, die das Gateway deinem Farmer gibt, um die Signaturen eines Blocks zurückzuschicken

zum Signieren eines Blocks

Der Pool misst die Antwortzeit jedes Partials: vom Moment, in dem der Signage Point den Pool erreicht hat, bis zum Eintreffen deines Partials. Ein Partial, das nach dem Zeitlimit des Pools ankommt, wird als zu spät abgelehnt und bringt nichts ein.

My Farm zeigt deine Antwortzeiten pro Harvester: den Median, das 95. Perzentil und deinen Spielraum bis zum Limit, wobei das Limit als rote gestrichelte Linie eingezeichnet ist. Bei einer NanoFarmer-Farm enthält die Zeit die Weiterleitung über das Gateway; die üblichen Ursachen für langsame Antworten sind langsame oder schlafende Festplatten, Plots auf Netzwerkspeicher und ein ausgelasteter Computer.

Was NanoFarmer nicht macht

Keine Full Node: Es lädt die Blockchain weder herunter, noch speichert oder synchronisiert es sie.

Keine Wallet: Um deine Belohnungen zu sehen oder zu senden, importiere deine Wörter in Sage oder die Chia-Wallet.

Keine OG-Plots: Plots, die mit einem Pool-Public-Key (-p) erstellt wurden, werden übersprungen, und die App listet sie auf, damit du weißt, welche es sind.

Kein Plotten: Die App erklärt die Plotter und füllt den Befehl aus, erstellt aber selbst keine Plots.

Vorerst keine anderen Pools: Es farmt Plot-NFTs nur bei XCHPool.

Keine Plots über C7 und keine komprimierten Gigahorse-Plots, NoSSD- oder DrPlotter-Plots: Chia 2.7.4 kann sie nicht farmen.

Noch keine Plots für Proof of Space 2: Die brauchen Chia 3.0, auf das die Engine mit einem eigenen Update wechseln kann.

Keine Portweiterleitung: Jede Verbindung geht von deinem Computer nach außen.

Designentscheidungen

Eine WebSocket-Verbindung statt Chias Peer-Port

Kein neues Farming-Protokoll

Die WebSocket-Verbindung trägt Chias eigene Farmer-Protokoll-Nachrichten Byte für Byte. Der Farmer ist unverändertes Chia und kann nicht erkennen, dass er nicht mit einer echten Full Node spricht.

Schlüsselberechnung nur in Chias Code

Chia leitet seine Schlüssel auf eigene Art ab, und eine andere Bibliothek könnte sie falsch berechnen, ohne dass es jemand merkt. Deshalb entsteht jede Chia-Schlüsselableitung und jede Signatur durch Chias eigenen Code in der Engine; die Go-App macht nichts davon.

App und Engine getrennt

Die Go-App bleibt klein, und die Engine kann nach eigenem Zeitplan auf eine neue Chia-Version wechseln, etwa auf Chia 3.0 vor der Fork für Proof of Space 2.

Fragen und Antworten

Kann XCHPool meine Block-Belohnung umleiten?

Die Farmer-Belohnung nicht: NanoFarmer signiert nur einen Block, der sie an deine Adresse zahlt. Der Anteil des Pools geht nach Chias Regeln an die Pool-Adresse deines Plot-NFT, wie bei jedem Pool. Was auf Seiten von XCHPool möglich wäre: einen Block zurückzuhalten, den du gewinnst, wie es jede Full Node könnte, auf die du dich verlässt.

Was passiert, wenn meine Internetverbindung abbricht?

Der Uplink verbindet sich selbst neu, mit einer Pause, die von 1 auf 30 Sekunden wächst, und Chias Farmer verbindet sich neu mit dem Uplink. Bricht die Verbindung zwischen einem gewinnenden Proof und der Signaturanfrage ab, schickt das Gateway die Anfrage an deine neue Verbindung.

Kann ich NanoFarmer mit einem Schlüssel auf mehreren Computern laufen lassen?

Ja. Jede Installation erstellt eigene Harvester-Zertifikate, daher erscheint jeder Computer auf My Farm als eigener Harvester mit eigenem Namen.

Kann ich XCHPool verlassen?

Ja. Das Plot-NFT gehört dir, und die Chia-Wallet kann es zu einem anderen Pool oder ins Self-Pooling verschieben. Die Sperrhöhe von XCHPool beträgt 100 Blöcke, etwa eine halbe Stunde.

Warum schickt die App Partials nicht über das Gateway?

Das ist nicht nötig. Partials nutzen das Standard-Pooling-Protokoll über HTTPS, genau wie bei einem Farmer mit Full Node. Nur der Teil der Full Node wird zu XCHPool verlagert.