voiceledger
A hash-chained, signed event ledger with pluggable rules and a standalone verifier. One dependency (cryptography): an auditor can verify a ledger without installing the system that wrote it.
pip install voiceledger
voiceledger verify bundle.zip --trusted-key <hex> --rules rules.toml
PASS 1707 events
PASS chain: 1707 events linked
PASS identity_before_detail: 300 detail_disclosed events, all after identity_verified
PASS list_order: 14 snapshots followed in order (per slot_id)
PASS head: signed head matches
- chain: each event's hash covers the event and the previous hash, so editing, inserting, deleting or reordering any event breaks every later link.
- head: the last hash is signed with Ed25519; with the trusted key, the whole chain can't be regenerated and re-signed by anyone else.
- rules: what the project declares, e.g.
requires_before(no detail before identity, per call),follows_snapshot_order(offers in the customer's list order),always_followed_by,never. Custom rules subclassvoiceledger.Rule.
A bundle is a zip with ledger.jsonl, list_snapshots.jsonl and head.json. Reading is defensive (size caps, known members only, JSON only). Exit code 0 when every check holds, 1 otherwise, 2 for unreadable input.
What it proves: the record wasn't changed after the head was signed, and the declared rules hold over it. What it doesn't: that the events were true. Reconcile against the system of record for that.
Part of voiceops; rules reference in its guide. MIT licence.
Metadata
Release files for voiceledger 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| voiceledger-0.1.7.tar.gz | 127.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voiceledger-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 143.6 kB
Release files / voiceledger-0.1.7.tar.gz
| Download URL | voiceledger-0.1.7.tar.gz |
|---|---|
| Size | 127.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6db454e539a76439f3767c1bdd68f2ab56cd744aaeba589583b62cb07092b2da
|
|
BLAKE2b-256 checksum How to use checksums |
32a2c2b8b4d0b9023908b5ba554be05bdb73b379b7e7727a2603e40648d3d478
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / voiceledger-0.1.7-py3-none-any.whl
| Download URL | voiceledger-0.1.7-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7a582296618998c3399079b536d47cb4aa24060db0878a5609ca49f410d4dbd2
|
|
BLAKE2b-256 checksum How to use checksums |
eb0b40585fad79cb0fd35d2f4ed0ff290120d2e40c91ff6b9d702f69947ac325
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|