aboutsummaryrefslogtreecommitdiffstats
path: root/docs/peers.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/peers.md')
-rw-r--r--docs/peers.md10
1 files changed, 6 insertions, 4 deletions
diff --git a/docs/peers.md b/docs/peers.md
index 760412f..be77d5a 100644
--- a/docs/peers.md
+++ b/docs/peers.md
@@ -309,10 +309,12 @@ the default keepalive), and nothing goes into the document. `GET /peers` shows i
A writer's changes pass on along its tree ([`swarm/tree.rs`](../src/swarm/tree.rs)), the same on every node:
built on the graph the member list gives (as if every member reached every other) and
on whom each member says it reaches. Members are ordered by their distance from the
-writer over that graph, then by key; a member's parent is the neighbour it reaches that
-comes before it, the closest to the writer first, then by pair score. Coming before
-rules out cycles; taking only one it reaches routes around links that don't work (one
-behind NAT that reaches a single member takes that one). A sync message that passes a
+writer over that graph, then whether they reach a member a hop closer, then by key; a
+member's parent is the neighbour it reaches that comes before it, the closest to the
+writer first, then one that reaches closer, then by pair score. Coming before rules out
+cycles; taking only one it reaches routes around links that don't work: where a writer
+behind NAT reaches a single member, that one comes first among those as far from it,
+and the others take it as their parent. A sync message that passes a
writer's change on says whose; whoever applies one sends it at once to its children in
that writer's tree, however it got it, and leaves them out of its announcement round.
A member without a parent it reaches, or whose parent missed the change, gets it by