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.6
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.6.tar.gz | 127.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voiceledger-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 143.6 kB
Release files / voiceledger-0.1.6.tar.gz
| Download URL | voiceledger-0.1.6.tar.gz |
|---|---|
| Size | 127.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
777db7c1cd5a45488a35867a2e683a2758d614c0b676ad626bb7586deb89b5c2
|
|
BLAKE2b-256 checksum How to use checksums |
de9608cf61c2cca94e68d240ae3af2e5f580edef9669cc19f8c1fda5908aa9b3
|
| 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.6-py3-none-any.whl
| Download URL | voiceledger-0.1.6-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a05eefc0e65f1ebbebbac2ad8027b219a7621d365e1c22103fcf97aa7765d89
|
|
BLAKE2b-256 checksum How to use checksums |
5239ea9862cd4783b554b40b11f7552eaaa0b2bb4aeae5e203fb0423f0bb883a
|
| 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}
|