From c4b33b9b4aff6129291021448ae21298049093ae Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 9 Nov 2026 15:30:50 +0000 Subject: 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. --- docs/access.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'docs/access.md') 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: -- cgit v1.3.1