A working MVP of the Alien Fleet whitepaper: a permissionless market for LLM inference with end-to-end encrypted requests, voucher payments, and signed receipts. Implemented in Go as two single binaries, with llama.cpp or vLLM as the inference backend. Deviations from the paper are documented in the whitepaper's Appendix A.
Live testnet: dashboard at https://fleet.lethe.gg · gateway
entrypoints http://15.237.243.199:9000 / :9001 · three GPU providers
serving Gemma 4 (12B / 26B-A4B / E4B).
| Doc | What |
|---|---|
| docs/BUILD.md | building everything, configs, running each role |
| docs/PROVIDER.md | connect your GPU to the testnet and earn |
| docs/DEPLOYMENT.md | control-plane deployment runbook (the live AWS setup) |
| demo/aws/CLIENT.md | run a client against the live testnet |
| whitepaper | the protocol; Appendix A = MVP deviations |
┌────────────────────────────────────────────┐
OpenAI client │ chain-sim (fleetd chain) — stands in for │
(any SDK / curl) │ the L2: registry, PaymentHub, faucet, │
│ plain OpenAI HTTP │ settlement, burns, bonds │
▼ └─────▲──────────────▲───────────────▲───────┘
┌─────────────┐ HPKE-sealed ┌────┴─────┐ ┌────┴─────┐ │ register/
│ fleet-proxy │ envelopes │ gateway │ │ gateway │ │ beacon/settle
│ session key, ├───────────────►│ gw-east │ │ gw-west │ │
│ channel, │ ciphertext └────┬─────┘ └────┬─────┘ │
│ receipts │ only │ relay │ relay │
└─────────────┘ ┌────▼─────┐ ┌─────▼────┐ ┌───────┴──┐
│ node-a │ │ node-b │ │ node-c │
│ GPU 0 │ │ GPU 1+2 │ │ GPU 3 │
│ gemma4 │ │ 26B-A4B │ │ E4B │
│ (12B) │ │ (split) │ │ │
└──────────┘ └──────────┘ └──────────┘
llama.cpp/vLLM, CUDA, per-node pinned
- §7 wire protocol: deterministic-CBOR envelopes, RFC 9180 HPKE (X25519 / HKDF-SHA256 / ChaCha20-Poly1305), pad-to-bucket, encrypted response frame stream, signed receipts countersigned by the client.
- Payments (AX2): faucet → payment channel → per-request signed vouchers (checked by the node before decryption) → settlement: base fee burned, tip to the node, earned-escrow bond (§8.1) held first.
- Permissionless join (§8.1): any node registers, passes SHADOW, serves. Alias→bundle binding is TOFU (AX5); rebinding refused.
- Identity (§13, Agent ID): the faucet trial credit is gated per
verified owner via RFC 9449 DPoP + Alien SSO
at+jwt; the ledger sees only a derived nullifier.-dev-faucetallows Phase-0 identityless claims. - Model & capacity discovery: exact artifact names + GGUF metadata
on-chain;
GET /v1/registry/capacity(proxy:/fleet/capacity) reports nodes, slots, in-flight load, and TPS/TTFT measured from settled receipts. - Decentralized topology: gateways are stateless relays seeing ciphertext only; run any number. The chain-sim is one process simulating the L2 — contracts API-compatible with §14.
make build llama models # Go binaries + llama.cpp (CUDA) + Gemma 4 bundles
# launch a local testnet: chain + 2 gateways + 3 GPU-pinned nodes
FRESH=1 ./demo/testnet.sh
# start the proxy and run the client demo (Agent ID optional)
AGENT_ID_CLI=~/agent-id/plugins/agent-id-auth/bin/cli.mjs ./demo/demo.sh
# point any OpenAI client at the proxy
curl http://127.0.0.1:8080/v1/chat/completions -H 'Content-Type: application/json' \
-d '{"model":"gemma4","messages":[{"role":"user","content":"hello"}],"max_tokens":200}'To join the live testnet as a provider instead, see docs/PROVIDER.md; as a client, see demo/aws/CLIENT.md.
fleet-proxy speaks plain OpenAI HTTP (/v1/chat/completions incl. SSE
streaming, /v1/models) and handles node selection (P2C ∝ S²/price),
sealing, payment, and receipt verification. Wallet/receipt view:
GET /fleet/status; network view: GET /fleet/capacity; chain view:
GET <gateway>/v1/ledger/stats.
cmd/fleetd one binary: `chain` | `gateway` | `node`
cmd/fleet-proxy one binary: local OpenAI-compatible proxy
internal/wire envelopes, HPKE, vouchers, receipts, frames (§7)
internal/ledger chain-sim: accounts, channels, settlement, burns (§12)
internal/gateway registry, capacity, relay, chain API (§8, §11, §14)
internal/node Class O node: keys, backend forwarding, receipts (§6.5, §8)
internal/proxy client engine: funding, sealing, verification (§11.1)
internal/identity Agent ID DPoP verifier + nullifier (§13)
internal/llama llama-server child process manager + GGUF metadata
internal/vllm vLLM child process manager
demo/ testnet launcher, node configs, E2E demo script
Plaintext exists only in the client process and the serving node (Class O testnet); gateways and the chain see ciphertext, commitments, and receipts — and every paid token is accounted for by a receipt that both the node and the client signed.
