aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-04 23:38:17 +0100
committertv <tv@krebsco.de>2026-11-04 23:38:17 +0100
commitdc013e3cd887da2989176853837cea578c84da57 (patch)
tree7b5731e56f155e47ffae2415b9f2e6568630b663 /docs
parentd9c61bd526fd83165d583cb5d75be66385611be4 (diff)
one delta at a time
Diffstat (limited to 'docs')
-rw-r--r--docs/peers.md6
1 files changed, 5 insertions, 1 deletions
diff --git a/docs/peers.md b/docs/peers.md
index 1219149..d22fef6 100644
--- a/docs/peers.md
+++ b/docs/peers.md
@@ -166,7 +166,11 @@ as it knows them). The peer fetches them as a blob, in chunks, from the sender a
other peer holding those heads (every such peer produces the same bytes), loads them,
and syncs on; the rest goes in ordinary messages. Until the peer answers, the sender
sends it nothing; if the answer is overdue, it offers again. This is how a join without a
-recent remake, or a return after much was written, gets the bulk of its changes.
+recent remake, or a return after much was written, gets the bulk of its changes. A node
+downloads one delta at a time: while a large one comes, it lacks those changes, so its
+other neighbours offer them too, and they would come once per offer. Offers that come
+meanwhile wait; once the delta is in, the node syncs with those that offered, which then
+send only what is still missing.
Towards a peer on a slow link the limit is lower: a message is offered as a delta if it
would take more than 5 s at the throughput measured to that peer (`syncThroughput`,