XCHPool · Unisciti al pool · NanoFarmer · Explorer della blockchain di Chia · My Farm · News · FAQ

Come funziona NanoFarmer

Come funziona NanoFarmer

XCHPool NanoFarmer · Dettagli tecnici

Cosa gira sul tuo computer, cosa gestisce XCHPool, quali messaggi viaggiano tra i due e cosa protegge le tue chiavi e le tue ricompense. Scritto per i farmer che vogliono conoscere i dettagli.

Farmer e harvester Chia 2.7.4

Protocollo di pooling v1, plot NFT

Un solo WebSocket in uscita

Cosa fa un full node e cosa cambia NanoFarmer

Per farmare Chia servono tre programmi che lavorano insieme. L’app ufficiale di Chia li esegue tutti e tre sul tuo computer. NanoFarmer ne tiene due sul tuo computer e lascia che sia XCHPool a eseguire il terzo.

Harvester

Legge i tuoi plot. Per ogni signage point applica il filtro dei plot, che lascia passare solo una piccola parte dei plot (sulla mainnet attualmente 1 su 256), e cerca prove di spazio nei plot che lo superano.

Farmer

Invia ogni signage point all’harvester e ne riceve le prove. Una prova che raggiunge la tua difficoltà di pool diventa un partial per la pool; una prova abbastanza buona da vincere un blocco va al full node. Insieme all’harvester firma partial e blocchi.

Full node

Conserva una copia dell’intera blockchain (ben oltre 100 GB) e resta sincronizzato con la rete. Fornisce un nuovo signage point circa ogni 9,4 secondi, e costruisce e diffonde il blocco quando la tua prova vince.

NanoFarmer esegue sul tuo computer il farmer e l’harvester di Chia, senza modifiche, e sostituisce il full node con una sola connessione a XCHPool. I full node di XCHPool forniscono i signage point e costruiscono il blocco quando vinci. Niente da scaricare o sincronizzare, e le tue chiavi restano con te.

Il tuo computer, con l’intera blockchain

I full node di XCHPool, tramite il gateway

Non incluso: importa le tue parole in Sage o nel wallet Chia per vedere le tue ricompense

I componenti

Cosa fa ogni parte, dove gira e con cosa è costruita.

App NanoFarmer

Può avviarsi quando accedi: una voce per utente su Windows, un LaunchAgent su macOS, un servizio utente systemd su Linux. Nessun diritto di amministratore. Su Windows, un’icona nell’area di notifica riapre la finestra dopo che è stata chiusa e chiude NanoFarmer.

Un solo programma per sistema. Gira come agente in background: supervisiona il motore, esegue l’uplink, serve l’interfaccia locale e installa gli aggiornamenti.

La finestra è una finestra nativa su macOS e una finestra app di Edge o Chrome (o del tuo browser predefinito) su Windows e Linux. Chiuderla non ferma il farming.

Una riga di comando con le stesse funzioni, così NanoFarmer funziona anche senza schermo via SSH, per esempio su un Raspberry Pi.

Uplink

Quando la connessione cade si ricollega da solo, con una pausa che cresce da 1 a 30 secondi.

Un full node sostitutivo su 127.0.0.1. Il farmer di Chia vi si collega esattamente come a un vero full node, via TLS 1.3 con il certificato del motore stesso.

Copia i messaggi di Chia byte per byte in un solo WebSocket verso il gateway. Si aggiungono solo pochi messaggi di testo propri del gateway (un saluto, avvisi, statistiche); non arrivano mai al farmer, e gli avvisi compaiono nell’app.

Il suo controllo delle firme verifica i pochi messaggi che contano per le tue ricompense (vedi Chiavi e fiducia).

Gateway

Inoltra solo prove di plot NFT che farmano per XCHPool. Limita le connessioni per indirizzo internet e in totale, e quando ne rifiuta una dice all’app il motivo.

Fa parte del server NanoFarmer ed è costruito sul codice di rete di Chia 2.7.4 stesso. Per il tuo farmer è un full node; per i full node di XCHPool è un farmer.

Invia ogni nuovo signage point una volta a ogni NanoFarmer collegato, e l’ultimo subito dopo che ti colleghi.

