The software modules are maintained as a collection of open source project repos on GitHub. The repos there are organized under the crums-io moniker. A birds eye view of how this code is organized helps pull the concepts together, as well as guide where to drill down for more information.

3 project repos are hightlighted below, in order of dependency:

  1. merkle-tree: a flexible Merkle tree implementation. Its Merkle proofs require leaf coordinates in order to determine the structural path (from leaf to root) the hash-proof takes (the index and count fields you see in a crumtrail's JSON).
  2. crums-core: data model for crums, crumtrails and other objects the time chain's REST interface vends out. Crumtrails are augmented Merkle proofs. Includes JSON parsers and a REST client.
  3. ledgers: a collection of modules for tracking ledgers, and differentially reporting their contents. This is principally based on a newly introduced data structure called a skip ledger (the repo's namesake) that offers similar capabilities to a Merkle tree, but that is better suited to growing, append-only collections.

© 2020-2022