diff options
Diffstat (limited to 'docs/peers.md')
| -rw-r--r-- | docs/peers.md | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/peers.md b/docs/peers.md index f19e699..0b31556 100644 --- a/docs/peers.md +++ b/docs/peers.md @@ -358,6 +358,16 @@ pair exchanges changes it sends no keepalives, and so no STATUS, however long th writes go on. `GET /peers` shows it (`localReaches`, and `reaches` per peer). +Where its links differ from the member list's graph for a while, a member records so in +its registry entry ([`swarm/working_links.rs`](../src/swarm/working_links.rs), `links`): +its neighbours by the graph it doesn't reach (`unreached`), once down for four keepalive +intervals, and its neighbours it reaches that the graph doesn't link it to (`reached`: +a ring going round a member it doesn't reach, a member reaching out from behind NAT), +once up for one; each comes out again after the +other hold. On a stable swarm the entry has none. A member that went away is recorded +as unreached by its neighbours (they can't tell it from a link that broke), and taken +out once they reach it again. + 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 |
