Credentialless GPU Sharing
Tu amigo tiene GPU. Tú necesitas un modelo. Él genera un invite. Tú escaneas un QR. Sin compartir API keys. Sin configurar servidores.
El problema
Quieres usar un LLM pero no tienes GPU. Tu compañero tiene una máquina potente con llama.cpp en ejecución. ¿Cómo usas su modelo?
- Compartir API keys → peligroso, difícil de revocar, sin rastro de auditoría
- Montar un servidor Ollama / vLLM → Docker, reglas de firewall, configuración de endpoint, latencia
- Usar un proxy → otro servicio que ejecutar, otro punto de fallo
Todas las opciones existentes exponen credenciales o requieren trabajo de infraestructura. Tiene que haber una forma mejor.
La forma QueryMT
La red mesh de QueryMT permite que los nodos compartan proveedores LLM sin compartir API keys. El host ejecuta sus proveedores normalmente. El guest se une con un invite token firmado. Por la red viajan mensajes de chat; las credenciales nunca.
qmtcode --mesh \ --mesh-invite="Team GPU" \ --invite-uses=5Genera código QR + URL de invite.
La API key se queda aquí.
qmtcode --mesh-join=TOKENEscanea el QR o pega la URL.
El agente descubre proveedores automáticamente vía DHT.
No necesita API key.
Modelo de seguridad
Esta es la innovación clave. Esto es exactamente lo que ocurre a nivel de protocolo:
ProviderHostActorEjecuta el LLM localmente. Guarda la API key.
API Key: bloqueada aquí
Invite: grant firmado con ed25519
Uso: registrado por invite
MeshChatProviderProxifica peticiones de chat al host.
API Key: ninguna
Token: verificado offline (sin red)
Descubrimiento: DHT auto-find
El agente del guest envía un ChatMessage al host. El host lo ejecuta con su proveedor local (API key incluida). La respuesta vuelve. En ningún momento el guest ve, toca o necesita la API key. El token se verifica offline con firmas ed25519, sin llamada a un servidor central.
Ciclo de vida del invite
qmtcode --mesh --mesh-invite="Team GPU" --invite-uses=5 --invite-ttl=7dEsto crea un grant firmado con ed25519 con 5 usos permitidos y expiración en 7 días.
• Un código QR (escanear con el teléfono)
• Una URL:
qmt://mesh/join/BASE64TOKEN• Comparte cualquiera de los dos con el guest
qmtcode --mesh-join=qmt://mesh/join/BASE64TOKENEl token se verifica offline con la clave pública del host. Sin llamada de red a un servidor central.
llama_cpp vía Kademlia DHT. El routing ocurre de forma transparente: la config del guest no necesita indicar la dirección del host. Simplemente funciona.Cómo funciona el descubrimiento
QueryMT usa libp2p para la capa mesh con dos modos de descubrimiento:
- mDNS (LAN): Descubre peers automáticamente en la misma red. Cero config. Funciona en oficinas, casas y cafeterías.
- Kademlia DHT (internet): Descubre peers entre redes. Los invite tokens incluyen el peer ID del host. La DHT lo resuelve a una dirección.
El guest no necesita conocer la IP ni el puerto del host. Solo necesita el invite token. El mesh se encarga del routing.
Config del guest
El guest no necesita una config especial. Solo necesita auto_fallback = true en su configuración mesh. Cuando el agente del guest necesita un proveedor que no está localmente, consulta el mesh.
# Guest: just join and use qmtcode --mesh-join=qmt://mesh/join/BASE64TOKEN # That's it. The agent discovers remote providers automatically. # No config file needed for the guest.
Funciones clave
- ProviderHostActor / MeshChatProvider — el host ejecuta LLMs, el guest proxifica de forma transparente
- Grants de invite firmados — firmas ed25519, verificación offline
- Codificación QR — comparte invites en persona con un escaneo
- Autodescubrimiento DHT — sin configuración manual de endpoint
- Límites de uso + TTL — cada invite tiene máximo de usos y expiración
- Revocación por invite — borra un invite sin afectar a los demás
- Aislamiento de credenciales — las API keys nunca salen de la máquina host
Pruébalo tú mismo
# Terminal 1: Host (machine with GPU) cargo run --example qmtcode --features dashboard -- \ --mesh --mesh-invite="Demo" --invite-uses=5 --dashboard # Terminal 2: Guest (any machine on same network) cargo run --example qmtcode --features dashboard -- \ --mesh-join=qmt://mesh/join/<TOKEN_FROM_HOST> --dashboard # Guest's dashboard will show the host's llama_cpp provider # Ask the guest's agent anything — it routes to the host's model