Products

Crums products are open source software released under the AGPLv3 license. Source code is made available thru GitHub repos under github/crums-io.

Crums Timechain

There are 2 products available for download in this alpha release: the timechain server, and its command-line client. Both tools have help commands that are complimented with on-line user guides to help explain their concepts.

crum

crum is a command line tool for submitting hashes to remote timechains and archiving their resultant crumtrails (witness proofs) in a local repo. You can find the user guide here.

ergd

ergd is the standalone, timechain REST server. You can launch your own timechain and customize its time block granularity (but only at inception). Its user guide can be found here.



Roadmap

The product roadmap involves 2 parts: the Crums Timechain itself, and other products based on the same underlying commitment scheme timechains use.

Timechains

Timechains (their operators) can commit their state by having the hash of one their blocks near the end of the chain witnessed on other timechains. This establishes the minimum age of a chain's blocks. Additionally, with some effort, one can construct a beacon hash from a collection of timechains and archive a crumtrail of that beacon hash in one's own chain establishing the maximum age of a timechain's blocks. Future versions aim to both automate such processes and package their evidence (a historical record about how closely a chain's blocks have tracked real time) in a consistent way.

General Ledgers

The commitment scheme timechains use involves declaring (committing to) ledger (chain) state (as represented by a SHA-256 hash) and dispensing proofs that link to those declared commitments. This same commitment scheme is applicable to ledgers generally. Very generally. Because, besides the usual business ledger, anything that can only be added to (not removed from or edited) can be modeled as a ledger. For example, livestreams and log files can both be modeled as ledgers.

The following is a partial list of already prototyped products under development:

  • morsels. Binary archives for proving items in muliple ledgers.

    A morsel file is a bundle of provable receipts from ledgers. Morsel files support both the merging and fine-grained redaction of their contents. A morsel's data from one ledger often cross references an item in one of its other ledgers. As an example, morsels model timechains just like any other ledger: a ledger's state (it's hash) may be witnessed (referenced) in a crumtrail (the witness receipt) embedded in the same morsel.

  • log-ledge. Calculates the hash of a log file (up to the nth or last line).

    Calculating the hash of a log-like file this way allows one to later differentially reveal (and prove) any of its lines (and redact any word/token) against the committed hash. If you're already storing the hash of such files somewhere, calculating their hash this way enjoys these advantages. This may be especially relevant if log files are presently saved for their evidentiary value. Witnessing this hash on a timechain is a better choice than witnessing the straight hash of the log file.

  • sql-adaptor. Defines a ledger using an SQL query and provides a live view of its proof structures.

    Though the adaptor maintains it proof structures in its own SQL tables, importantly, its workings do not involve annotating existing tables in anyway. Rather, it only ever reads existing tables: it shouldn't even have write-access to the tables it queries. All of a user's work designing a ledger is encapsulated in the SQL query they define to create a ledger-consistent view.

  • reports. Simple template engine for generating reports from morsels.

    This generates customizable, brandable, user-facing PDF from morsel data. Such "reports" can take many forms: an invoice, a receipt, a contract: anything that makes its way into a ledger. This works using a DSL that tells the software how entries in a morsel are grouped and assembled into individual PDF "reports".

GNU Affero General Public License v3 (AGPLv3)

© 2020-2024 crums.io