Skip to content

Architecture

Three layers, and dependencies flow one way. The format is a contract anyone can implement; the engine walks and replays it; the Commons federates it. Each layer is useful on its own, and no layer reaches back into the one above it.

.rpk spec  ◄──  dmipy-sim  ◄──  substrate-bank
(contract)      (engine)        (commons)
  • replay-pack-spec · the contract


    The open .rpk file format — the replay invariant, the capability tiers, the substrate frame. Simulator-agnostic; the stable thing everything else is built on. Versioned and DOI'd.

    replay-pack-spec

  • dmipy-sim · the engine


    The reference walker: walk a substrate, replay a pack, read/write .rpk. It has no opinion about banks, targets, or DOIs. A public engine means a public walker anyone can run.

    dmipy.org

  • substrate-bank · the commons


    The coordination layer: targets, seed ledgers, QA and aggregation, signed shards and the key registry, and freeze → citable snapshot. The system that turns a bank into a federated resource.

    Substrate-Commons

Why the separation matters

The engine never imports the Commons. That keeps the walker a clean, reusable tool — you can run it with no idea the federation exists — while all the coordination logic (who contributed what, what's complete, how to freeze) lives in one place. And keeping federation out of the file spec keeps the format lean: a .rpk is just a replayable walk, whether it ever touches a bank or not.

A different entity

The Commons is intentionally its own thing, with its own home and its own mission. The engines are fast-moving and AI-maintained. The Commons is slow, permanent, and open — built to still be here, and still citable, long after any one release.