XCHPool · Rejoindre le pool · NanoFarmer · Explorateur de la blockchain Chia · My Farm · News · FAQ

Comment fonctionne NanoFarmer

Comment fonctionne NanoFarmer

XCHPool NanoFarmer · Détails techniques

Ce qui tourne sur votre ordinateur, ce que fait tourner XCHPool, quels messages circulent entre les deux, et ce qui protège vos clés et vos récompenses. Écrit pour les farmers qui veulent connaître les détails.

Farmer et harvester de Chia 2.7.4

Protocole de pooling v1, plot NFT

Une seule connexion WebSocket sortante

Ce que fait un nœud complet, et ce que NanoFarmer change

Pour farmer sur Chia, il faut trois programmes qui travaillent ensemble. L’application officielle Chia les fait tourner tous les trois sur votre ordinateur. NanoFarmer en garde deux sur votre ordinateur et laisse XCHPool faire tourner le troisième.

Harvester

Lit vos plots. Pour chaque signage point, il applique le filtre de plots, qui ne laisse passer qu’une petite partie des plots (sur le mainnet, actuellement 1 sur 256), et cherche des preuves d’espace dans les plots qui passent.

Farmer

Envoie chaque signage point au harvester et reçoit ses preuves. Une preuve qui atteint votre difficulté de pool devient un partial pour le pool ; une preuve assez bonne pour gagner un bloc va au nœud complet. Avec le harvester, il signe les partials et les blocs.

Nœud complet

Garde une copie de toute la blockchain (bien plus de 100 Go) et reste synchronisé avec le réseau. Il fournit un nouveau signage point environ toutes les 9,4 secondes et, quand votre preuve gagne, construit et diffuse le bloc.

NanoFarmer fait tourner le farmer et le harvester de Chia eux-mêmes sur votre ordinateur, sans modification, et remplace le nœud complet par une seule connexion à XCHPool. Les nœuds complets de XCHPool fournissent les signage points et construisent le bloc quand vous gagnez. Rien à télécharger ni à synchroniser, et vos clés restent chez vous.

Application officielle Chia

Votre ordinateur, avec toute la blockchain

Les nœuds complets de XCHPool, via la gateway

Non inclus : importez vos mots dans Sage ou le portefeuille Chia pour voir vos récompenses

Les composants

Ce que fait chaque partie, où elle tourne et avec quoi elle est construite.

Application NanoFarmer

Il peut démarrer à l’ouverture de votre session : une entrée par utilisateur sur Windows, un LaunchAgent sur macOS, un service utilisateur systemd sur Linux. Sans droits d’administrateur. Sous Windows, une icône dans la zone de notification rouvre la fenêtre après sa fermeture et permet de quitter NanoFarmer.

Un seul programme par système. Il tourne comme un agent en arrière-plan qui supervise le moteur, fait tourner l’uplink, sert l’interface locale et installe les mises à jour.

La fenêtre est une fenêtre native sur macOS et une fenêtre d’application d’Edge ou de Chrome (ou de votre navigateur par défaut) sur Windows et Linux. La fermer n’arrête pas le farming.

Une ligne de commande avec les mêmes fonctions, pour que NanoFarmer tourne aussi sans écran via SSH, par exemple sur un Raspberry Pi.

Uplink

Quand la connexion tombe, il se reconnecte tout seul, avec une pause qui passe de 1 à 30 secondes.

Un nœud complet de substitution sur 127.0.0.1. Le farmer de Chia s’y connecte exactement comme à un vrai nœud complet, via TLS 1.3 avec le propre certificat du moteur.

Il copie les messages de Chia octet par octet dans une seule connexion WebSocket vers la gateway. Seuls quelques messages texte propres à la gateway (un message d’accueil, des avertissements, des statistiques) s’y ajoutent ; ils n’atteignent jamais le farmer, et les avertissements s’affichent dans l’application.

Son garde-fou de signature vérifie les quelques messages qui comptent pour vos récompenses (voir Clés et confiance).

Gateway

Ne transmet que les preuves des plot NFT qui farment vers XCHPool. Elle limite les connexions par adresse internet et au total, et indique à l’application pourquoi quand elle en refuse une.

Une partie du serveur NanoFarmer, construite sur le code réseau de Chia 2.7.4. Pour votre farmer, c’est un nœud complet ; pour les nœuds complets de XCHPool, c’est un farmer.

