SLATE - Simple Ledger Application: a Temporary Expedient

start here | outline | take a look | examples internal | user interface

Internal representation

For convenience, each entity (namespace, primid, ahid, currency or account) is identified internally by a unique number (its FPH) serving as the primary key in an SQLite table. (NB, these numbers have now been made fully compatible with the FPH (Full Path Hash) used in NESTS.

These global mappings are:

Furthermore, the unique currency|ahid pairings each map to one account, the name of which is usually hidden.

As in NESTS, each entity (namespace, currency, agent or account) is identified by a human-readable name string (HRNS) placing it within a namespace.

Each namespace contains the names of namespaces, currencies and primary identities (a.k.a. primids or login identities) and account-holder identities (ahids).

Upon registration, an initial account is created in the currency specified in the registration form. The name of this account is contained in the private namespaces of this new agent.

Ledger files

Currency journal

Each currency has an associated journal in which all payments are recorded, listing)

The currency's journal can be exported at any time (either as a CSV file or as a pretty-printed table) by one of its stewards or by a global system administrator.

Agents' ledgers

Each account has an associated journal in which all payments and receipts are recorded.

Each ahid (and, by extension, the primid that owns it) has access to at least one account (generally more), and a separate ledger for each of these. The accounts' ledgers list all transaction (payments and receipts). These ledgers each comprise fields listing

For each payment made

Each primary identity (primid) can export the account ledger/journal, of any account belonging to one of its ahids.