Summary
Explore how mesh-llm could use lambdaclass/commitllm to add optional verifiable inference to the mesh.
The key framing is that commitllm is not a replacement for mesh-llm's routing/discovery/runtime model. It is a provenance layer for inference: serve normally, return a compact commitment/receipt, and later answer audit challenges that a verifier can check against the claimed weights, config, transcript state, and decode policy.
Why this is interesting
mesh-llm already solves distributed placement, routing, discovery, and client access across a peer mesh. commitllm could add a trust layer on top for cases where clients need evidence that a remote node actually ran the claimed model and serving policy.
Potential value:
- auditable inference for untrusted or mixed-operator meshes
- stronger model-identity guarantees for benchmarks/evals
- compliance-oriented or premium "verified inference" mode
- groundwork for receipts/challenges in marketplace-style or third-party compute settings
Current fit
There is a strong conceptual fit, but the current implementations do not line up directly.
mesh-llm today:
- routes requests through a QUIC mesh
- uses
llama.cpp (llama-server + rpc-server) as the inference backend
- assumes the inference layer is mostly unmodified and reachable over HTTP/TCP tunnels
commitllm today:
- is implemented around
vLLM, not llama.cpp
- relies on runtime instrumentation/capture hooks in the serving path
- returns a response plus a commitment/receipt and supports later audit openings
- still has
llama.cpp plugin, OpenAI-compatible proxy, Streaming / SSE, and several production-serving pieces on its roadmap
This means commitllm is not currently a drop-in addition to the existing llama.cpp mesh path.
Recommended direction
Phase 1: optional verified backend
Add support for a new backend class in mesh-llm for verified inference, likely something like verified-vllm.
Scope:
- keep
mesh-llm as the network/routing/control plane
- run verified nodes as an alternate backend rather than modifying the current
llama.cpp path
- likely constrain verified nodes to solo serving initially rather than tensor-split serving
- allow the mesh to advertise that a given model/backend supports receipts and audits
- preserve current behavior for normal
llama.cpp nodes
Initial API shape:
- inference response includes
request_id and commitment/receipt metadata when the selected backend is verified
- add an audit endpoint or management endpoint that proxies audit requests to the serving backend
- expose verification capability in status/UI so clients know which nodes/models are auditable
Phase 2: verifier and UX surface
Add a verifier-facing flow to mesh-llm:
- local CLI or plugin command to verify an audit proof from a receipt/challenge
- console/API support for showing verification capability and challenge/audit status
- optional receipt persistence and lookup by request ID
Phase 3: deeper native integration
Longer term, investigate native llama.cpp capture rather than treating verified inference as an alternate backend.
That would likely require:
- retained-state capture from
llama.cpp / rpc-server
- canonical sampler parity
- GGUF/ggml model identity binding compatible with the verifier story
- a protocol for receipts/audits in tensor-split or multi-node execution
This is a research/runtime project, not an adapter.
Main technical questions
- How should backend capability be modeled in node status, routing, and model advertisements?
- Should verified inference be a per-node backend choice, a per-model capability, or both?
- What is the smallest stable API extension for returning receipt metadata without breaking existing clients?
- Where should audit requests live: inference API, management API, or plugin surface?
- Do we want the first version to support only solo verified nodes?
- What is the long-term plan for
llama.cpp compatibility vs running a parallel verified backend?
Implementation notes
A reasonable first milestone is not to modify the current llama.cpp serving path.
Instead:
- add backend abstraction where needed so a model can be served by either
llama.cpp or a verified backend
- route verified requests through the existing mesh proxy/control plane
- return receipt metadata to clients when present
- add an audit passthrough endpoint
- keep tensor-split and native
llama.cpp verification out of scope for the first cut
Acceptance criteria for the first milestone
- a node can advertise a verified backend capability for at least one model
- routed inference to that model returns normal output plus receipt metadata
- a client can request an audit opening for a prior response using the returned request ID
- current non-verified
llama.cpp flows are unchanged
- status/API/UI surfaces make verified capability discoverable
References
mesh-llm: QUIC mesh + llama.cpp routing/control plane
commitllm: commit-and-audit provenance layer for open-weight inference
commitllm roadmap items worth tracking: llama.cpp plugin, OpenAI-compatible proxy, Streaming / SSE
Summary
Explore how
mesh-llmcould use lambdaclass/commitllm to add optional verifiable inference to the mesh.The key framing is that
commitllmis not a replacement formesh-llm's routing/discovery/runtime model. It is a provenance layer for inference: serve normally, return a compact commitment/receipt, and later answer audit challenges that a verifier can check against the claimed weights, config, transcript state, and decode policy.Why this is interesting
mesh-llmalready solves distributed placement, routing, discovery, and client access across a peer mesh.commitllmcould add a trust layer on top for cases where clients need evidence that a remote node actually ran the claimed model and serving policy.Potential value:
Current fit
There is a strong conceptual fit, but the current implementations do not line up directly.
mesh-llmtoday:llama.cpp(llama-server+rpc-server) as the inference backendcommitllmtoday:vLLM, notllama.cppllama.cpp plugin,OpenAI-compatible proxy,Streaming / SSE, and several production-serving pieces on its roadmapThis means
commitllmis not currently a drop-in addition to the existingllama.cppmesh path.Recommended direction
Phase 1: optional verified backend
Add support for a new backend class in
mesh-llmfor verified inference, likely something likeverified-vllm.Scope:
mesh-llmas the network/routing/control planellama.cpppathllama.cppnodesInitial API shape:
request_idandcommitment/receipt metadata when the selected backend is verifiedPhase 2: verifier and UX surface
Add a verifier-facing flow to
mesh-llm:Phase 3: deeper native integration
Longer term, investigate native
llama.cppcapture rather than treating verified inference as an alternate backend.That would likely require:
llama.cpp/rpc-serverThis is a research/runtime project, not an adapter.
Main technical questions
llama.cppcompatibility vs running a parallel verified backend?Implementation notes
A reasonable first milestone is not to modify the current
llama.cppserving path.Instead:
llama.cppor a verified backendllama.cppverification out of scope for the first cutAcceptance criteria for the first milestone
llama.cppflows are unchangedReferences
mesh-llm: QUIC mesh +llama.cpprouting/control planecommitllm: commit-and-audit provenance layer for open-weight inferencecommitllmroadmap items worth tracking:llama.cpp plugin,OpenAI-compatible proxy,Streaming / SSE