aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-08 18:17:14 +0000
committertv <tv@krebsco.de>2026-11-08 19:29:10 +0100
commit96ba15cf1a6f8725f70f429695a5a9661f706eb0 (patch)
tree36feecb42a8bfa5317f27a052266f74489312dfc /docs
parent4ce3bde36bb8283d82b914f0f73e30d89c935113 (diff)
strict: a manifest serves one remake, at its base
Review 2, N1: a strict manifest wasn't bound to its base. Any member could propose an old, legitimately signed one again at the current heads; nodes would verify it and vote, and every value at a signed place changed or added since (a ban, a new user, a rotated key, a changed userSigned or sealed declaration) would be deleted, nothing after the base being left to replay. The manifest now names the epoch and the heads it was made at, and a node takes it (proposing or voting) only for a remake of that epoch with exactly that base. GET /admin/strict-manifest makes it so; continuum-signed strict proposes at those heads already.
Diffstat (limited to 'docs')
-rw-r--r--docs/access.md3
1 files changed, 2 insertions, 1 deletions
diff --git a/docs/access.md b/docs/access.md
index 657ab94..d7e05ab 100644
--- a/docs/access.md
+++ b/docs/access.md
@@ -427,7 +427,8 @@ continuum-signed strict
```
shows the values it would keep (`GET /admin/strict-manifest`: every value at a signed
-place now, by its digest, and the policy with `"values": "signed"`), signs the
+place now, by its digest, and the policy with `"values": "signed"`, for this epoch at
+the heads it is at, so it serves one remake, at those heads, and no other), signs the
manifest once confirmed (`ssh-keygen -Y sign -n continuum-strict`, with a key of
`--strict-keys`), and proposes the remake at the heads it was made at (`{"kind":
"strict", "spec": {"manifest": "<its line>\n<its signature>"}, "baseHeads": […]}`). To