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

Architecture decision records

Every locked design decision in Railroad Network is written down as an Architecture Decision Record (ADR) in the station repo. ADRs are append-only: a changed decision gets a new ADR that supersedes the old one. When a page on this site and an ADR disagree, the ADR wins.

Phase numbering. ADRs written before 2026-08-25 use the old phase numbering, where “Phase 2” meant federation. ADR-0017 resequenced the plan: Phase 2 is now single-community resilience and Phase 3 is federation. ADRs 0001 to 0016 keep the old numbering as written.

The Status column is the ADR’s own status line. Proposed on a decision that has shipped means the maintainer has not yet formally ratified it; the code follows it regardless.

ADRDecisionStatus
0001Rust workspace and dual licenseAccepted
0002Canonical serialization via deterministic CBOR (dcbor)Accepted
0003Human-readable address format: bech32m with HRP rrnAccepted
0004Own Shamir’s Secret Sharing implementation over GF(256)Accepted
0005The station signs settlement and cancellation recordsAccepted
0006The mobile client holds the keys; the station is a local backendAccepted
0007uniffi-rs generates the mobile bindings to our Rust cryptoAccepted
0008The mobile↔station envelope is the security boundary; the transport is a dumb carrierAccepted
0009One reputation formula runs on every station and no community can tune itAccepted
0010A listing is a signed record on the log; the search index is a view that can be thrown awayAccepted
0011The Phase-1 oracle ladder: two serviceable tiers, a blocked ceiling, and a derived reputation stakeAccepted
0012The Charter: a self-bootstrapping constitutional document, and how a community changes itAccepted
0013Federation and collapse-mode transport is pluggable; Reticulum is the adopted backend, run as an external sidecarAccepted
0014Phase-1 dispute resolution: a sortition jury with a governance backstop, and the Tier-2 stake that finally bitesProposed
0015Bootstrapping the electorate: a governance and dispute grace so a young community can actually governProposed
0016Station backup and key recovery: an encrypted archive whose key survives a lost passphraseProposed
0017Single-community resilience comes before federationAccepted
0018A debt floor bounds how far a member can sign themselves into debtProposed
0019A freshness bound on confirmed_at protects the dispute windowAccepted (superseded for delay-tolerant sync by ADR-0022)
0020The community log keeps one writer; resilience is delay-tolerant submission, not multi-writer mergeAccepted
0021Escrowed offline spending certificates bound the debt floor under partitionAccepted
0022The admission clock: the station’s clock at admission is the only window-bearing clockAccepted
0023Emergency governance: deciding faster in a crisis without building a coup leverAccepted
0024Station at-rest encryption: a member-keyed encrypted volume unlocked by a boot ceremonyAccepted
0025Equivocation cases are a distinct jury case kind with a Lapsed default and identity-anchored sortitionAccepted
0026The Reticulum sidecar is ratified: pinned rnsd 1.5, driven from the station, native Rust deferredAccepted
0027Emergency declaration activation is a single first-crossing event, and a part-signed declaration expiresAccepted
0028A self-custody CLI member wallet: the non-mobile member device, a sealed-channel client with an offline outboxAccepted

Generated page. Built from docs/adr/ in the station repo by scripts/gen-reference.sh.