open-standards/mesh
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science e5a1b96e7a
Some checks failed
standards workspaces build + test / aac-rs (push) Successful in 1m47s
standards workspaces build + test / eoc-rs (push) Successful in 2m0s
standards workspaces build + test / jcp-rs (push) Successful in 1m25s
standards workspaces build + test / joule-code-rs (push) Successful in 2m11s
standards workspaces build + test / proof-rs (push) Successful in 1m13s
standards workspaces build + test / sandbox-rs (push) Successful in 2m21s
standards workspaces build + test / smart-byte-rs (push) Successful in 2m32s
standards workspaces build + test / jouleclaw-rs (push) Failing after 8m2s
standards workspaces build + test / joulecontract-rs (push) Successful in 1m14s
standards workspaces build + test / map-rs (push) Successful in 1m4s
standards workspaces build + test / mesh-rs (push) Successful in 45s
standards workspaces build + test / openpay (push) Successful in 3m45s
standards workspaces build + test / arl-rs (push) Successful in 2m29s
standards workspaces build + test / joule-ui-rs (push) Successful in 2m27s
standards workspaces build + test / jouledesk-rs (push) Successful in 2m23s
standards workspaces build + test / joulehook-rs (push) Successful in 2m7s
standards workspaces build + test / sense-rs (push) Successful in 2m3s
mesh: hold the reference implementation to its published conformance pack
conformance/v1 says a conforming implementation "MUST reproduce" its bytes, and
gen_vectors writes it, but nothing read it back. The existing tests re-run
reference_scenario() and compare it against the crate's own constants, so they
check the implementation against itself.

That gap is measured, not assumed. Changing the reference serve (SPAN_UJ
3_200_000 -> 3_200_001) leaves all four existing end_to_end tests green: both
sides of every comparison move together. A receipt-shape change would have
left this pack silently stale -- which is what happened to joulehook's.

tests/pack.rs answers two separate questions:

  - Drift: the reference implementation still emits exactly the published
    envelope.hex, signed_core.hex, receipt.json and meta.json, compared in the
    form gen_vectors writes them. Under the change above, this and the
    pinned-outcome test go red.

  - The README's cross-language check, done the way a third party would: from the
    pack files and RFC 9052 alone, with a hand-built CBOR encoder and no mesh COSE
    code, build Sig_structure ["Signature1", {1:-8, 4:steward}, h'', signed_core],
    verify the published signature under meta.json's key, and re-sign with the
    documented seed to rebuild the 663-byte envelope byte for byte. It does. So
    the claim holds from the RFC, not merely from the implementation agreeing
    with itself. These pack-only tests correctly stay green under the change
    above, since the pack remains self-consistent.

Plus negatives -- a single flipped payload byte and a stranger's key must both
fail verification -- and the pinned outcome read from the published receipt,
with the wedge metric recomputed from measured_uj / tokens_accepted rather than
trusted as a number.

The pack is current: a fresh regeneration into a scratch directory matched all
four files byte for byte, so nothing needed refreshing.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-09-17 07:45:47 -04:00
..
conformance/v1 wai.generate.spectral: extend the lexicon to 370 words (data-only, pin unchanged) 2026-06-27 05:33:47 -04:00
mesh-rs mesh: hold the reference implementation to its published conformance pack 2026-09-17 07:45:47 -04:00
CONTRIBUTING.md wai.generate.spectral: extend the lexicon to 370 words (data-only, pin unchanged) 2026-06-27 05:33:47 -04:00
LICENSE wai.generate.spectral: extend the lexicon to 370 words (data-only, pin unchanged) 2026-06-27 05:33:47 -04:00
LICENSE-SPEC wai.generate.spectral: extend the lexicon to 370 words (data-only, pin unchanged) 2026-06-27 05:33:47 -04:00
README.md wai.generate.spectral: extend the lexicon to 370 words (data-only, pin unchanged) 2026-06-27 05:33:47 -04:00
SPEC.md wai.generate.spectral: extend the lexicon to 370 words (data-only, pin unchanged) 2026-06-27 05:33:47 -04:00

