From 22e539d9285626ed217c661e6a5e5d2adb12150c Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 2 Nov 2026 22:59:58 +0100 Subject: swarm: announce to whom writers can't reach --- docs/architecture.md | 3 ++- docs/peers.md | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'docs') diff --git a/docs/architecture.md b/docs/architecture.md index e0e2c94..07edbfb 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -225,7 +225,8 @@ catch-up source. The phases, what each serves and how the files come in: [`lifec the write lock, stamped with the clock) → `publish_change` (bumps the version, emits `DocumentChanged`) → the sync worker generates a message per neighbour → each neighbour applies it, relays its new heads to *its* neighbours, which pull what they -lack. In a full mesh (up to `k + 1` members) the writer reaches everyone directly. +lack. In a full mesh (up to `k + 1` members) the writer reaches everyone directly, but +those on none of its transports, to whom the nodes between announce. **An inbound message.** Consumer → `handle_message`: drop our own and stale-run replies, admit (swarm key), mark the peer seen, record its epoch (ignoring late ones), diff --git a/docs/peers.md b/docs/peers.md index 95b4dab..c63cec1 100644 --- a/docs/peers.md +++ b/docs/peers.md @@ -284,7 +284,10 @@ the current pull is answered, if they still have something it lacks. The regular STATUS (every third keepalive) triggers the same pull, so gaps close within a few keepalive intervals. A node that just caught up announces its heads once. In a full mesh nothing is announced: the -writer reaches everyone (while a node doesn't know its neighbours yet, it announces). +writer reaches everyone (while a node doesn't know its neighbours yet, it announces); +but to the neighbours the writer can't reach, those on none of its transports (by the +member list, the writer's neighbours as this node computes them): a node on Tor and +libp2p announces to one on Tor alone what came from one on libp2p alone. ## Keepalive and self-healing -- cgit v1.3.1