Skip to main content

TACET operator

Runs the TACET log in production. The reference defines the objects; this package fetches, signs, anchors and publishes them.

every hour   tacet-operator run-epoch        drand round → observe surfaces → update map → sign sheet → OTS stamp
every 6 h    tacet-operator refresh-anchors  upgrade OTS proofs; close sheets confirmed in Bitcoin
daily        tacet-operator publish --proofs rebuild featured silence proofs (crovia.seal.v1)

What one epoch does

  1. Fetches the first drand round of the hour (chain 8990e7…, pinned in trust_root.json) — the round scheduled at epoch_start, so the sheet does not depend on when the run started. Nothing in the epoch could have existed before that round: lower time bound. The operator refuses to sign a sheet whose round its own verifier would reject.
  2. Fetches the surfaces of the featured targets and of a rotating slice of the target list (default 120 per hour, 0.6 s apart, crovia-tacet-observer user agent). Surface = the raw model card …/raw/main/README.md; for gated repositories (401/403) the rendered model page. Collection has a 20-minute wall-clock budget by default (TACET_COLLECTION_BUDGET_S overrides it), so slow or unreachable surfaces cannot occupy the next hourly invocation. Unattempted rotating targets retain their cursor position for the next run.
  3. Runs the public predicate crovia.pred.hf-card-training-data 1.0.0 (source, hashed byte-for-byte into every snapshot) on the bytes and signs a snapshot with the observer key. Non-200 responses produce no snapshot: a fetch failure is indeterminate, never absence.
  4. Applies forward-only slot transitions: a positive snapshot for an empty slot inserts a disclosure value; two consecutive negatives for a disclosed slot insert a retraction. Every value is asserted by a crovia.seal.v1 signed with the Seal-issuer key (values/<key>.json).
  5. Signs the epoch sheet (root, size, snapshots_root, opened beacon, prev_sheet_hash) with the operator key and stamps sheet_hash with OpenTimestamps. When the calendar reaches Bitcoin, refresh-anchors fills closed (block height, block time, proof URL): upper time bound.

The operator is the only writer; all changes of an epoch are applied in one batch, so the sheet's root is the root at epoch_end. Missed hours are back-filled with empty sheets (historical drand round): the chain stays contiguous and those hours contribute no silence.

Each observed run writes state/fetch_log/<epoch>.summary.json with planned, attempted, successful and failed counts, duration, cursor movement and the stop reason. This operational record is not part of the signed protocol objects and does not change verification of existing or future proofs.

Silence proofs

tacet-operator prove mistralai/Mistral-7B-v0.1 --strength 2 -o proof.seal.json
tacet-operator verify proof.seal.json --operator-pubkey <key_hex from trust_root.json>
tacet-operator verify proof.seal.json --offline     # no network: what could not be checked is named in warnings

verify checks signatures, chaining, non-inclusion, snapshots, silence and witnesses from the file. For the two time bounds it does what it can: each drand round's chain and schedule from the sheet, its randomness/signature bytes against the public relays (it does not verify the BLS signature itself), and each Bitcoin anchor by parsing the .ots and comparing with the block header from an explorer. The output lists the per-sheet transcript under beacon and anchors; --offline skips every network call and reports those items as unchecked.

A proof carries every sheet in the range, the delta-encoded non-inclusion path, the negative snapshots with their Merkle inclusion in each epoch's snapshots_root, and the silence block recomputed by the verifier: silence_seconds = sum of the durations of anchored epochs that hold a negative snapshot for the target. Unobserved, unanchored or unreachable hours count zero. The bundle is wrapped in an unmodified crovia.seal.v1.

Keys

Three Ed25519 seeds in state/keys/ (mode 0600), created on first run: operator (signs sheets), observer (signs snapshots), issuer (urn:crovia:seal-issuer:tacet, signs Seals: value assertions and proofs). Public keys are published in trust_root.json.

Install

pip install -e ../reference/python -e <crovia-seal>/reference/python -e .
TACET_STATE=/opt/crovia/tacet/state TACET_PUBLIC=/var/www/registry/data/tacet tacet-operator keys

Tests: pytest -q tests (predicate vectors are real model cards; the epoch test uses a fake network, fake drand and fake OTS).

Metadata

Release files for crovia-tacet-operator 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crovia-tacet-operator 0.5.1
File Size Uploaded Provenance Actions
crovia_tacet_operator-0.5.1.tar.gz 33.3 kB With provenance Details for crovia_tacet_operator-0.5.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for crovia-tacet-operator 0.5.1
File Interpreter ABI Platform Actions
crovia_tacet_operator-0.5.1-py3-none-any.whl Python 3 none any Details for crovia_tacet_operator-0.5.1-py3-none-any.whl

Total release size: 67.4 kB

Release files / crovia_tacet_operator-0.5.1.tar.gz

Download URL crovia_tacet_operator-0.5.1.tar.gz
Size 33.3 kB
Tags Source
SHA-256 checksum
How to use checksums
f307101a1b519aaf0d36105e3e42790bac2d4b81316544cec23161f3caaa8e2b
BLAKE2b-256 checksum
How to use checksums
39d18e878cbabe88d807e3ea464d471b1140c4f9cc8026c5ea19165bacb5c28e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Release files / crovia_tacet_operator-0.5.1-py3-none-any.whl

Download URL crovia_tacet_operator-0.5.1-py3-none-any.whl
Size 34.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc85eb1bb6c66dacfe3f7ab0ec9ea89166b471cc7f53a625f3f960ef6674748c
BLAKE2b-256 checksum
How to use checksums
0bc61b3dd70e6ef60f6062247d051b3e2f6871177c3eae7af64b18b2ed3ba682
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

Security for crovia-tacet-operator 0.5.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for crovia_tacet_operator-0.5.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page