Ejecutar un worker
Un worker es un plugin de DeepSeek Harness que comparte los modelos ya instalados en esta máquina, al precio que tú fijes. Ejecuta Ollama localmente; no hay clave de API en la nube ni factura de inferencia por consumo.
Requisitos
- DeepSeek Harness
0.2.2-rc.1o posterior, y Node 22+. - Ollama con al menos un modelo descargado
(
ollama pull qwen3:8b, por ejemplo). - Una billetera en Base Sepolia con un poco de ETH de prueba para el gas. El plugin genera una por ti.
No hay token GenKaKu ni staking. Ganas USDC; gastas ETH en gas.
Instalación
En DeepSeek Harness abre Plugins → Añadir plugin y pega:
@genkaku/dsh-worker-plugin
Deja la fuente de instalación en Registro predeterminado (registry.npmjs.org),
confirma y reinicia DeepSeek Harness. Lo mismo desde una shell:
dsh plugin add @genkaku/dsh-worker-plugin
Aparece una entrada GenKaKu worker en la barra lateral.
Primer arranque
El plugin busca Ollama en http://127.0.0.1:11434 y arranca ollama serve por
su cuenta si está instalado pero no en ejecución. La primera sección del panel
muestra si Ollama está funcionando y cuántos modelos encontró.
Cuando el tablón de ofertas está vacío, el plugin lista todos los modelos locales
a defaultPricePerHour, que es 0 por defecto. Es algo deliberado: una máquina
cuyo dueño no ha fijado un precio no debería poner precio a su hardware.
Fijar un precio
Abre Modelos ofrecidos en el panel y asigna a cada modelo un precio por hora
en USDC, como entero con 6 decimales de precisión (así, 250000 es
0.25 USDC/hour). Déjalo en 0 para servir el modelo gratis.
- Un modelo de pago abre un escrow en USDC por sesión y liquida con un recibo firmado.
- Un modelo gratuito se sirve sin tocar la cadena: sin escrow, sin gas, sin transacción.
El cobro se acumula por minuto iniciado de una sesión, así que un trabajo de dos minutos paga dos minutos a la tarifa por hora, no una hora completa.
Publicar en la cadena (opcional)
El interruptor Directorio escribe tu peer ID y tu localizador en
WorkerRegistry, para que los usuarios puedan encontrarte sin conocer tu
dirección de antemano.
Está desactivado por defecto, y solo se activa cuando esta máquina tiene una dirección alcanzable globalmente. Un listado cuya dirección nadie puede marcar es peor que no tener listado. Publicar cuesta una transacción, y un localizador es permanente una vez en la cadena: un nombre de host o una IP escritos ahí no se pueden retirar, solo sustituir.
Los pares en la misma LAN pueden conectarse sin una entrada en el registro, usando una multiaddr manual en el plugin de usuario.
Billetera y pagos
La sección Billetera muestra:
- la dirección del worker,
- los saldos de ETH (gas) y USDC (ganancias),
- sin reclamar en escrow: ingresos liquidados que ya son tuyos pero siguen
dentro de
JobEscrow, - un botón Reclamar que mueve ese saldo a la billetera.
Reclamar es una transacción, así que la billetera necesita un poco de ETH. El USDC es lo que el worker gana, no lo que gasta.
La clave privada se guarda en texto plano, con permisos 0600, en
~/.dsh/genkaku/genkaku.keys.json. Firma recibos y vincula la entrada del
directorio en la cadena: haz una copia de seguridad antes de mover la máquina a
otro disco, y trata a cualquiera que pueda leer ese archivo como dueño de la
billetera.
Niveles de modelo
El mercado etiqueta cada modelo a partir de las capacidades que informa Ollama y del número de parámetros:
| Nivel | Significado |
|---|---|
agent | Tiene tools y al menos 9B de parámetros: apto para un bucle de agente |
light | Tiene tools pero es pequeño o de tamaño desconocido: las llamadas a herramientas pueden ser poco fiables |
chat | Sin capacidad de tools: no apto para agentes |
El nivel es una etiqueta, nunca un filtro. Nada te impide listar un modelo chat;
el usuario simplemente ve que no puede mover un agente.
Los modelos de razonamiento se ejecutan con think: false por defecto, para que
una sola petición no gaste su presupuesto en razonamiento oculto. Define
GENKAKU_OLLAMA_THINK=1 antes de arrancar DeepSeek Harness para mantener el
comportamiento predeterminado de Ollama.
Puertos y red
- libp2p escucha en
/ip4/0.0.0.0/tcp/4001y/ip6/::/tcp/4002por defecto. Abre los puertos TCP que configures si quieres conexiones directas. - El servidor de estado local se enlaza al primer puerto libre en 47821–47826. Dos perfiles de DSH en una misma máquina necesitan cada uno su propio puerto; si ves "Loading worker status…" para siempre, probablemente otro perfil ocupa ese rango.
- En Windows, permite que Node pase por el firewall la primera vez que arranca el worker.
Solución de problemas
No se detecta Ollama. Ejecuta ollama serve una vez, o pulsa Start Ollama
en el panel. Si Ollama está en otro sitio, cambia ollamaHost en la configuración
del plugin.
El interruptor Directorio aparece en gris. La máquina no tiene una dirección alcanzable globalmente. Los pares en la misma LAN aún pueden conectarse por multiaddr; si no, la sesión tendrá que ir a través del relay semilla.
Se sirvió una sesión pero el saldo no se movió. La liquidación acredita
accrued dentro del contrato. Pulsa Reclamar; entonces la cifra aparece como
el saldo de USDC de la billetera.
¿No hay nada listado en npm? Comprueba que estás en registry.npmjs.org y no
en un espejo que aún no se ha sincronizado.