checkpointed-local-log
The Checkpointed Local Log (CLL) — an IETF Internet-Draft specifying a producer-operated, append-only local log with periodic signed checkpoints. Entries are appended locally and never published; only a small checkpoint — a signed commitment to the log's entire history — ever leaves the producer. Checkpoints may be registered with one or more independent SCITT Transparency Services or witnesses, turning a set of individually signed records into a stream with provable order, contemporaneity, and completeness.
The log itself is a Merkle Mountain Range (MMR), whose COSE proof formats
are specified in I-D.bryce-cose-receipts-mmr-profile. This document
specifies the log discipline and the checkpoint structure on top of that
MMR — it defines no new proof formats, no transparency service behavior, and
no payload semantics. The append-only MMR log is implemented in this repo's
cll Python package (below); capsule-emit and capsule-ledger consume it
rather than each forking their own copy.
Status. This is an individual IETF Internet-Draft, not a Working Group document, and not an RFC.
The cll package
cll is the reference implementation of this spec: a Python package
shipping the pieces a CLL producer or verifier needs.
pip install checkpointed-local-log
What it ships:
- Append-only log store (
cll.ledger) — JSONL segments plus a derived SQLite index, the three-state admission contract, and hash-chain / chain-gap detection. - Merkle Mountain Range (MMR) (
cll.checkpoint.core/.index/.store) — the pure position math, domain-separated hashing, and inclusion/consistency proofs this spec's checkpoints commit to. - Signed COSE checkpoints (
cll.checkpoint.emit/.cose_wire) — building, signing, and registering checkpoints with a Transparency Service over the COSE_Sign1 wire form this spec defines. - Disclosure bundles (
cll.checkpoint.bundle) — the record/range-level, offline-verifiable evidence package (inclusion proof + covering checkpoint- witness stamp + consistency proof) for handing one log record to a stranger.
See docs/module-map.md for the section-by-section map
from this spec to the package's modules.
Building the draft
The build toolchain is kramdown-rfc
(Markdown → RFCXML v2) and xml2rfc
(v2 → v3 → text):
cd spec
make DRAFT=draft-mih-scitt-checkpointed-local-log-00 \
KDRFC=kramdown-rfc2629 \
XML2RFC=xml2rfc \
draft-mih-scitt-checkpointed-local-log-00.xml \
draft-mih-scitt-checkpointed-local-log-00.txt
spec/.refcache/ is committed so the build never depends on bib.ietf.org
being reachable. See comments in spec/Makefile for rebuild and
refresh-refs targets.
License
See LICENSE: the specification text is governed by BCP 78 and the IETF Trust's Legal Provisions; code and reference material are under the Revised BSD License.
Metadata
Release files for checkpointed-local-log 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| checkpointed_local_log-0.3.0.tar.gz | 80.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| checkpointed_local_log-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 170.3 kB
Release files / checkpointed_local_log-0.3.0.tar.gz
| Download URL | checkpointed_local_log-0.3.0.tar.gz |
|---|---|
| Size | 80.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0b7bb7fa594bc4793150ce51cb4f0c3711fb9ad007cffca9ad6407ede67136a6
|
|
BLAKE2b-256 checksum How to use checksums |
bbb30978fb81027c95c82272967168bd7d9ac949eb8725ee86f60cbe0b12ac62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|
Release files / checkpointed_local_log-0.3.0-py3-none-any.whl
| Download URL | checkpointed_local_log-0.3.0-py3-none-any.whl |
|---|---|
| Size | 90.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
201ce57ff46374f9b4c015ba0c8473b8cb8f1c9fed73fb5776bf5c21ebe60261
|
|
BLAKE2b-256 checksum How to use checksums |
0d146c846ebc369a0ae2f7e5a8352f69a6e2874b251d16945b784efc54fe1e95
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.7
|