Envoie chaque nouveau signage point une fois à chaque NanoFarmer connecté, et le plus récent juste après votre connexion.

Vérifie précisément chaque preuve déclarée avant qu’un nœud complet ne la voie : un vrai signage point, un plot de plot NFT, une preuve valide qui gagne vraiment, des signatures concordantes, pas de doublon.

Serveur NanoFarmer

Un service REST à l’adresse https://pool.xchpool.org, conçu pour l’application. Un navigateur n’y lit que les fichiers de version et les manifestes de mise à jour publics, comme la page NanoFarmer pour ses téléchargements.

Trouve vos plot NFT, prépare la création et l’adhésion payées par le pool, et sert les versions publiées et les manifestes de mise à jour signés.

Paie les nouveaux plot NFT et les frais d’adhésion depuis son propre portefeuille de financement, distinct des portefeuilles du pool.

Pool

Le même XCHPool avec lequel farme chaque membre, via le protocole de pooling v1 standard.

Votre farmer s’enregistre lui-même et envoie ses partials directement au pool, pas via la gateway. Les points et les paiements fonctionnent comme pour tous les autres membres.

Chain API

L’API blockchain publique de XCHPool, un service distinct du serveur NanoFarmer.

L’application l’utilise pour trouver le coin d’un plot NFT sur la blockchain avant de lui faire confiance et, avant une adhésion depuis le self-pooling, pour vérifier s’il reste des récompenses en attente sur le plot NFT.

Explorateur et My Farm

« Ouvrir My Farm » dans l’application vous connecte avec le lien de connexion au pool de votre plot NFT.

Chaque installation de NanoFarmer est un harvester à part entière sur My Farm. Peu après que le pool a accepté son premier partial, l’application lui donne le nom de l’appareil (marque, modèle et système ; jamais le nom de votre ordinateur ni votre nom d’utilisateur). Vous pouvez le renommer dans l’application ou sur My Farm.

La carte des temps de réponse des partials montre à quelle vitesse répond chaque harvester.

Du signage point au partial ou au bloc

Ce qui se passe environ toutes les 9,4 secondes, avec les noms de messages qu’utilise Chia.

Un nouveau signage point

Les nœuds complets de XCHPool envoient chaque signage point à la gateway, qui le transmet une fois à chaque NanoFarmer connecté.

Vérifié et transmis

L’uplink vérifie que les hashs du signage point correspondent aux données envoyées avec lui, puis le transmet au farmer.

Filtre de plots et recherche

Le harvester applique le filtre de plots, cherche des preuves dans les plots qui passent et renvoie chaque preuve trouvée.

Presque toujours : un partial

Partial vers le pool

Une preuve qui atteint votre difficulté de pool devient un partial. Le harvester le signe avec la clé du plot, le farmer ajoute sa propre signature et l’envoie directement au pool via HTTPS. Le pool le vérifie, attribue des points et enregistre le temps de réponse.

Déclaration

Une preuve assez bonne pour un bloc est déclarée. L’uplink exige qu’elle contienne votre propre adresse de récompense et demande les données derrière les hashs qu’on lui demandera de signer. La gateway vérifie la preuve et qu’elle gagne vraiment, puis la transmet aux nœuds complets. Une preuve qui ne gagne pas pousserait un nœud complet à couper la connexion de la gateway ; c’est pourquoi la gateway vérifie aussi strictement.

Signature

Le nœud complet construit le bloc et demande ses signatures. L’uplink ne laisse passer cette demande que si le bloc paie la récompense de farmer à votre adresse. Le harvester signe, et les signatures repartent par le même chemin.

Diffusion

Le nœud complet termine le bloc et le diffuse. La récompense de farmer (0,125 XCH plus les frais du bloc) va à votre adresse de récompense ; la part du pool va à l’adresse de pool de votre plot NFT, où XCHPool la récupère.

Clés et confiance

Vos clés restent sur votre ordinateur. Voici ce que cela signifie en pratique, ce que NanoFarmer accepte ou refuse de signer, et ce que le côté XCHPool peut et ne peut pas faire.

Où se trouve votre clé

Les réglages peuvent réafficher les mots pour que vous les notiez sur papier : seulement après votre confirmation, avec la phrase secrète si elle est définie, sans bouton de copie, et masqués à nouveau au bout d’une minute.

NanoFarmer crée une nouvelle clé de 24 mots ou importe la vôtre, et la garde dans son propre trousseau Chia, dans son propre dossier de données, jamais dans le dossier de clés de l’application officielle Chia.

