open-standards/eoc
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 4bbb4cd254
Some checks failed
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 9s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 6s
jouleclaw fabrics / cuda (linux, RTX 4050 + Vulkan loader) (pull_request) Successful in 17s
jouleclaw fabrics / vulkan (linux, RTX 4050 + Vulkan loader) (pull_request) Successful in 17s
joule-code conformance gate / joule-moq-ingest, every target (pull_request) Successful in 4m9s
joule-code conformance gate / joule-moq-relay, every target (pull_request) Successful in 5m46s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 39s
jouleclaw public surface must stay documented / Public-surface audit (jouleclaw-rs) (pull_request) Failing after 10m26s
joule-code conformance gate / Build + round-trip C1-C4 vectors (pull_request) Failing after 10m44s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 9m33s
standards workspaces build + test / eoc-rs (eoc/eoc-rs, -p eoc-meter --features cuda, eoc-rs, linux) (pull_request) Successful in 3m13s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 3m37s
jouleclaw fabrics / metal (macOS, Apple GPU) (pull_request) Successful in 1m51s
standards workspaces build + test / mesh-rs (mesh/mesh-rs, -p mesh-engine-gguf -p mesh-openai --features mesh-engine-gguf/gguf,mesh-openai/server, mesh-rs, linux-arm64) (pull_request) Successful in 2m5s
standards workspaces build + test / smart-byte-rs (smart-byte/smart-byte-rs, smart-byte-rs, linux) (pull_request) Successful in 4m10s
standards workspaces build + test / jouleclaw-rs (-nodebug, jouleclaw/jouleclaw-rs, -p jouleclaw-energy --features rapl,nvml, jouleclaw-rs, linux-arm64, -C target-feature=+fp16) (pull_request) Successful in 7m43s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 7m49s
standards workspaces build + test / openpay (openpay, openpay, linux-arm64) (pull_request) Successful in 5m48s
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
standards workspaces build + test / jouledesk-rs (jouledesk/jouledesk-rs, jouledesk-rs, macos) (pull_request) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Has been cancelled
sec: answer the gate's first catch — two constant-time advisories, and pin an allowance to the version it excuses
The advisory gate from #443 found something on its first real run, two days
after landing: RUSTSEC-2026-0385 and -0387, both published 2026-10-23, neither
of which existed when the sweep was done. That is the gate doing the job it was
added for, so this is the answer rather than a new allowance.

  ctutils 0.4.2/0.4.3 -> 0.4.4   RUSTSEC-2026-0385, non-constant-time mask
                                 generation and `u128` comparisons. Reaches
                                 openpay's wallet crates through
                                 digest -> hmac/hkdf, so it sits under HMAC on
                                 payment paths. Fixed in four lockfiles.
  crypto-bigint 0.7.3 -> 0.7.6   RUSTSEC-2026-0387, secret-dependent branches
                                 in subtraction, zero counting, division and
                                 Montgomery multiplication — operations whose
                                 whole purpose is to be constant-time.

The 0.5.5 line of crypto-bigint cannot follow: elliptic-curve 0.13 pins it, so
reaching >=0.7.6 means moving the p256/elliptic-curve stack across openpay,
sandbox, wai and jouleclaw. That is an upgrade, not a bump. It is allowed with
that reason recorded, on paths that sign and derive keys, so it reads as debt.

Writing that allowance exposed a weakness in the check itself: ALLOW was keyed
by advisory id alone, so an entry excusing the stuck 0.5.5 line would have gone
on excusing the advisory if a patched 0.7.x copy later regressed to an
unpatched release — the same shape as sealing by name instead of by digest. An
entry may now pin the exact crate/version pairs it covers:

    "RUSTSEC-...": {"why": "...", "only": ("crypto-bigint 0.5.5",)}

Any other version of that crate fails, and a named pair that disappears makes
the entry stale, so the pin cannot keep describing a tree that moved. The
version-blind string form is kept for reasons that genuinely do not depend on
the version, such as a call we never make, and the two forms are documented
against each other.

The self-test now builds its documents by importing the check's real ALLOW
rather than scraping it with grep, so the two cannot drift, and covers the two
new failure modes: a version-pinned allowance offered a version it does not
name, and one whose named pair is gone.

