aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-09 15:30:50 +0000
committertv <tv@krebsco.de>2026-11-09 18:16:26 +0100
commitc4b33b9b4aff6129291021448ae21298049093ae (patch)
tree24f7cc0d1e5c19fc6f9465d2c18304eadb5d8f0c /docs
parent62b2f880a1a209e396d3adaef6a38395298011c6 (diff)
roots: only the seeds' roots end the wait for them
Review 4, R2 partly (F8): a joining node waited for "each of its seeds" to name the swarm's root as a count, of every admitted peer that named one. Node identities are self-made and admission is the swarm key: a member answering a joiner under as many identities as it has seeds, naming its own root within the wait, made the joiner pin it before the real seeds answered, and refuse them after as another history. Now the seeds are the nodes proven at the seeds' addresses (`roots::seed_found`, as `bootstrap::resolve_seeds` finds them), and only their roots count toward the wait and start its clock. Another peer naming a root still disputes it (no root while they differ), so such a member can keep a joiner from joining, as any member can, but not hand it another root. access.md says so.
Diffstat (limited to 'docs')
-rw-r--r--docs/access.md9
1 files changed, 6 insertions, 3 deletions
diff --git a/docs/access.md b/docs/access.md
index 3877dff..6422b51 100644
--- a/docs/access.md
+++ b/docs/access.md
@@ -357,9 +357,12 @@ ID: a forged root, or a genesis started again).
A node joining with an empty document takes as its root only the one it was given
(`--genesis-root`), or else the one its peers name, and none while they name different
ones; and none before each of its seeds named one, or ten seconds passed since the
-first did. So without `--genesis-root`, the root is the one the seeds that answer within
-that wait agree on: one peer hands a joiner another root only if it is all the joiner
-hears by then; with `--genesis-root`, never.
+first did. Its seeds are the nodes proven at the seeds' addresses: another peer naming
+a root (one of a member's own identities, say) disputes it, but neither ends the wait
+nor starts it. So without `--genesis-root`, the root is the one the seeds that answer
+within that wait agree on, none while any peer names another: one seed hands a joiner
+another root only if it is all the joiner hears of its seeds by then; with
+`--genesis-root`, never.
What it doesn't do yet: