XCHPool · Únete al pool · NanoFarmer · Explorador de la blockchain de Chia · My Farm · News · FAQ

Cómo funciona NanoFarmer

Cómo funciona NanoFarmer

XCHPool NanoFarmer · Detalles técnicos

Qué se ejecuta en tu ordenador, qué ejecuta XCHPool, qué mensajes van de uno a otro y qué protege tus claves y tus recompensas. Escrito para farmers que quieren conocer los detalles.

Farmer y harvester de Chia 2.7.4

Protocolo de farmer 0.0.38

Protocolo de pooling v1, plot NFT

Un único WebSocket saliente

Qué hace un nodo completo y qué cambia NanoFarmer

Farmear Chia requiere tres programas que trabajan juntos. La aplicación oficial de Chia ejecuta los tres en tu ordenador. NanoFarmer mantiene dos de ellos en tu ordenador y deja que XCHPool ejecute el tercero.

Harvester

Lee tus plots. Para cada signage point aplica el filtro de plots, que solo deja pasar una pequeña parte de los plots (en mainnet, actualmente 1 de cada 256), y busca pruebas de espacio en los plots que pasan.

Farmer

Envía cada signage point al harvester y recibe sus pruebas. Una prueba que alcanza tu dificultad del pool se convierte en un parcial para el pool; una prueba lo bastante buena para ganar un bloque va al nodo completo. Junto con el harvester, firma los parciales y los bloques.

Nodo completo

Guarda una copia de toda la blockchain (bastante más de 100 GB) y se mantiene sincronizado con la red. Entrega un nuevo signage point cada 9,4 segundos aproximadamente, y construye y difunde el bloque cuando tu prueba gana.

NanoFarmer ejecuta en tu ordenador el farmer y el harvester de Chia, sin cambios, y sustituye el nodo completo por una única conexión con XCHPool. Los nodos completos de XCHPool entregan los signage points y construyen el bloque cuando ganas. No hay nada que descargar ni sincronizar, y tus claves se quedan contigo.

Aplicación oficial de Chia

Tu ordenador, con toda la blockchain

Los nodos completos de XCHPool, a través del gateway

No incluida: importa tus palabras en Sage o en la billetera de Chia para ver tus recompensas

Los componentes

Qué hace cada parte, dónde se ejecuta y con qué está hecha.

Aplicación NanoFarmer

Puede arrancar al iniciar sesión: una entrada por usuario en Windows, un LaunchAgent en macOS, un servicio de usuario de systemd en Linux. Sin permisos de administrador. En Windows, un icono en el área de notificación vuelve a abrir la ventana después de cerrarla y cierra NanoFarmer.

Un solo programa por sistema. Se ejecuta como agente en segundo plano: supervisa el motor, ejecuta el uplink, sirve la interfaz local e instala las actualizaciones.

La ventana es una ventana nativa en macOS y una ventana de aplicación de Edge o Chrome (o de tu navegador predeterminado) en Windows y Linux. Cerrarla no detiene el farmeo.

Una línea de comandos con las mismas funciones, para que NanoFarmer también funcione sin pantalla por SSH, por ejemplo en una Raspberry Pi.

Uplink

Cuando se cae la conexión, se reconecta solo, con una pausa que crece de 1 a 30 segundos.

Un nodo completo sustituto en 127.0.0.1. El farmer de Chia se conecta a él exactamente igual que a un nodo completo real, por TLS 1.3 con el certificado propio del motor.

Copia los mensajes de Chia byte a byte en un único WebSocket hacia el gateway. Solo se añaden unos pocos mensajes de texto propios del gateway (un saludo, avisos, estadísticas); nunca llegan al farmer, y los avisos aparecen en la aplicación.

Su control de firmas revisa los pocos mensajes que importan para tus recompensas (ver Claves y confianza).

Gateway

Solo reenvía pruebas de plot NFT que farmean en XCHPool. Limita las conexiones por dirección de internet y en total, y cuando rechaza una le dice a la aplicación el motivo.

Forma parte del servidor de NanoFarmer y está basado en el propio código de red de Chia 2.7.4. Para tu farmer es un nodo completo; para los nodos completos de XCHPool es un farmer.

Envía cada nuevo signage point una vez a cada NanoFarmer conectado, y el más reciente justo después de que te conectes.

Comprueba con exactitud cada prueba declarada antes de que la vea un nodo completo: un signage point real, un plot de plot NFT, una prueba válida que de verdad gana, firmas que coinciden y ninguna repetición.

Servidor de NanoFarmer

Un servicio REST en https://pool.xchpool.org, hecho para la aplicación. Un navegador solo lee sus archivos de versión y manifiestos de actualización públicos, como hace la página de NanoFarmer para sus descargas.

Encuentra tus plot NFT, prepara la creación y la unión pagadas por el pool, y sirve las versiones publicadas y los manifiestos de actualización firmados.

Paga los nuevos plot NFT y las comisiones de unión desde una billetera de fondos propia, aparte de las billeteras del propio pool.

Pool

El mismo XCHPool con el que farmean todos los miembros, con el protocolo de pooling v1 estándar.

Tu farmer se registra por sí mismo y envía sus parciales directamente al pool, no a través del gateway. Los puntos y los pagos funcionan igual que para cualquier otro miembro.

Chain API

La API pública de blockchain de XCHPool, un servicio aparte del servidor de NanoFarmer.

La aplicación la usa para encontrar la moneda de un plot NFT en la blockchain antes de confiar en él y, antes de una unión desde self-pooling, para comprobar si quedan recompensas pendientes en el plot NFT.

Explorador y My Farm

«Abrir My Farm» en la aplicación inicia tu sesión con el enlace de inicio de sesión del pool de tu plot NFT.

Cada instalación de NanoFarmer es un harvester propio en My Farm. Poco después de que el pool acepte su primer parcial, la aplicación le pone el nombre del dispositivo (marca, modelo y sistema; nunca el nombre de tu ordenador ni tu nombre de usuario). Puedes cambiarle el nombre en la aplicación o en My Farm.

La tarjeta de tiempos de respuesta de los parciales muestra lo rápido que responde cada harvester.

Del signage point al parcial o al bloque

Qué ocurre cada 9,4 segundos aproximadamente, con los nombres de mensaje que usa Chia.

Un nuevo signage point

Los nodos completos de XCHPool envían cada signage point al gateway, que lo pasa una vez a cada NanoFarmer conectado.

Comprobado y entregado

El uplink comprueba que los hashes del signage point coinciden con los datos que lo acompañan y luego lo entrega al farmer.

Filtro de plots y búsqueda

El harvester aplica el filtro de plots, busca pruebas en los plots que pasan y devuelve todas las pruebas que encuentra.

Parcial al pool

Una prueba que alcanza tu dificultad del pool se convierte en un parcial. El harvester lo firma con la clave del plot, el farmer añade su propia firma y lo envía directamente al pool por HTTPS. El pool lo comprueba, otorga puntos y registra el tiempo de respuesta.

Declaración

Una prueba lo bastante buena para un bloque se declara. El uplink exige que incluya tu propia dirección de recompensa y pide los datos que hay detrás de los hashes que tendrá que firmar. El gateway comprueba la prueba y que de verdad gana, y luego la pasa a los nodos completos. Una prueba que no gana haría que un nodo completo cortara la conexión del gateway; por eso el gateway comprueba con tanto rigor.

Firma

El nodo completo construye el bloque y pide sus firmas. El uplink solo deja pasar esa solicitud cuando el bloque paga la recompensa de farmer a tu dirección. El harvester firma, y las firmas vuelven por el mismo camino.

Difusión

El nodo completo termina el bloque y lo difunde. La recompensa de farmer (0,125 XCH más las comisiones del bloque) va a tu dirección de recompensa; la parte del pool va a la dirección del pool de tu plot NFT, donde XCHPool la recoge.

Claves y confianza

Tus claves se quedan en tu ordenador. Aquí tienes lo que eso significa en la práctica, qué firma NanoFarmer y qué no, y qué puede y qué no puede hacer la parte de XCHPool.

Dónde vive tu clave

En Ajustes puedes volver a ver las palabras para escribirlas en papel: solo después de confirmarlo, con la frase de contraseña si hay una, sin botón de copiar, y se ocultan de nuevo al cabo de un minuto.