Controlla con precisione ogni prova dichiarata prima che la veda un full node: un signage point reale, un plot da plot NFT, una prova valida che vince davvero, firme corrispondenti, nessuna ripetizione.

Server NanoFarmer

Un servizio REST su https://pool.xchpool.org, fatto per l’app. Un browser legge solo i file di rilascio e i manifest di aggiornamento pubblici, come fa la pagina NanoFarmer per i suoi download.

Trova i tuoi plot NFT, prepara la creazione e l’adesione pagate dalla pool, e fornisce le release e i manifest di aggiornamento firmati.

Paga i nuovi plot NFT e le commissioni di adesione da un proprio wallet di finanziamento, separato dai wallet della pool.

Pool

È XCHPool, la stessa pool con cui farmano tutti i membri, con il protocollo di pooling v1 standard.

Il tuo farmer si registra da solo e invia i suoi partial direttamente alla pool, non tramite il gateway. Punti e pagamenti funzionano come per ogni altro membro.

Chain API

L’API blockchain pubblica di XCHPool, un servizio separato dal server NanoFarmer.

L’app la usa per trovare la coin di un plot NFT sulla blockchain prima di fidarsene e, prima di un’adesione da self-pooling, per controllare se ci sono ricompense ancora in attesa nel plot NFT.

Explorer e My Farm

«Apri My Farm» nell’app ti fa accedere con il link di accesso alla pool del tuo plot NFT.

Ogni installazione di NanoFarmer è un harvester a sé su My Farm. Poco dopo che la pool ha accettato il suo primo partial, l’app gli dà il nome del dispositivo (marca, modello e sistema; mai il nome del tuo computer né il tuo nome utente). Puoi rinominarlo nell’app o su My Farm.

La scheda dei tempi di risposta dei partial mostra quanto velocemente risponde ogni harvester.

Dal signage point al partial o al blocco

Cosa succede circa ogni 9,4 secondi, con i nomi dei messaggi usati da Chia.

Un nuovo signage point

I full node di XCHPool inviano ogni signage point al gateway, che lo passa una volta a ogni NanoFarmer collegato.

Controllato e passato

L’uplink controlla che gli hash del signage point corrispondano ai dati inviati con esso, poi lo passa al farmer.

Filtro dei plot e ricerca

L’harvester applica il filtro dei plot, cerca prove nei plot che lo superano e restituisce ogni prova che trova.

Partial alla pool

Una prova che raggiunge la tua difficoltà di pool diventa un partial. L’harvester lo firma con la chiave del plot, il farmer aggiunge la propria firma e lo invia direttamente alla pool via HTTPS. La pool lo controlla, assegna i punti e registra il tempo di risposta.

Dichiarazione

Una prova abbastanza buona per un blocco viene dichiarata. L’uplink esige che contenga il tuo indirizzo di ricompensa e chiede i dati dietro gli hash che dovrà firmare. Il gateway controlla la prova e che vinca davvero, poi la passa ai full node. Una prova che non vince farebbe chiudere a un full node la connessione del gateway: per questo il gateway controlla in modo così rigoroso.

Firma

Il full node costruisce il blocco e ne chiede le firme. L’uplink lascia passare questa richiesta solo se il blocco paga la ricompensa del farmer al tuo indirizzo. L’harvester firma, e le firme tornano indietro per la stessa strada.

Diffusione

Il full node completa il blocco e lo diffonde. La ricompensa del farmer (0,125 XCH più le commissioni del blocco) va al tuo indirizzo di ricompensa; la quota della pool va all’indirizzo della pool del tuo plot NFT, dove XCHPool la riscuote.

Chiavi e fiducia

Le tue chiavi restano sul tuo computer. Ecco cosa significa in pratica, cosa NanoFarmer firma e cosa no, e cosa il lato XCHPool può e non può fare.

Dove vive la tua chiave

Nelle Impostazioni puoi rivedere le parole per scriverle su carta: solo dopo una conferma, con la passphrase se ne hai impostata una, senza pulsante di copia, e vengono nascoste di nuovo dopo un minuto.

NanoFarmer crea una nuova chiave di 24 parole o importa la tua e la conserva nel proprio portachiavi Chia, nella propria cartella dati, mai nella cartella delle chiavi dell’app ufficiale di Chia.

