You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
pollinate: add cactus-pollinate, a mirror-repair service
cactus-pollinate follows the Chrome MTC cosigners list, watches every
issuer's logs and every mirror's copy of them, and pushes missing
entries (via the c2sp.org/tlog-mirror write API) to any mirror that has
been lagging the log head for longer than a configured delay. CAs are
expected to push on their own; pollinate is the backstop for mirrors
they are failing to reach — including bootstrapping brand-new mirrors.
Discovery probes both layouts seen in the wild: a single log at the
bare CA base URL and mtc-tlog-profile logs at <CA prefix>/<n>. A log's
identity is the origin its checkpoint declares, including non-oid/
origins. Reads go through tlog.TileHashReader, so every hash and entry
is authenticated against the source checkpoint root without keeping a
local replica (Cloudflare's bootstrap log has 229M entries); sources
are picked freshest-first with random tie-breaks to spread read load,
and verified tiles are shared through a bounded cache.
Lag is measured against history, not the current head: the state file
(pollinate/state.json) records when the head was first seen at each
size, and a mirror is only pushed entries the head already had a full
delay window ago. Mirrors that answer "unknown origin" on the
submission API are recorded as not carrying the log and rechecked on an
interval or when the cosigners list version changes.
Issuer checkpoints are signature-verified when the key is ML-DSA-44;
mirror cosignatures on push responses are always verified, with keys
matched from the cosigners PEM bundle by key_sha256 (the SHA-256 of the
SPKI DER). Prometheus metrics (cactus_pollinate_*) and slog JSON output
follow the cactus server's conventions, including loopback-gated pprof.
Tested end-to-end against a stub mirror that verifies every pushed
subtree consistency proof, and live against a real Sunlight
witness/mirror (562-entry bootstrap push, cosignature verified, mirror
copy recomputes to the CA's signed root).
0 commit comments