NanoFarmer crea una clave nueva de 24 palabras o importa la tuya y la guarda en su propio llavero de Chia, en su propia carpeta de datos, nunca en la carpeta de claves de la aplicación oficial de Chia.

El farmer lee de ese llavero sus claves de farmer, de inicio de sesión del pool y de propietario del plot NFT. Las palabras nunca salen de tu ordenador y nunca se escriben en un registro.

Una frase de contraseña opcional (de al menos 8 caracteres) cifra el llavero. NanoFarmer la guarda en el almacén de credenciales de tu sistema para que el farmeo arranque solo; donde no lo hay, pide la frase de contraseña después de cada inicio.

Qué firma NanoFarmer y qué rechaza

Valores del pool: la URL del pool, la dirección de destino del pool, el tiempo de bloqueo y el tiempo de retardo están integrados en la aplicación. Se niega a crear, unir o firmar cualquier cosa que difiera, diga lo que diga un servidor.

Gastos del plot NFT: el auxiliar reconstruye cada gasto que propone el servidor a partir del propio código de puzzle de Chia, lo compara con los valores del pool integrados en la aplicación y solo entonces firma. Nunca firma un hash que no pueda reconstruir.

Bloques: el farmer de Chia firma hashes de bloque sin ver lo que representan, y el nodo completo toma la dirección de la recompensa de farmer de un campo sin firmar. Por eso el control de firmas del uplink solo deja pasar una solicitud de firma cuando la acompañan los datos del bloque que hay detrás, estos coinciden con los hashes y pagan la recompensa de farmer a la dirección que configuró NanoFarmer.

Signage points: la clave del plot que firma los signage points también firma bloques. El control solo deja pasar signage points cuyos hashes son los hashes de sus propios datos de origen, que nunca pueden ser datos de bloque, y como mucho a unas pocas veces el ritmo de la propia cadena.

Qué puede y qué no puede hacer la parte de XCHPool

Las reglas de consenso de Chia envían la parte del pool de cada bloque a la dirección del pool de tu plot NFT, como con cualquier pool.

El gateway y los nodos completos de XCHPool podrían retener o estropear un bloque que ganes, como podría hacerlo cualquier nodo completo del que dependas. No pueden hacer que NanoFarmer firme un bloque que pague tu recompensa de farmer a otra persona.

Unos signage points inventados (el protocolo de farmer de Chia no incluye ninguna prueba de tiempo) solo le costarían a tu harvester algunas búsquedas, que el control limita, y nunca producirían una firma que sirva para un bloque.

Qué envía la aplicación

Al explorador: el nombre de tu harvester, formado por la marca, el modelo y el sistema del dispositivo.

Al gateway: los mensajes de farmer de Chia (tus pruebas y firmas), además de la versión de la aplicación y del motor, tu tipo de sistema y un ID de instalación aleatorio.

Al pool: tus parciales y el registro de tu granja, como hace cualquier farmer de Chia.

Al servidor de NanoFarmer: claves públicas para encontrar y crear tu plot NFT, y el plot NFT que unes al pool. Nunca una clave privada y nunca tus palabras.

La interfaz local

La ventana y la línea de comandos se comunican con la aplicación solo en 127.0.0.1, con un token aleatorio que cambia en cada inicio, comprobaciones estrictas de host y de origen y una política de seguridad de contenido estricta, para que las páginas web no puedan usarla.

Plot NFT: creación y unión

NanoFarmer farmea plots de plot NFT con el protocolo de pooling v1. En el paso 2 de la aplicación busca plot NFT en las primeras 20 claves de propietario de tu clave y después usa uno, une uno al pool o crea uno.

Un plot NFT que farmea en XCHPool

Se usa tal cual, una vez que la aplicación ha comprobado en la blockchain que pertenece a tu clave.

Un plot NFT en self-pooling

Un gasto de unión. Primero se reclaman para ti las recompensas que aún esperan en el plot NFT.

Dos gastos: salir ahora y unirse cuando haya pasado el tiempo de bloqueo del otro pool. Firmas los dos a la vez; el servidor envía el segundo cuando toca.

El pool añade las comisiones