Le farmer lit ses clés de farmer, de connexion au pool et de propriétaire du plot NFT dans ce trousseau. Les mots ne quittent jamais votre ordinateur et ne sont jamais écrits dans un journal.

Une phrase secrète facultative (au moins 8 caractères) chiffre le trousseau. NanoFarmer la garde dans le gestionnaire d’identifiants de votre système pour que le farming démarre tout seul ; là où il n’y en a pas, il demande la phrase secrète à chaque démarrage.

Ce que NanoFarmer signe, et ce qu’il refuse

Valeurs du pool : l’URL du pool, l’adresse cible du pool, la hauteur de verrouillage et le délai sont intégrés à l’application. Elle refuse de créer, de rejoindre ou de signer tout ce qui en diffère, quoi qu’en dise un serveur.

Dépenses du plot NFT : l’auxiliaire reconstruit chaque dépense proposée par le serveur à partir du code de puzzle de Chia lui-même, la vérifie par rapport aux valeurs du pool intégrées à l’application, et seulement ensuite la signe. Il ne signe jamais un hash qu’il ne peut pas reconstruire.

Blocs : le farmer de Chia signe des hashs de bloc sans voir ce qu’ils représentent, et le nœud complet prend l’adresse de récompense de farmer dans un champ non signé. Le garde-fou de signature de l’uplink ne laisse donc passer une demande de signature que si les données de bloc sous-jacentes l’accompagnent, concordent avec les hashs et paient la récompense de farmer à l’adresse configurée par NanoFarmer.

Signage points : la clé de plot qui signe les signage points signe aussi les blocs. Le garde-fou ne laisse passer que les signage points dont les hashs sont ceux de leurs propres données sources, qui ne peuvent jamais être des données de bloc, et à un rythme qui ne dépasse pas quelques fois celui de la chaîne elle-même.

Ce que le côté XCHPool peut et ne peut pas faire

Les règles de consensus de Chia envoient la part du pool de chaque bloc à l’adresse de pool de votre plot NFT, comme avec n’importe quel pool.

La gateway et les nœuds complets de XCHPool pourraient retenir ou rendre invalide un bloc que vous gagnez, comme tout nœud complet sur lequel vous vous appuyez. Ils ne peuvent pas amener NanoFarmer à signer un bloc qui paie votre récompense de farmer à quelqu’un d’autre.

Des signage points inventés (le protocole farmer de Chia ne transporte aucune preuve de temps) ne coûteraient à votre harvester que quelques recherches, que le garde-fou plafonne, et ne produiraient jamais une signature valable pour un bloc.

Ce que l’application envoie

À l’explorateur : le nom de votre harvester, formé à partir de la marque, du modèle et du système de l’appareil.

À la gateway : les messages farmer de Chia (vos preuves et signatures), plus la version de l’application et du moteur, votre type de système et un identifiant d’installation aléatoire.

Au pool : vos partials et l’enregistrement de votre ferme, comme le fait tout farmer Chia.

Au serveur NanoFarmer : des clés publiques pour trouver et créer votre plot NFT, et le plot NFT que vous faites rejoindre. Jamais une clé privée, jamais vos mots.

L’interface locale

La fenêtre et la ligne de commande communiquent avec l’application uniquement sur 127.0.0.1, avec un jeton aléatoire renouvelé à chaque démarrage, des contrôles stricts de l’hôte et de l’origine et une politique de sécurité du contenu stricte, afin que les pages web ne puissent pas s’en servir.

Plot NFT : création et adhésion

NanoFarmer farme des plots de plot NFT avec le protocole de pooling v1. À l’étape 2 de l’application, il cherche des plot NFT parmi les 20 premières clés de propriétaire de votre clé, puis en utilise un, en fait rejoindre un ou en crée un.

Un plot NFT qui farme vers XCHPool

Il est utilisé tel quel, une fois que l’application a vérifié sur la blockchain qu’il appartient à votre clé.

Un plot NFT en self-pooling

Une seule dépense d’adhésion. Les récompenses encore en attente sur le plot NFT vous sont d’abord versées.

Un plot NFT dans un autre pool

Deux dépenses : quitter maintenant, et rejoindre une fois la hauteur de verrouillage de l’autre pool passée. Vous signez les deux en une fois ; le serveur envoie la seconde quand elle arrive à échéance.

Un nouveau plot NFT est créé pour vous. Il est prêt après 3 confirmations, généralement en quelques minutes.

