QALS Wiki · the qalarc network⌂ qalarc.com/projects/qals
generated 2026-09-16 · qalcode autonomous research

Remote providers, stakes, slashing, bench oracle · 07_compute_marketplace/COMPUTE_MARKET_V2.md

Compute Market v2 — remote providers, stakes, slashing, reputation

Date: 2026-09-09/10 · Status: shipped & tested (30/30) · Supersedes: the v1 in-process design in P2P_COMPUTE_MARKET.md §1 · Run: python3 qmarket/qmarket.py + python3 qmarket/provider.py run · Prove: bash qmarket/test_market_v2.sh


What v2 added over v1

Capability v1 v2
Provider execution in-process adapters only remote provider agents — standalone provider.py HTTP servers (:8850+) advertising POST /execute; the gateway routes jobs to them
Trust reputation number only stakes (providers post stake via their own loopd agent, min 500c)
Disputes none POST /disputetwo verification paths: (a) output-vs-anchor integrity (the anchored output hash vs what the provider claims), (b) deterministic recompute for reproducible jobs
Enforcement none slashing: proven fault → 50% of stake to the FloorVault bucket, 50% refund to the buyer, earnings clawback on the disputed job, reputation −25, delist below 40
Reputation flat 100 dynamic: +1 per clean settle, −25 per proven dispute, delisting gate
Pricing signal provider's word bench.py price-floor oracle (sha256-iter/s CPU benchmark + optional Ollama tokens/s → suggested cents/unit by kind)

The v2 flow (as proven by the suite)

provider.py register --name local-media-studio --kind render --price 12 --stake 5000
        │ (registers via gateway; stake agent funded)
        ▼
buyer POST /jobs {buyer, provider_id, kind, spec, units}
        │ hold ~115% (loopd) ──► job routed to provider's /execute
        ▼
provider attests {frames|tokens, gpu_seconds, outputs}
        │ settle actual = metered × price (clamped to hold) — 0% platform take (founder policy 2026-09-12: the buy-spread is the margin)
        ▼
SETTLED ──► earnings accrue (redeemable AU$1:1) ──► output anchored on-chain
        │
        ├── DISPUTE (doctored output): anchor-hash mismatch proven
        │      → SLASH 50/50 (FloorVault / buyer) · clawback · rep −25
        │
        └── DISPUTE (cheat-mode provider): recompute mismatch proven
               → repeat offences → reputation < 40 → DELISTED (stake consumed)
clean jobs ──► reputation recovers (+1/settle)

Why this matters (the moat, restated)

The 2026 competitor scan (COMPUTE_MARKET_COMPETITORS_2026.md) found nobody ties stake→slash→delist to output correctness (Aethir verifies hardware, Golem recompute is CPU-only, Bittensor scores emissions) — and nobody pays sellers in a stable, redeemable unit. v2 is that moat in working code.

Honest limits (v2)

v3 candidates (queued)

Second-provider dispute sampling · on-chain escrow via qal_credit holds · futures/capacity locks (ComputeFuture) · JobBundle batching for micro-jobs · RunPod adapter (goetica, see GOETICA_RUNPOD_INTEGRATION.mdrunpod_train.py wrapped as kind lora-training, ~272c/GPU-hr).