Se crea un plot NFT nuevo para ti. Está listo tras 3 confirmaciones, normalmente en unos minutos.

El pool paga 1 mojo y la comisión

La moneda del pool paga 1 mojo a tu propia dirección, y tu clave convierte ese mojo en el launcher del plot NFT en la misma transacción. Así el plot NFT es tuyo desde el principio: la billetera de Chia lo encuentra y puedes dejar XCHPool con las herramientas estándar.

La creación gratuita está limitada a una vez por dirección de internet cada 24 horas y a una vez por clave.

La aplicación escribe el plot NFT en la configuración de pool del motor; después el farmer se registra en el pool por sí solo.

El servidor prepara los gastos; el auxiliar reconstruye cada uno con el propio código de Chia y solo lo firma si termina en XCHPool con tu propia clave de propietario.

La aplicación solo da una unión por hecha cuando la blockchain lo muestra, diga lo que diga el servidor.

Si una unión solo pudiera completarse dentro de más de un día, aproximadamente (por un tiempo de bloqueo largo en el pool anterior), se rechaza antes de firmar nada. La comisión de unión que paga el pool tiene sus propios límites; si se superan, la unión sigue adelante, pero sin la comisión del pool.

Valores del pool integrados en la aplicación

100 bloques, una media hora: la espera cuando un plot NFT deja XCHPool

7 días (604.800 segundos): las recompensas que el pool no recoja en ese tiempo se pueden reclamar de vuelta a tu dirección

Actualizaciones y seguridad de las versiones

La aplicación y el motor se actualizan por separado. Un motor nuevo se descarga mientras farmeas y se activa cuando no hay ninguna tarea de plot NFT en curso; si no arranca, vuelve el motor anterior. Una nueva versión de la aplicación se usa a partir del siguiente inicio de la aplicación, o de inmediato si actualizas desde la aplicación.

La aplicación busca actualizaciones al iniciarse y cada 6 horas, en un manifiesto firmado con una clave Ed25519. Lleva integradas dos claves públicas, así que la clave de firma se puede sustituir.

El manifiesto indica cada archivo con su tamaño y su SHA-256, caduca al cabo de un tiempo, puede fijar una versión mínima y nunca devuelve la aplicación ni el motor a una versión anterior.

Dos canales, estable y beta. Una nueva versión puede llegar primero a una parte de las instalaciones, elegida mediante un hash del ID de instalación aleatorio.

La versión anterior de cada uno se queda en el disco para poder volver atrás.

La clave de firma se guarda sin conexión en una sola máquina, nunca en un servidor ni en el pipeline de compilación.

El archivo de sumas de comprobación de cada versión también está firmado, para las primeras descargas, y la página de NanoFarmer muestra el SHA-256 de cada archivo.

Los programas aún no están firmados con certificados de Apple o Microsoft, así que tu sistema te pide confirmar el primer inicio.

El motor guarda tu llavero y se actualiza sin un clic, así que una sola máquina de compilación no debe bastar para publicar uno. Cada versión del motor se compila dos veces a partir de un commit etiquetado, en dos entornos de compilación limpios y separados. La compilación es reproducible, y la herramienta de firma se niega a firmar si las dos compilaciones no han producido paquetes idénticos byte a byte.

Plataformas y requisitos

Instalador (por usuario) o zip portátil

macOS 15 o posterior, Apple silicon

macOS 15 o posterior, Intel

Linux x86-64, glibc 2.28 o posterior

Linux ARM64, glibc 2.28 o posterior (Raspberry Pi 4 y 5 con un sistema de 64 bits)

tar.gz con script de instalación y servicio de usuario de systemd

Disco

Alrededor de 1 GB libre para la aplicación, el motor, la versión anterior de cada uno y los registros. Sin blockchain.

Red

Puertos locales

El motor usa sus propios puertos junto a los predeterminados de Chia: daemon 55410, farmer 8457, uplink 8454, RPC del farmer 8569, RPC del harvester 8570. Si uno está ocupado, todo el conjunto sube 100.

Temporización y tiempos de respuesta

El farmeo de Chia funciona al ritmo de un reloj. Estas son las cifras que importan.

