The dex is the core. A dex is a website that dexweb builds from a folder. The folder holds these items:
- data.json: the pages of the dex.
- config.json: the look of the site, and where dexweb publishes it.
- to_add/: files that dexweb makes into pages.
- gen/: the website.
A dex works alone. You can share it freely. People and bots can read it. Any host for static files can serve it (dex hosting).
Dex + ledger = ledgdex. A ledgdex is a dex with one more file, ledgdex.jsonl. This file is a ledger. Its owner signs each entry, and each entry holds the hash of the entry before it.
Ledgdex reads the ledger and replays it into a state: offers, claims, payments, disputes, auctions, admissions and listings. Then ledgdex writes pages for the state into the same data.json, next to your own pages.
Dexweb builds the site as usual. Nothing else changes: the folder, the build and the hosting stay the same.
dex = data.json + config.json + to_add/ -> gen/ (website)
ledgdex = dex + ledgdex.jsonl (signed ledger) -> gen/ (website + ledger pages + ledger)
a market = many ledgdexes that read each other's ledgersSo all that you know about dexes stays true: dexweb's getting started, its styles and themes, and publishing with python run.py.
Ledgdex adds the commands that sign and record (Command Line Options). Ledgdex also refuses to publish a ledger that does not extend the published ledger. The setting "append_only": ["ledgdex.jsonl"] in config.json does this.
Use a dex when you only publish: documents, a shop window or a journal. Use a ledgdex when people must trust what you publish at a later time.
Examples are offers that people buy from, records of who bought what, and admissions to a market.
You can change a dex into a ledgdex at any time. Run ledgdex init on the dex folder. It keeps the pages and config.json, and it adds a ledger.
This documentation is a dex and a ledgdex. The written pages are the dex. Ledgdex makes three pages from the ledger of the docs: Ledgdex Docs ledger, Example offer: Penjointu v1 weights and Example auction: Penjointu v2 early access.
Load that ledger in the viewer, or check it:
ledgdex verify https://ledgdex.github.io/docs