Il farmer legge da quel portachiavi le sue chiavi farmer, di accesso alla pool e di proprietario del plot NFT. Le parole non lasciano mai il tuo computer e non vengono mai scritte in un log.

Una passphrase facoltativa (di almeno 8 caratteri) cifra il portachiavi. NanoFarmer la conserva nell’archivio credenziali del tuo sistema, così il farming parte da solo; dove non c’è, chiede la passphrase dopo ogni avvio.

Cosa firma NanoFarmer e cosa rifiuta

Valori della pool: l’URL della pool, l’indirizzo di destinazione della pool, il tempo di blocco e il tempo di ritardo sono integrati nell’app. L’app si rifiuta di creare, unire o firmare qualsiasi cosa diversa, qualunque cosa dica un server.

Spese del plot NFT: l’helper ricostruisce ogni spesa proposta dal server a partire dal codice puzzle di Chia stesso, la confronta con i valori della pool integrati nell’app e solo allora firma. Non firma mai un hash che non riesce a ricostruire.

Blocchi: il farmer di Chia firma gli hash dei blocchi senza vedere cosa rappresentano, e il full node prende l’indirizzo della ricompensa del farmer da un campo non firmato. Per questo il controllo delle firme dell’uplink lascia passare una richiesta di firma solo quando arrivano anche i dati del blocco che ci sono dietro, corrispondono agli hash e pagano la ricompensa del farmer all’indirizzo impostato da NanoFarmer.

Signage point: la chiave del plot che firma i signage point firma anche i blocchi. Il controllo lascia passare solo signage point i cui hash sono gli hash dei loro stessi dati di origine, che non possono mai essere dati di un blocco, e al massimo a un ritmo di poche volte quello della catena stessa.

Cosa il lato XCHPool può e non può fare

Le regole di consenso di Chia inviano la quota della pool di ogni blocco all’indirizzo della pool del tuo plot NFT, come con qualsiasi pool.

Il gateway e i full node di XCHPool potrebbero trattenere o rovinare un blocco che vinci, come potrebbe fare qualsiasi full node su cui fai affidamento. Non possono far firmare a NanoFarmer un blocco che paga la tua ricompensa del farmer a qualcun altro.

Signage point inventati (il protocollo farmer di Chia non trasporta alcuna prova di tempo) costerebbero al tuo harvester solo qualche ricerca, che il controllo limita, e non produrrebbero mai una firma valida per un blocco.

Cosa invia l’app

All’explorer: il nome del tuo harvester, formato da marca, modello e sistema del dispositivo.

Al gateway: i messaggi farmer di Chia (le tue prove e firme), più la versione dell’app e del motore, il tipo di sistema e un ID di installazione casuale.

Alla pool: i tuoi partial e la registrazione della tua farm, come fa ogni farmer Chia.

Al server NanoFarmer: le chiavi pubbliche per trovare e creare il tuo plot NFT, e il plot NFT che unisci alla pool. Mai una chiave privata e mai le tue parole.

L’interfaccia locale

La finestra e la riga di comando comunicano con l’app solo su 127.0.0.1, con un token casuale nuovo a ogni avvio, controlli rigorosi su host e origine e una content security policy rigorosa, così le pagine web non possono usarla.

Plot NFT: creazione e adesione

NanoFarmer farma plot da plot NFT con il protocollo di pooling v1. Nel passo 2 dell’app cerca plot NFT tra le prime 20 chiavi di proprietario della tua chiave, poi ne usa uno, ne unisce uno alla pool oppure ne crea uno.

Un plot NFT che farma per XCHPool

Viene usato così com’è, dopo che l’app ha verificato sulla blockchain che appartiene alla tua chiave.

Un plot NFT in self-pooling

Una spesa di adesione. Le ricompense ancora in attesa nel plot NFT vengono prima riscosse a tuo favore.

La pool aggiunge la commissione

Un plot NFT in un’altra pool

Due spese: uscita subito e adesione quando è trascorso il tempo di blocco dell’altra pool. Le firmi entrambe insieme; il server invia la seconda al momento giusto.

La pool aggiunge le commissioni

