aboutsummaryrefslogtreecommitdiffstats
path: root/src/state/peer.rs
Commit message (Collapse)AuthorAgeFilesLines
* sync: a message carries the signatures of its changestv3 days1-5/+0
| | | | | | | | | | | | | | | A sync message carried the signatures its peer wasn't sent yet, by a cursor per peer. Changes sent again, as after a message taken as delivered and lost on the way, went without them: the peer was past them. Under a policy requiring signatures they waited until the writer's next signed change, or the next session. A message now carries the signatures of the changes it carries (Signatures::for_changes), whatever the peer was sent before: changes sent again arrive vouched for as the first time. Past 256 (a message carrying the batches of many writers), each writer's latest instead, as a delta carries. The cursor goes, and with it resetting it after a failed send or a new session.
* sync: a member refused as a whole, synced with again once it changed documenttv3 days1-0/+5
| | | | | | | | | | | | A node refusing a member as a whole sent it nothing, and lifted that only when a change of the member's was taken again. But a member that dropped what was refused (REFUSALS) starts its sync sessions over, and a fresh session sends no changes until the other side answers: the two waited for each other, and the member stayed refused. The refusal now notes the member's run and epoch_seq when it began; a member with another document since (it dropped what was refused, or rejoined) is synced with again.
* signatures: with sync messagestv4 days1-0/+5
| | | | | | | Sync messages carry, for each actor's writes, the latest signature the sender checked; the receiver checks it once it holds the change. Auth plan M5.
* handshakes countedtv5 days1-0/+56
|
* worker sends off the passtv5 days1-1/+6
|
* suspend detectedtv5 days1-0/+12
|
* one grace wait per peertv5 days1-0/+4
|
* asks by askertv6 days1-0/+5
|
* round trips in treestv6 days1-0/+5
|
* announce only to those behindtv7 days1-2/+2
|
* asked again countertv7 days1-0/+5
|
* hop delaystv7 days1-0/+3
|
* slow round back offtv7 days1-0/+3
|
* hello again when heard fromtv7 days1-0/+52
| | | | | | While we wait for a peer's HELLO_REPLY, anything else that comes from it makes our HELLO go again at once, at most once a second, instead of when the backoff says.
* no heal while both move ontv7 days1-3/+49
| | | | | | | The heal clock now also restarts when our heads and the peer's have both changed since the last STATUS that showed them differing. While writes go on, two neighbours's heads differ because of changes still on their way, and that alone no longer leads to a heal.
* overdue sync asked after from thentv7 days1-45/+88
|
* unanswered sync asked aftertv7 days1-6/+28
| | | | | An overdue sync answer is now followed by a PING too, and the peer stays reached once it answers the PING.
* unanswered members not reachedtv8 days1-3/+82
|
* replace eager links by treestv8 days1-10/+0
|
* add writer treestv8 days1-0/+4
|
* measure 2-hop neighbourhoodtv8 days1-0/+5
|
* introduce eager linkstv9 days1-0/+10
|
* skip neighbours with our headstv9 days1-0/+5
|
* retry new peers before probingtv9 days1-5/+37
|
* probe list memberstv9 days1-3/+8
|
* large messages over slow links are deltastv10 days1-0/+29
|
* peer worker sleeps until deadline, not fixed timetv10 days1-18/+55
|
* move SyncSession to documenttv11 days1-1/+2
|
* dashboard: try to get links dormant immediatelytv11 days1-1/+38
|
* centralize call to topology_changetv11 days1-0/+13
|
* unify sync_on predicatetv12 days1-0/+8
|
* farewell means dormanttv12 days1-2/+15
|
* add support for renaming IDs in the loggertv2026-10-281-1/+4
|
* peers from member list start as unknowntv2026-10-281-6/+33
|
* keepalive takes turnstv2026-10-281-11/+85
|
* move keepalive and firewall to pathstv2026-10-281-18/+72
|
* rename PING/PONG to STATUS/STATUS_REPLYtv2026-10-281-12/+12
|
* talk about "transport" unless mycelium is meanttv2026-10-271-1/+1
|
* add Transport::delivery_limittv2026-10-271-1/+1
|
* replace utoipa by static openapi.yamltv2026-10-261-1/+1
|
* unreachability doesn't expiretv2026-10-261-9/+56
|
* number handshakestv2026-10-261-0/+7
| | | | This prevents late hellos from resetting the session.
* split state moduletv2026-10-251-0/+352