Also moves off every yanked dependency, each a patch bump: chacha20
0.10.0/0.10.1 -> 0.10.2 (a cipher, in six lockfiles), der 0.8.0 -> 0.8.2, spin
0.9.8 -> 0.9.9 and 0.10.0 -> 0.10.1, iroh-blobs 0.101.0 -> 0.101.1. A yank is
the author withdrawing a release; none of these needed to stay on one. No
yanked dependency remains anywhere in the tree.

All 47 lockfiles current; the six affected workspaces check clean and
`mls_keying` passes.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-10-24 20:06:05 -04:00
..
cookbook Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
docs Parallel ingest: 9 issues' worth of work across openpay / smart-byte / eoc 2026-05-23 13:24:05 -04:00
eoc-bench sec: close the advisory backlog across every workspace, and move the WASM sandbox off a runtime with three critical escapes 2026-10-22 09:44:59 -04:00
eoc-rs sec: answer the gate's first catch — two constant-time advisories, and pin an allowance to the version it excuses 2026-10-24 20:06:05 -04:00
os Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
spec Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
standards eoc annex: the per-process counter's lumps are the kernel's fold, and a checked read is exact 2026-10-13 00:54:51 -04:00
vocab vocab v1 SHACL shapes across sister standards (wave-23 #4/#5) 2026-06-02 18:55:56 -04:00
LICENSE Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00
README.md licences: ship the Apache-2.0 text the code already declares 2026-10-09 17:22:32 -04:00
THREE_FACES.md Initial import — three open standards under one shelf 2026-05-23 07:58:09 -04:00

EOC — Energy-Optimized Compute

A free, always-available, energy-honest AI substrate. AI that costs joules, not tokens.

AI is not free yet. The internet is. EOC closes the gap: a substrate that resolves work at the lowest sufficient cost and refuses to spend unbounded energy chasing benchmark deltas. Every query flows through a four-stage pipeline — state-construct → retrieve → refine → check — and a large language model is one of six refine operators, ordered last. The Fourth Truth: refinement before generation. The substrate runs in a browser, runs on commodity CPUs, denominates everything in joules per task against an open evaluation corpus, and cannot be turned off because no one entity runs it.

The substrate is intentionally ownerless: no protocol-level token, permissive licensing, conformance test vectors and open eval corpora so any implementation can verify itself without a trust relationship with the authors. Transaction Science is one steward — it publishes the spec, ships a reference implementation, and operates commercial services around the substrate (managed nodes, certification, registry hosting) — not its proprietor.

Contents

  • spec/eoc1_spec.docx, spec/eoc1_v0_1_1_patch.docx, spec/eoc1_v0_2.docx, spec/eoc1_v0_2_addendum_A.docx — EOC-1: the substrate architecture (v0.1 tiers → v0.2 four-stage pipeline; Addendum A: non-goals — token economics)
  • spec/eoc2_wire.docx — EOC-2: the wire protocol (capability exchange, gossip, signed envelopes)
  • spec/eoc3.docx — EOC-3: artifact distribution (content-addressed fetch for models, state machines, corpora)
  • spec/eoc4_dcy.docx — EOC-4: DCY (Deterministic Cypher — the query language for the knowledge-graph retrieve operator)
  • spec/eoc5_registry.docx — EOC-5: the Operator Family Registry (stable identifiers + conformance tests)
  • spec/eoc1_eval001*.docx, spec/eval001_worked_instances.docx, spec/eval002.docx — Eval-001 (schema-conformant generation proficiency standard) and Eval-002 (retrieval/provenance)
  • spec/eoc_architecture.docx — the architecture working draft
  • spec/tokens_concealment.docx — Tokens Are the Concealment (the rhetorical companion to Addendum A)
  • os/THEOREM.md, os/Q1_W_DEFINITION.md — the energy-first OS theorem the substrate is designed to run on, and the resolution of its open question on defining "useful work" in joules-per-work

Status

EOC-1 at v0.2; EOC-2..5 and Eval-001/002 at working-draft 0.1; OS theorem at v0.2. The reference implementation referenced across the specs as "v0.3" is to be brought into this repository.

Licence

Specification text: CC-BY-4.0 (see LICENSE). Reference implementation in eoc-rs/: Apache-2.0 (see eoc-rs/LICENSE).

  • Smart Byte (../smart-byte/) — the value substrate; uses EOC's energy attribution.
  • TX Science AI (ais.transaction.science) — the AI PaaS; its memoizing cascade is an instance of the EOC four-stage pipeline.