Le pool paie 1 mojo et les frais

Le coin du pool paie 1 mojo à votre propre adresse, et votre clé transforme ce mojo en launcher du plot NFT dans la même transaction. Le plot NFT vous appartient donc dès le départ : le portefeuille Chia le trouve, et vous pouvez quitter XCHPool avec les outils standard.

La création gratuite est limitée à une fois par adresse internet toutes les 24 heures et une fois par clé.

L’application inscrit le plot NFT dans les réglages de pool du moteur ; le farmer s’enregistre ensuite tout seul auprès du pool.

Le serveur prépare les dépenses ; l’auxiliaire reconstruit chacune d’elles avec le code de Chia lui-même et ne signe que si elle aboutit chez XCHPool avec votre propre clé de propriétaire.

L’application ne considère une adhésion comme terminée qu’une fois que la blockchain la montre, quoi qu’en dise le serveur.

Une adhésion qui ne pourrait aboutir que dans plus d’un jour environ (une longue hauteur de verrouillage dans l’ancien pool) est refusée avant que quoi que ce soit ne soit signé. Les frais d’adhésion payés par le pool ont leurs propres limites ; au-delà, l’adhésion se fait quand même, sans les frais du pool.

Valeurs du pool intégrées à l’application

100 blocs, environ une demi-heure : l’attente quand un plot NFT quitte XCHPool

7 jours (604 800 secondes) : les récompenses que le pool ne récupère pas dans ce délai peuvent être réclamées vers votre adresse

Mises à jour et sécurité des versions

L’application et le moteur se mettent à jour séparément. Un nouveau moteur est téléchargé pendant que vous farmez et mis en service quand aucune tâche de plot NFT n’est en cours ; s’il ne démarre pas, le moteur précédent revient. Une nouvelle version de l’application est utilisée à partir du prochain démarrage de l’application, ou tout de suite quand vous faites la mise à jour depuis l’application.

L’application cherche des mises à jour au démarrage et toutes les 6 heures, à l’aide d’un manifeste signé avec une clé Ed25519. Deux clés publiques sont intégrées, pour que la clé de signature puisse être remplacée.

Le manifeste indique chaque fichier avec sa taille et son SHA-256, expire au bout d’un certain temps, peut imposer une version minimale et ne ramène jamais l’application ou le moteur à une version plus ancienne.

Deux canaux, stable et bêta. Une nouvelle version peut d’abord atteindre une partie des installations, choisies par un hash de l’identifiant d’installation aléatoire.

La version précédente de chacun reste sur le disque pour un retour en arrière.

La clé de signature est conservée hors ligne sur une seule machine, jamais sur un serveur ni dans la chaîne de build.

Le fichier de sommes de contrôle de chaque version est lui aussi signé, pour les premiers téléchargements, et la page NanoFarmer affiche le SHA-256 de chaque fichier.

Les programmes ne sont pas encore signés avec des certificats Apple ou Microsoft, donc votre système vous demande de confirmer le premier lancement.

Le moteur détient votre trousseau et se met à jour sans un clic, donc une seule machine de build ne doit pas suffire pour en publier un. Chaque version du moteur est construite deux fois à partir d’un commit tagué, dans deux environnements de build propres et séparés. Le build est reproductible, et l’outil de signature refuse de signer si les deux builds n’ont pas produit des paquets identiques octet par octet.

Plateformes et configuration requise

Installeur (par utilisateur) ou zip portable

macOS 15 ou plus récent, Apple silicon

macOS 15 ou plus récent, Intel

Linux x86-64, glibc 2.28 ou plus récent

Linux ARM64, glibc 2.28 ou plus récent (Raspberry Pi 4 et 5 avec un système 64 bits)

tar.gz avec script d’installation et service utilisateur systemd

Disque

Environ 1 Go libre pour l’application, le moteur, la version précédente de chacun et les journaux. Pas de blockchain.

Réseau

Ports locaux

Le moteur utilise ses propres ports, à côté de ceux de Chia par défaut : daemon 55410, farmer 8457, uplink 8454, RPC farmer 8569, RPC harvester 8570. Si l’un d’eux est pris, tout l’ensemble monte de 100.

Délais et temps de réponse

Le farming Chia suit une horloge. Voici les chiffres qui comptent.

Les partials ne passent pas par la gateway. Seul le signage point vient des nœuds complets de XCHPool jusqu’à vous via la gateway ; le farmer envoie le partial directement au pool.

