Phase 6 — The Expert Coverage Market (M3)

Weak nodes see which (layer, expert-range) is scarcest and highest-reward, and fill it themselves — the proven layer market, regrained.

Kvasir's layer-shard market — demand map, max-reward self-enrollment, partial download, per-node rewards — was already device-verified. M3 re-parameterizes the same mechanism at the (layer, expert-range) grain, so coverage self-heals toward the most under-replicated, highest-reward expert ranges.

Verified · API

Scarcity aggregation → max-reward range assignment

Three workers register on layer 0: A = [0,128), B = [128,256), C = [0,128) as a second replica, with target_replicas = 2:

layerexpertsreplicasscarcity
0[0, 128)20.0 (target met)
0[128, 256)10.5 (under target)
A market board of expert-range tiles with scarcity heat and volunteering devices

volunteer(max_experts=64) → clips the scarcest range to the node's budget.

POST /api/expert-volunteer {"max_experts": 64}
  → {layer: 0, experts: [128, 192], scarcity: 0.5, replicas: 1, target: 2}
Done · pure Python (hub)

A supply/demand market at expert grain

  • POST /api/expert-coverage — workers heartbeat their (layer, expert-range) holdings.
  • GET /api/expert-demand — per-expert replica aggregation → contiguous expert-range segments with scarcity scores.
  • POST /api/expert-volunteer — assigns the scarcest range clipped to the node's budget.
  • The existing layer market (self-enroll · partial download · rewards) re-parameterized to (layer, expert-range).

What follows in M4: batched dispatch for concurrent requests plus a hot-expert cache — tokens/s proportional to worker count — and replica routing (nearest/fastest worker) with churn fallback.