aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm/relay.rs
Commit message (Collapse)AuthorAgeFilesLines
* announce only to those behindtv3 days1-12/+28
|
* covered neighbours have ittv3 days1-4/+10
|
* slow round back offtv3 days1-5/+81
|
* tree messages need no answertv3 days1-1/+8
|
* unanswered pull frees the slottv3 days1-1/+22
| | | | | | When the answer to a pull is overdue (the sync reply timeout: 1 s in the simtests, 10 s in production), the pull gives up the slot, and the next waiting neighbour is pulled at once.
* pull after gracetv4 days1-3/+32
| | | | | | | | Before pulling, a node waits one measured round trip to the announcer (1 s at most) and pulls only what is still missing. If the round trip isn't known yet, it pulls at once, as now. On the clean benchmark links the round trip is a few milliseconds, so those scenarios shouldn't change.
* announcements answered when lackingtv4 days1-1/+7
| | | | | | | A neighbour now answers an announcement only if it lacks some of the announced heads. Heads that merely differ are no longer enough, since they do while writes go on. The check reads the document, so it runs off the message consumer, as the pull check already does.
* writers from authorstv4 days1-16/+19
|
* announcement round counterstv5 days1-6/+8
|
* docs after treestv5 days1-5/+6
|
* announce what trees misstv5 days1-15/+62
|
* replace eager links by treestv5 days1-81/+16
|
* add writer treestv5 days1-20/+36
|
* measure 2-hop neighbourhoodtv5 days1-3/+3
|
* add eager link counterstv5 days1-0/+3
|
* introduce eager linkstv5 days1-13/+79
|
* skip neighbours with our headstv5 days1-15/+36
|
* announcements answered only if heads differtv5 days1-5/+6
|
* always announce new headstv5 days1-34/+8
|
* swarm: announce to whom writers can't reachtv5 days1-10/+46
|
* use Automerge as Document instead of AutoCommittv7 days1-2/+2
| | | | This allows a lot of operations to drop mut.
* move all automerge references to documenttv7 days1-9/+2
|
* rename AutoMerge to Documenttv7 days1-1/+1
|
* unify request_sync logictv8 days1-4/+1
|
* rename PING/PONG to STATUS/STATUS_REPLYtv11 days1-6/+6
|
* talk about "transport" unless mycelium is meanttv12 days1-1/+1
|
* make clippy happy againtv12 days1-1/+1
|
* add sync and relay statstv12 days1-1/+9
|
* keepalive sends head samples alongside digesttv12 days1-21/+22
| | | | | | When there are more than 32 heads that can be send in a single keepalive message, the digest is accompanied by 32 heads, a different window each time, so after a few keepalives every head has been listed.
* add pull queuetv12 days1-31/+79
|
* read stamps sync and lock freetv12 days1-2/+3
|
* SyncSessions owns Automerge's sync statetv13 days1-2/+1
|
* unify lock logictv13 days1-14/+5
|
* coalesce announcementstv14 days1-2/+56
|
* cache headstv14 days1-0/+4
| | | | To reduce the number of write locks, heads are now cached.
* record RTT from keepalive messagestv2026-10-241-8/+3
|
* pull missing changestv2026-10-241-0/+126
Nodes push changes to their neighbours but don't relay them directly. In a partial mesh, nodes can learn about missing changes via keepalive messages and can pull them from their neighbours.