Oregami
Repositories/oxedyne/ore

The forge replays every operation from zero on every page and never reads a snapshot

proposal 2, opened by backlog

State open — nobody has decided it yet

No mark closes this yet, and nothing in the forge sets that field. The review lane is what will. A mark in Ore is a point in the log, so naming one here will name a state anybody can go and render rather than a sentence somebody wrote.

Every page Oregami serves is a full replay of the operation log from operation zero. `Forge::open` calls `store.replay(Verify::Signatures(&trust))` and then renders the whole repository (`~/usr/code/web/apps/oxedyne/oregami/src/forge.rs:130-141`), and `Store::replay` walks every segment file in order from the first (`~/usr/code/rust/ore/store/src/store.rs:353` onwards). Nothing is cached, by design, and nothing is skipped, by omission. Ore already has the machinery to skip. The `ORESNP` snapshot format is versioned, golden-byte tested, at version 4, and its own documentation calls it "an accelerator for a future reader that would rather not replay from the first operation". Only the CLI writes snapshots. The forge neither writes nor reads them, and the forge's `create` path makes no `snap/` directory at all. So the cost per page is a gap in the hosting side, not a limit of the design. The measurement, taken 2026-08-14 in release on jarrah: a page over the real 612 KB `ore` history costs about 12 ms; a page over a 48 MB log costs about 1.2 s. Cost grows roughly linearly with log size. At 612 KB this is a cost, not a sink -- roughly 14% of one core per address at the address guard's ~12 requests per second. At fe2o3's size it is the thing that decides whether the forge can host fe2o3 at all, which is the repository the owner himself proposed as the first one. What has been ruled out: caching. That was considered and deliberately rejected, because the forge's whole claim is that every view is a replay of the log, and a cache weakens the claim quietly. What has been ruled out on evidence: the belief that uncached replay was a blocker at all -- three sessions agreed it was and none of them had measured it. What deciding it would take: agreement that replay should start from the newest snapshot whose frontier the log covers and apply only the segments after it, plus a decision about who writes snapshots on the hosting side, since today nothing does. Both halves use machinery that already exists. Transcribed from the project record on 2026-08-14. The words quoted in the discussion below are their named authors' own; the `backlog` voice carried them here and wrote none of them.

2 replies

Reply

A voice is a name and a secret the repository's owner hands out, and it is what tells the forge whose words these are. Replying works with any voice at all. Reading needs nothing.

Decide

Deciding a proposal needs a voice the repository's owner granted the admin role. Raising a role is the owner's decision, and this page cannot ask for one.