64 signage points dans chaque sous-slot de 10 minutes

Le harvester de Chia avertit quand la recherche dans un plot prend plus de temps

du signage point à l’infusion du bloc : la preuve, le bloc et ses signatures doivent être prêts avant

le temps que la gateway laisse à votre farmer pour renvoyer les signatures d’un bloc

Le pool mesure le temps de réponse de chaque partial : du moment où le signage point a atteint le pool au moment où votre partial est arrivé. Un partial qui arrive après la limite de temps du pool est refusé pour retard et ne rapporte rien.

My Farm affiche vos temps de réponse par harvester : la médiane, le 95e centile et votre marge par rapport à la limite, la limite étant tracée en ligne pointillée rouge. Pour une ferme NanoFarmer, le temps inclut le relais par la gateway ; les causes habituelles de réponses lentes sont des disques lents ou en veille, des plots sur un stockage réseau et un ordinateur surchargé.

Ce que NanoFarmer ne fait pas

Pas de nœud complet : il ne télécharge, ne stocke ni ne synchronise la blockchain.

Pas de portefeuille : pour voir ou envoyer vos récompenses, importez vos mots dans Sage ou le portefeuille Chia.

Pas de plots OG : les plots faits avec une clé publique de pool (-p) sont ignorés, et l’application les liste pour que vous sachiez lesquels.

Pas de plotting : l’application explique les plotters et remplit la commande, mais ne crée pas de plots elle-même.

Pas d’autres pools pour l’instant : il ne farme des plot NFT que chez XCHPool.

Pas de plots au-dessus de C7, ni de plots Gigahorse compressés, NoSSD ou DrPlotter : Chia 2.7.4 ne peut pas les farmer.

Pas encore de plots Proof of Space 2 : ils nécessitent Chia 3.0, vers lequel le moteur peut passer par une mise à jour qui lui est propre.

Pas de redirection de port : chaque connexion part de votre ordinateur.

Choix de conception

Un WebSocket plutôt que le port de pairs de Chia

Aucun nouveau protocole de farming

Le WebSocket transporte les messages du protocole farmer de Chia octet par octet. Le farmer est celui de Chia, non modifié, et ne peut pas savoir qu’il ne parle pas à un vrai nœud complet.

Calculs de clés uniquement dans le code de Chia

Chia dérive ses clés à sa façon, et une autre bibliothèque pourrait se tromper sans que personne ne le remarque. Chaque dérivation de clé Chia et chaque signature est donc faite par le code de Chia lui-même, dans le moteur ; l’application Go n’en fait aucune.

Application et moteur séparés

L’application Go reste petite, et le moteur peut passer à une nouvelle version de Chia à son propre rythme, comme Chia 3.0 avant le fork Proof of Space 2.

Questions et réponses

XCHPool peut-il détourner ma récompense de bloc ?

Pas la récompense de farmer : NanoFarmer ne signe qu’un bloc qui la paie à votre adresse. La part du pool va à l’adresse de pool de votre plot NFT selon les règles de Chia, comme avec n’importe quel pool. Ce que le côté XCHPool pourrait faire, c’est retenir un bloc que vous gagnez, comme pourrait le faire tout nœud complet sur lequel vous vous appuyez.

Que se passe-t-il quand ma connexion internet tombe ?

L’uplink se reconnecte tout seul, avec une pause qui passe de 1 à 30 secondes, et le farmer de Chia se reconnecte à l’uplink. Si la connexion tombe entre une preuve gagnante et la demande de signature, la gateway envoie la demande à votre nouvelle connexion.

Puis-je faire tourner NanoFarmer sur plusieurs ordinateurs avec une seule clé ?

Oui. Chaque installation crée ses propres certificats de harvester, donc chaque ordinateur apparaît sur My Farm comme un harvester à part entière, avec son propre nom.

Puis-je quitter XCHPool ?

Oui. Le plot NFT vous appartient, et le portefeuille Chia peut le déplacer vers un autre pool ou en self-pooling. La hauteur de verrouillage de XCHPool est de 100 blocs, environ une demi-heure.

Pourquoi l’application n’envoie-t-elle pas les partials via la gateway ?

Elle n’en a pas besoin. Les partials utilisent le protocole de pooling standard via HTTPS, exactement comme pour un farmer avec un nœud complet. Seule la partie du nœud complet est déplacée chez XCHPool.