diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/architecture.md | 2 | ||||
| -rw-r--r-- | docs/peers.md | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/docs/architecture.md b/docs/architecture.md index 0ef4f37..2ad7638 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -235,7 +235,7 @@ tree reaches them, else in the slow round 2 s later. replies, admit (swarm key), mark the peer seen, record its epoch (ignoring late ones), then by type: HELLO answered, HELLO_REPLY establishes membership and discovers peers, sync queued on its lane if on our epoch (held back from everyone but the source while catching -up), STATUS answered with a STATUS_REPLY (an announcement only if the heads differ) and compared for divergence, blobs served or collected, +up), STATUS answered with a STATUS_REPLY (an announcement only if the receiver lacks some of its heads) and compared for divergence, blobs served or collected, LINKS answered with the node's links if the asker is a member, and again on each change while it subscribes, or with other members' links it asks for the asker, which can't reach them (`swarm::links`, for the dashboard); PING and PONG (the paths layer answered the PING already) only mark the peer seen, and after a PONG the peer's round-trip time is its path's again. diff --git a/docs/peers.md b/docs/peers.md index c2f1ddb..8b58df0 100644 --- a/docs/peers.md +++ b/docs/peers.md @@ -281,8 +281,9 @@ backbone (with 20 stable of 250 members and k = 12: about 65 links per stable me Changes travel through a partial mesh by announcement and pull ([`swarm/relay.rs`](../src/swarm/relay.rs)): a node pushes its own writes to its neighbours; after applying changes from one neighbour it sends its other neighbours a STATUS with its new heads (marked as an announcement: no -keepalive, and answered only by a neighbour whose heads differ, so one that has the -changes already sends nothing back; nor is a neighbour told whose latest heads, as its +keepalive, and answered only by a neighbour that lacks some of those heads, so one that +has the changes already sends nothing back, even if its heads differ, as they do while +writes go on and newer changes are still on their way to it; nor is a neighbour told whose latest heads, as its own announcement or STATUS brought them, are this node's: announcements wait 200 to 400 ms, at random, so of two neighbours with the same news one is usually first, and the other skips it), and a neighbour that lacks those heads pulls them (it sets them as the peer's heads in its sync state, so Automerge asks |
