Credentialless GPU Sharing
Seu amigo tem GPU. Você precisa de um modelo. Ele gera um invite. Você escaneia um QR. Sem compartilhar API keys. Sem configurar servidores.
O problema
Você quer usar um LLM, mas não tem GPU. Seu colega tem uma máquina potente com llama.cpp em execução. Como usar o modelo dele?
- Compartilhar API keys → perigoso, difícil de revogar, sem rastro de auditoria
- Subir um servidor Ollama / vLLM → Docker, regras de firewall, configuração de endpoint, latência
- Usar um proxy → mais um serviço para executar, mais um ponto de falha
Todas as opções existentes expõem credenciais ou exigem trabalho de infraestrutura. Tem que haver uma forma melhor.
O jeito QueryMT
A rede mesh do QueryMT permite que os nós compartilhem provedores LLM sem compartilhar API keys. O host executa seus provedores normalmente. O guest entra com um invite token assinado. Pela rede trafegam mensagens de chat; credenciais, nunca.
qmtcode --mesh \ --mesh-invite="Team GPU" \ --invite-uses=5Gera código QR + URL de invite.
A API key fica aqui.
qmtcode --mesh-join=TOKENEscaneie o QR ou cole a URL.
O agente descobre provedores automaticamente via DHT.
Não precisa de API key.
Modelo de segurança
Esta é a inovação central. Isto é exatamente o que acontece no nível do protocolo:
ProviderHostActorExecuta o LLM localmente. Guarda a API key.
API Key: bloqueada aqui
Invite: grant assinado com ed25519
Uso: registrado por invite
MeshChatProviderProxifica requisições de chat para o host.
API Key: nenhuma
Token: verificado offline (sem rede)
Descoberta: DHT auto-find
O agente do guest envia um ChatMessage ao host. O host executa com seu provedor local (API key incluída). A resposta volta. Em nenhum momento o guest vê, toca ou precisa da API key. O token é verificado offline com assinaturas ed25519, sem chamada a um servidor central.
Ciclo de vida do invite
qmtcode --mesh --mesh-invite="Team GPU" --invite-uses=5 --invite-ttl=7dIsso cria um grant assinado com ed25519 com 5 usos permitidos e expiração em 7 dias.
• Um código QR (escanear com o telefone)
• Uma URL:
qmt://mesh/join/BASE64TOKEN• Compartilhe qualquer um dos dois com o guest
qmtcode --mesh-join=qmt://mesh/join/BASE64TOKENO token é verificado offline com a chave pública do host. Sem chamada de rede a um servidor central.
llama_cpp via Kademlia DHT. O routing acontece de forma transparente: a config do guest não precisa indicar o endereço do host. Simplesmente funciona.Como funciona a descoberta
QueryMT usa libp2p para a camada mesh com dois modos de descoberta:
- mDNS (LAN): Descobre peers automaticamente na mesma rede. Zero config. Funciona em escritórios, casas e cafés.
- Kademlia DHT (internet): Descobre peers entre redes. Os invite tokens incluem o peer ID do host. A DHT resolve isso para um endereço.
O guest não precisa conhecer o IP nem a porta do host. Só precisa do invite token. O mesh cuida do routing.
Config do guest
O guest não precisa de uma config especial. Só precisa de auto_fallback = true na sua configuração mesh. Quando o agente do guest precisa de um provedor que não está localmente, consulta o 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.
Recursos-chave
- ProviderHostActor / MeshChatProvider — o host executa LLMs, o guest proxifica de forma transparente
- Grants de invite assinados — assinaturas ed25519, verificação offline
- Codificação QR — compartilha invites presencialmente com uma leitura
- Autodescoberta DHT — sem configuração manual de endpoint
- Limites de uso + TTL — cada invite tem máximo de usos e expiração
- Revogação por invite — apague um invite sem afetar os demais
- Isolamento de credenciais — as API keys nunca saem da máquina host
Teste você mesmo
# 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