Viene creato per te un nuovo plot NFT. È pronto dopo 3 conferme, di solito in pochi minuti.

La pool paga 1 mojo e la commissione

La coin della pool paga 1 mojo al tuo indirizzo, e la tua chiave trasforma quel mojo nel launcher del plot NFT nella stessa transazione. Così il plot NFT è tuo fin dall’inizio: il wallet Chia lo trova, e puoi lasciare XCHPool con gli strumenti standard.

La creazione gratuita è limitata a una volta per indirizzo internet ogni 24 ore e a una volta per chiave.

L’app scrive il plot NFT nelle impostazioni pool del motore; poi il farmer si registra da solo presso la pool.

Il server prepara le spese; l’helper ricostruisce ciascuna con il codice di Chia stesso e la firma solo se termina in XCHPool con la tua chiave di proprietario.

L’app considera conclusa un’adesione solo quando la blockchain lo mostra, qualunque cosa riporti il server.

Un’adesione che potrebbe completarsi solo tra più di un giorno circa (per un lungo tempo di blocco nella vecchia pool) viene rifiutata prima di firmare qualsiasi cosa. La commissione di adesione pagata dalla pool ha limiti propri; oltre questi l’adesione avviene comunque, senza la commissione della pool.

Valori della pool integrati nell’app

100 blocchi, circa mezz’ora: l’attesa quando un plot NFT lascia XCHPool

7 giorni (604.800 secondi): le ricompense che la pool non riscuote in quel tempo possono essere recuperate sul tuo indirizzo

Aggiornamenti e sicurezza delle release

App e motore si aggiornano separatamente. Un nuovo motore viene scaricato mentre farmi e attivato quando non c’è nessuna operazione sul plot NFT in corso; se non si avvia, torna il motore precedente. Una nuova versione dell’app viene usata dal successivo avvio dell’app, o subito se aggiorni dall’app.

L’app cerca aggiornamenti all’avvio e ogni 6 ore, in un manifest firmato con una chiave Ed25519. Ha due chiavi pubbliche integrate, così la chiave di firma può essere sostituita.

Il manifest elenca ogni file con dimensione e SHA-256, scade dopo un certo tempo, può imporre una versione minima e non riporta mai l’app o il motore a una versione precedente.

Due canali, stabile e beta. Una nuova versione può raggiungere prima una parte delle installazioni, scelta tramite un hash dell’ID di installazione casuale.

La versione precedente di ciascuno resta sul disco per un rollback.

La chiave di firma è conservata offline su una sola macchina, mai su un server o nella pipeline di build.

Anche il file dei checksum di ogni release è firmato, per i primi download, e la pagina NanoFarmer mostra lo SHA-256 di ogni file.

I programmi non sono ancora firmati con certificati Apple o Microsoft, quindi il tuo sistema ti chiede di confermare il primo avvio.

Il motore custodisce il tuo portachiavi e si aggiorna senza un clic, quindi una sola macchina di build non deve bastare per pubblicarne uno. Ogni release del motore viene compilata due volte da un commit con tag, in due ambienti di build puliti e separati. La build è riproducibile, e lo strumento di firma si rifiuta di firmare se le due build non hanno prodotto pacchetti identici byte per byte.

Piattaforme e requisiti

Programma di installazione (per utente) o zip portatile

macOS 15 o successivo, Apple silicon

macOS 15 o successivo, Intel

Linux x86-64, glibc 2.28 o successiva

Linux ARM64, glibc 2.28 o successiva (Raspberry Pi 4 e 5 con un sistema a 64 bit)

tar.gz con script di installazione e servizio utente systemd

Disco

Circa 1 GB libero per l’app, il motore, la versione precedente di ciascuno e i log. Nessuna blockchain.

Rete

Porte locali

Il motore usa porte proprie accanto a quelle predefinite di Chia: daemon 55410, farmer 8457, uplink 8454, RPC del farmer 8569, RPC dell’harvester 8570. Se una è occupata, l’intero gruppo sale di 100.

Tempistiche e tempi di risposta

Il farming di Chia segue un orologio. Questi sono i numeri che contano.

