Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Introduction

The workspace holds three crates that share one version and release together.

CrateWhat it does
rfc9162Leaf hashes, interior hashes, the root, inclusion proofs, consistency proofs, and the Head a caller signs.
rfc9162-tilesThe same tree stored as C2SP tlog-tiles: hash tiles, entry bundles, a manifest, and an Ed25519 checkpoint.
rfc9162-logAn index of sorted runs whose manifests are log entries, so the checkpoint covers the index. Sidecar keeps a directory’s history in that log.

rfc9162-tiles requires rfc9162 at the same version. rfc9162-log requires both.

What a reader checks

A log entry is an opaque byte string. Its leaf hash is SHA-256(0x00 || entry). Interior nodes are SHA-256(0x01 || left || right). The shape of the tree, and the proofs over it, are fixed by RFC 9162 section 2.1. The Merkle tree page draws that shape. Inclusion proofs and consistency proofs show which nodes a proof carries.

The flat crate returns those hashes. The tile crate stores the entries and assembles the same proof bytes from tiles. A proof from Reader::inclusion compares equal to rfc9162::inclusion_proof over the same leaves. The tutorial runs that comparison.

Specifications

Where to go

Getting started is a single program over the hash tree. The tutorial stores the log and signs it. The how-to guides are one page per crate. The API reference is generated rustdoc.