Mesh

Energy-accounted inference serving & routing. One of the Transaction Science open standards.

Mesh treats every inference as a metered transaction. A request declares a joule ceiling and a fidelity floor; the mesh routes it to the cheapest-sufficient model on the cheapest-sufficient backend, serves it under an energy meter, and seals a receipt whose headline figure is microjoules per accepted output token — measured at the meter, not estimated from a price list.

The serving shelf reports dollars per token and tokens per second. Mesh reports the number that is physical, comparable across hardware, and impossible to inflate: the joule.

The shape

ServeRequest ──▶ authorise (JCP grant) ──▶ route (cheapest-sufficient)
                                              │
                                              ▼
                          meter ◀── serve (engine) ──▶ tokens
                                              │
                                              ▼
                         sealed JCR-1 receipt: µJ / accepted token

Four roles — caller, router, engine, steward — and four phases per serve: authorise, route, meter, seal. See SPEC.md §2.

The reference workspace

mesh-rs/ is a pure-Rust reference implementation:

Crate What it is
mesh-schema wire types — ServeRequest, Fidelity, two-part Energy, RouteDecision, ServeOutcome
mesh-router energy-weighted cheapest-sufficient routing with a full candidate audit
mesh-engine the ServingEngine interface + a deterministic, weights-free ReferenceEngine
mesh-engine-gguf a real backend (behind gguf): wraps the family's pure-Rust GGUF/Metal inference substrate so the mesh routes and meters actual model tokens
mesh-meter the meter window; an always-available estimator + an optional bridge to the family hardware meter (RAPL / NVML / Apple) behind hw-meter
mesh-receipt the mesh/1 receipt, JCR-1 sealing (det-CBOR + COSE_Sign1), and a hash-chained log
mesh-core the orchestration that ties authorise → route → meter → seal together
mesh-conformance the deterministic reference scenario, its checks, and the gen-vectors bin

Mesh rides on JCP (a serve request is authorised by a JCP grant; receipts seal in JCR-1), dispatches to runtimes such as JouleClaw, and routes across compute described by EOC and isolated by Sandbox. It introduces no new cryptography (see SPEC.md §9).

Run it

cd mesh-rs

# all crates green
cargo test --workspace
cargo clippy --workspace --all-targets

# end-to-end: mint a JCP grant, serve, print the sealed receipt
cargo run -p mesh-core --example demo

# on Linux/RAPL or a CUDA/NVML box, meter real silicon (HwShunt provenance)
cargo run -p mesh-core --example demo --features hw-meter-rapl

# regenerate the published conformance vectors
cargo run -p mesh-conformance --bin gen-vectors -- ../conformance/v1

# serve a REAL model end-to-end through Mesh (Falcon-H1 0.5B), seal the receipt
cargo run --release -p mesh-engine-gguf --features gguf --bin serve_falcon -- \
    /path/to/falcon-h1-0.5b-instruct 12 "The capital of France is"

The serve_falcon run demonstrates the whole standard on real model tokens: a JCP grant authorises each request (an underfunded grant is refused before any decode runs), the cheapest-sufficient backend is chosen, the decode is metered, and a mesh/1 receipt is sealed and hash-chained across the session — e.g. prompt "The capital of France is" → " Paris. It is known for its historical landmarks", prompt "Photosynthesis is the process by which" → " plants convert sunlight into chemical energy in the form of", with both seals verifying and the chain's prev-links intact.

The demo prints the route (every backend weighed, with the reason each was kept or rejected), the honest energy provenance, and the wedge metric — then verifies the sealed envelope under the steward key.

Status

v0.1.0-draft.1. Reference workspace builds and tests green (mesh-schema, mesh-router, mesh-engine, mesh-meter, mesh-receipt, mesh-core, mesh-conformance); cargo clippy --all-targets warning-free; published vectors in conformance/v1/. The reference engine is deterministic and weights-free; production backends implement the same ServingEngine interface — mesh-engine-gguf (behind gguf) is a real one over the family's pure-Rust GGUF/Metal substrate, kept out of the default build so it needs no weights.