Los parciales no pasan por el gateway. Solo el signage point llega desde los nodos completos de XCHPool hasta ti a través del gateway; el farmer envía el parcial directamente al pool.

64 signage points en cada sub-slot de 10 minutos

El harvester de Chia avisa cuando buscar en un plot tarda más

desde el signage point hasta la infusión del bloque: la prueba, el bloque y sus firmas deben estar listos antes

el tiempo que el gateway da a tu farmer para devolver las firmas de un bloque

El pool mide el tiempo de respuesta de cada parcial: desde el momento en que el signage point llegó al pool hasta el momento en que llegó tu parcial. Un parcial que llega después del límite de tiempo del pool se rechaza por llegar tarde y no gana nada.

My Farm muestra tus tiempos de respuesta por harvester: la mediana, el percentil 95 y tu margen hasta el límite, con el límite dibujado como una línea roja discontinua. En una granja NanoFarmer el tiempo incluye el reenvío a través del gateway; las causas habituales de respuestas lentas son discos lentos o en reposo, plots en almacenamiento en red y un ordenador sobrecargado.

Lo que NanoFarmer no hace

Sin nodo completo: no descarga, guarda ni sincroniza la blockchain.

Sin billetera: para ver o enviar tus recompensas, importa tus palabras en Sage o en la billetera de Chia.

Sin plots OG: los plots hechos con una clave pública del pool (-p) se omiten, y la aplicación los enumera para que sepas cuáles son.

Sin ploteo: la aplicación explica los plotters y rellena el comando, pero no crea plots por sí misma.

Sin otros pools por ahora: solo farmea plot NFT en XCHPool.

Sin plots por encima de C7, ni plots comprimidos de Gigahorse, NoSSD o DrPlotter: Chia 2.7.4 no puede farmearlos.

Aún sin plots de Proof of Space 2: necesitan Chia 3.0, al que el motor puede pasar con una actualización propia.

Sin redirección de puertos: todas las conexiones salen desde tu ordenador.

Decisiones de diseño

Un WebSocket en lugar del puerto de peers de Chia

Ningún protocolo de farmeo nuevo

El WebSocket lleva byte a byte los propios mensajes del protocolo de farmer de Chia. El farmer es Chia sin modificar y no puede saber que no está hablando con un nodo completo real.

Matemáticas de claves solo en el código de Chia

Chia deriva sus claves a su manera, y otra biblioteca podría calcularlas mal sin que nadie lo notara. Por eso cada derivación de claves y cada firma de Chia las hace el propio código de Chia en el motor; la aplicación en Go no hace ninguna.

Aplicación y motor por separado

La aplicación en Go sigue siendo pequeña, y el motor puede pasar a una nueva versión de Chia a su propio ritmo, como Chia 3.0 antes de la bifurcación de Proof of Space 2.

Preguntas y respuestas

¿Puede XCHPool desviar mi recompensa de bloque?

La recompensa de farmer no: NanoFarmer solo firma un bloque que la pague a tu dirección. La parte del pool va a la dirección del pool de tu plot NFT según las reglas de Chia, como con cualquier pool. Lo que sí podría hacer la parte de XCHPool es retener un bloque que ganes, como podría hacerlo cualquier nodo completo del que dependas.

¿Qué pasa si se cae mi conexión a internet?

El uplink se reconecta solo, con una pausa que crece de 1 a 30 segundos, y el farmer de Chia se reconecta al uplink. Si la conexión se cae entre una prueba ganadora y la solicitud de firma, el gateway envía la solicitud a tu nueva conexión.

¿Puedo usar NanoFarmer en varios ordenadores con una misma clave?

Sí. Cada instalación crea sus propios certificados de harvester, así que cada ordenador aparece en My Farm como un harvester propio, con su propio nombre.

¿Puedo dejar XCHPool?

Sí. El plot NFT es tuyo, y la billetera de Chia puede moverlo a otro pool o a self-pooling. El tiempo de bloqueo de XCHPool es de 100 bloques, una media hora.

¿Por qué la aplicación no envía los parciales a través del gateway?

No le hace falta. Los parciales usan el protocolo de pooling estándar por HTTPS, exactamente igual que en un farmer con nodo completo. Solo se traslada a XCHPool la parte del nodo completo.