← Catalog

Ledger

Available

A log of what happened on this machine that you can hash and trust later.

GitHubJSR

The isolated-box problem

Something changed. A note in a text file is a rumor. You want a trail that is annoying to rewrite after the fact.

What it does

A folder of jsonl ledgers. Each note stores SHA-256 of its index, time, body, and the previous note's hash. CLI for the box, plus a small UI on the LAN. verify walks the chain and fails if an old line was edited.

Hashing and verify

Hashing is a fingerprint, not encryption. Anyone with the folder can still read the notes. The first note's prev is the word genesis. verify recomputes every hash and checks that prev pointers and indexes still line up. It will not catch a rewrite of the whole file where every hash is recomputed. It will catch a silent edit, a dropped line, or two notes swapped.

This one runs. From the repo: cd ledger && deno task compile && ./ledger.sh --dir ./ledgers serve

Carry-in

Init on a connected machine, copy the folder, run it dark. This one is real.

Carry-in flow

deno run -A jsr:@decomm/ledger/init ./ledger

Related

Ferry

Coming soon

Pack a folder for USB. Hashes on the way out, check them on the way in.