aboutsummaryrefslogtreecommitdiffstats
path: root/src/remake/local.rs
Commit message (Collapse)AuthorAgeFilesLines
* remake: turning a running swarm strict, keeping what an operator signedtv3 days1-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until a swarm is strict, the user a change names is its node's word, so any member could have planted registry entries, policy, bans or user-signed values as any user, plain or signed by a key it put there itself; writing the strict policy trusted all of it as it was. A remake of a new kind, `strict`, turns a swarm strict instead: * Its content is a manifest (access::strict): the swarm, the strict policy, and each value kept at the places values are signed, by the SHA-256 of its JSON, signed by an operator (ssh-keygen -Y sign -n continuum-strict). * Every node builds the next epoch as compaction does, keeping at the signed places only the values the manifest names, as they were at the base, and writing its policy (RemakeKind::protocol, the one kind that changes protocol data). Writes after the base reach the new epoch only by replays, judged by the strict policy. * A node votes for one only with its manifest signed by one of --strict-keys, keys given out of the document; without any, for none (logged once, `Not voting for a strict remake`), unless --follow-strict-remakes. A coordinator proposes only what it would vote for (403). Once a majority commits one, every node switches, as with any remake: refusing to switch would only cut a node off. * GET /admin/strict-manifest gives the manifest keeping everything held now, the values for review and the heads they are at; continuum-signed strict shows them, signs once confirmed and proposes at those heads. The sim a_swarm_turning_strict_through_a_remake: a member plants a registry entry as a manager; the operator's manifest leaves it out; a and b, given the key, commit; c, without, follows; the entry is gone and the policy strict everywhere.
* dashboard: add epoch switch indicatortv6 days1-0/+6
|
* remake: download wakes on end instead of tickertv10 days1-2/+14
|
* document: allow writes during rejointv10 days1-3/+8
|
* remake: log expired and missed votestv10 days1-0/+9
|
* remake coordination use document, not automergetv11 days1-8/+8
|
* remake worker wakes up when vote is duetv2026-10-261-0/+8
|
* add remake statstv2026-10-261-0/+5
|
* don't cast votes once there's a majoritytv2026-10-261-0/+21
|
* wrap unix timestamps in newtypetv2026-10-261-13/+14
|
* allow humand-friendly durations in APItv2026-10-261-3/+3
|
* unify lock logictv2026-10-261-3/+2
|
* add clock moduletv2026-10-251-12/+18
| | | | | The Clock module is the system clock that every unix timestamp new goes through. It comes with an offset that only tests can set.
* only keep list of actor IDs within one epoch (fixup)tv2026-10-251-2/+10
|
* nodes keep list of every actor ID they've usedtv2026-10-251-1/+16
|
* remake coordinators resume after restarttv2026-10-241-0/+15
|
* add votes registertv2026-10-241-1/+16
|
* put remake content into blobstv2026-10-241-4/+44
|
* add chunked download and use it during rejointv2026-10-241-0/+19
|
* rename compaction to remaketv2026-10-211-0/+320