I partial non passano dal gateway. Solo il signage point arriva dai full node di XCHPool fino a te tramite il gateway; il farmer invia il partial direttamente alla pool.

64 signage point in ogni sub-slot di 10 minuti

tra un signage point e l’altro

L’harvester di Chia avvisa quando la ricerca in un plot richiede più tempo

dal signage point all’infusione del blocco: la prova, il blocco e le sue firme devono essere pronti prima

il tempo che il gateway concede al tuo farmer per restituire le firme di un blocco

La pool misura il tempo di risposta di ogni partial: dal momento in cui il signage point ha raggiunto la pool al momento in cui è arrivato il tuo partial. Un partial che arriva oltre il limite di tempo della pool viene rifiutato perché in ritardo e non frutta nulla.

My Farm mostra i tuoi tempi di risposta per harvester: la mediana, il 95° percentile e il tuo margine rispetto al limite, con il limite disegnato come linea rossa tratteggiata. Per una farm NanoFarmer il tempo include l’inoltro tramite il gateway; le cause comuni di risposte lente sono dischi lenti o in standby, plot su storage di rete e un computer sovraccarico.

Cosa NanoFarmer non fa

Nessun full node: non scarica, non conserva e non sincronizza la blockchain.

Nessun wallet: per vedere o inviare le tue ricompense, importa le tue parole in Sage o nel wallet Chia.

Nessun plot OG: i plot creati con una chiave pubblica della pool (-p) vengono saltati, e l’app li elenca così sai quali sono.

Nessun plotting: l’app spiega i plotter e compila il comando, ma non crea plot da sé.

Per ora nessun’altra pool: farma solo plot NFT su XCHPool.

Nessun plot oltre C7, e nessun plot compresso Gigahorse, NoSSD o DrPlotter: Chia 2.7.4 non può farmarli.

Ancora nessun plot Proof of Space 2: richiedono Chia 3.0, a cui il motore può passare con un proprio aggiornamento.

Nessun port forwarding: ogni connessione parte dal tuo computer.

Scelte di progettazione

Un WebSocket invece della porta peer di Chia

Nessun nuovo protocollo di farming

Il WebSocket trasporta byte per byte i messaggi del protocollo farmer di Chia stesso. Il farmer è Chia standard e non può capire che non sta parlando con un vero full node.

Matematica delle chiavi solo nel codice di Chia

Chia deriva le sue chiavi a modo suo, e un’altra libreria potrebbe sbagliarle senza che nessuno se ne accorga. Per questo ogni derivazione di chiavi e ogni firma di Chia viene fatta dal codice di Chia stesso nel motore; l’app Go non ne fa nessuna.

App e motore separati

L’app Go resta piccola, e il motore può passare a una nuova versione di Chia con i suoi tempi, come Chia 3.0 prima del fork di Proof of Space 2.

Domande e risposte

XCHPool può dirottare la mia ricompensa di blocco?

Non la ricompensa del farmer: NanoFarmer firma solo un blocco che la paga al tuo indirizzo. La quota della pool va all’indirizzo della pool del tuo plot NFT secondo le regole di Chia, come con qualsiasi pool. Ciò che il lato XCHPool potrebbe fare è trattenere un blocco che vinci, come potrebbe fare qualsiasi full node su cui fai affidamento.

Cosa succede se cade la mia connessione a internet?

L’uplink si ricollega da solo, con una pausa che cresce da 1 a 30 secondi, e il farmer di Chia si ricollega all’uplink. Se la connessione cade tra una prova vincente e la richiesta di firma, il gateway invia la richiesta alla tua nuova connessione.

Posso usare NanoFarmer su più computer con una sola chiave?

Sì. Ogni installazione crea i propri certificati harvester, quindi ogni computer compare su My Farm come harvester a sé, con il proprio nome.

Posso lasciare XCHPool?

Sì. Il plot NFT è tuo, e il wallet Chia può spostarlo in un’altra pool o in self-pooling. Il tempo di blocco di XCHPool è di 100 blocchi, circa mezz’ora.

Perché l’app non invia i partial tramite il gateway?

Non ne ha bisogno. I partial usano il protocollo di pooling standard via HTTPS, esattamente come per un farmer con un full node. Solo la parte del full node viene spostata a XCHPool.