Commit the previously-untracked standard directories and catalog them in the
root README alongside proof:
- aac/ — communication cargo class: portable boards + a ten-level
offline-first cascade (Apache-2.0 code / CC-BY-4.0 spec).
- map/ — geospatial cargo class: range-requestable signed tilesets +
an F0–F4 fidelity cascade (Apache-2.0 code / CC-BY-4.0 spec).
- sandbox/— isolated, metered, attested execution across the heterogeneous
compute fabric (Apache-2.0 code / CC-BY-4.0 spec).
- jouleclaw-otel-authz, jouleclaw-trust — new jouleclaw reference crates.
Root README now lists aac, map, sandbox, and proof in the catalog, the tree,
and the contribution guide.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
52 lines
2.1 KiB
Markdown
52 lines
2.1 KiB
Markdown
# Map sub-spec — The receipt
|
|
|
|
Normative refinement of [SPEC §6](../SPEC.md). Reference: `map-receipt`.
|
|
|
|
Every resolve/decode of a tile emits a signed energy receipt. Receipts seal as
|
|
**JCR-1** envelopes — the family's shared signed-receipt format (canonical
|
|
det-CBOR + COSE_Sign1/EdDSA, `alg = -8`) — so a Map receipt verifies with the
|
|
same tooling as a Joule Code, Sandbox, or JouleClaw receipt. The JCR-1 wire
|
|
profile is `"map/1"`.
|
|
|
|
## 1. Shape
|
|
|
|
```
|
|
Receipt = {
|
|
cell: CellKey, // rendered as its content id on the wire
|
|
content_id: ContentId, // the tile that closed the request
|
|
tier: Tier, // F0..F4 — the closing tier
|
|
energy: { measured_uj: Option<u64>, estimated_uj: u64, provenance },
|
|
sequence: u64,
|
|
nonce: [u8; 8],
|
|
}
|
|
```
|
|
|
|
## 2. The provenance coupling (REQUIRED)
|
|
|
|
| Provenance | `measured_uj` | Meaning |
|
|
|--------------|---------------|---------|
|
|
| `HwShunt` | **required** | Read from a hardware energy interface (RAPL/SMC/shunt). |
|
|
| `ModelBased` | optional | Computed from a calibrated per-operation model. |
|
|
| `Estimator` | **forbidden** | A coarse constant; honestly flagged as not measured. |
|
|
|
|
`Receipt::seal` validates this coupling *before* signing, so a dishonest receipt
|
|
(`HwShunt` with no measured figure; `Estimator` carrying one) cannot be sealed
|
|
(conformance **C-neg**). The spec never claims an accuracy the platform cannot
|
|
deliver.
|
|
|
|
## 3. Reference estimator (non-normative)
|
|
|
|
Microjoules per resolved tile, ordered by tier — `map_receipt::UJ_BY_TIER`:
|
|
|
|
| Tier | µJ (order of magnitude) |
|
|
|------|--------------------------|
|
|
| F0 Cache | 1 (picojoules) |
|
|
| F1 Base | 1 000 (microjoules) |
|
|
| F2 Field | 200 000 (sub-millijoules) |
|
|
| F3 Feature | 5 000 000 (millijoules) |
|
|
| F4 Photoreal | 2 000 000 000 (joules) |
|
|
|
|
A session's total cost is the sum of its tile receipts. The standard is that the
|
|
figure is **reported and honestly tagged** — not the constant. Conformance suite
|
|
**C5** pins receipt sealing, verification, and the signed core in
|
|
[`../conformance/v1/receipt_vectors.json`](../conformance/v1/receipt_vectors.json).
|