aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport/wire.rs
Commit message (Collapse)AuthorAgeFilesLines
* rules: a carried remake record taken from the coordinator its snapshot namestv3 days1-1/+1
| | | | | | | | | | | | | | | | | Review finding 7, second part: a record carried into a new epoch whole (proposal and decision in one change) was taken from any member, for any remake ID. A member could write a forged record, decision included, for a fresh ID in a single change. The snapshot's epoch metadata now names the remake's coordinator, as the quorum built it. The carried-record exception holds only in a later epoch, only for the remake that made it, and only from the coordinator its snapshot names, where there is no record yet. Wire version 43: the snapshot, and so the epoch ID, changes. The review suggested carrying the record inside the snapshot instead. The snapshot can't hold the decision, which names the snapshot's own hash. So the snapshot vouches for who may carry the record instead.
* swarm: changes taken unjudged, dropped (REFUSALS)tv4 days1-2/+11
| | | | | | | | | A node refusing changes a peer brought tells it which broke a rule; the peer judges them itself, and if its rules refuse them too, drops them with all built on them (its document forked without them, a fresh actor), quarantining its own writes among them. Wire version 42. Auth plan M6 (rejoin on taint).
* signatures: on their own (SIGNATURES)tv4 days1-2/+11
| | | | | | | Signatures no sync message took go on their own within a second, to each peer not sent them yet (wire version bumped). Auth plan M5.
* signatures: with sync messagestv4 days1-1/+2
| | | | | | | 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.
* dashboard: without LINKS; LINKS removedtv4 days1-47/+2
| | | | | | | | | The dashboard reads every member's links from the members themselves; LINKS and LINKS_REPLY, swarm::links and their wire tags go (wire version bumped). Nodes the browser can't reach are drawn from what the reachable ones measure. Auth plan M3.
* HyParView (slim)tv5 days1-2/+30
|
* plumtreetv5 days1-2/+21
|
* indirect probestv5 days1-2/+23
|
* other wire versions warnedtv5 days1-0/+46
|
* round trips in treestv6 days1-2/+6
|
* pushed heads as tipstv6 days1-1/+1
|
* push changes experimenttv6 days1-1/+1
|
* deflate blob chunkstv6 days1-1/+1
|
* deflate blob chunkstv6 days1-1/+1
|
* epoch tag in synctv6 days1-2/+15
|
* no swarm ID in synctv6 days1-2/+1
|
* dashboard: swarm-wide epoch shinetv6 days1-1/+2
|
* time blob messagestv7 days1-1/+3
|
* hop delaystv7 days1-1/+2
|
* any message taken as deliveredtv7 days1-1/+2
|
* tree messages need no answertv7 days1-1/+1
|
* replace eager links by treestv8 days1-8/+2
|
* add writer treestv8 days1-1/+2
|
* measure 2-hop neighbourhoodtv8 days1-2/+6
|
* dashboard: show eager links on the maptv8 days1-1/+3
|
* introduce eager linkstv8 days1-2/+6
|
* announcements answered only if heads differtv8 days1-2/+6
|
* swarm: relay links messagestv9 days1-1/+9
|
* fixup: golden byte follows wire versiontv10 days1-6/+17
|
* links report downtv11 days1-1/+2
|
* rename AutoMerge to Documenttv11 days1-5/+5
|
* links replies carry clock offsetstv11 days1-7/+11
|
* pong carries timetv11 days1-17/+22
|
* unify hex builderstv11 days1-1/+1
|
* unify wire encodertv11 days1-1/+16
|
* allow links subscriptionstv12 days1-7/+8
|
* farewell means dormanttv12 days1-7/+11
|
* links answers connection typetv12 days1-7/+8
|
* dashboard: show all links between peerstv12 days1-7/+11
|
* add links messagestv12 days1-8/+33
| | | | | | | | | Introduce two new wire messages, LINKS and LINKS_REPLY (swarm::links). A member answers with its links: for each peer, the transport, whether it’s relayed, the RTT, and whether it’s dormant. It answers members only, at most every 5 s. This bumps wire::VERSION to 7. Every build answers, with or without the feature, so every node needs this patch before the map shows anything beyond its own node.
* decouple simulation test from myceliumtv12 days1-0/+87
|
* measure pathstv2026-10-281-5/+24
|
* rename PING/PONG to STATUS/STATUS_REPLYtv2026-10-281-18/+19
|
* add identity layertv2026-10-271-6/+48
|
* introduce addressestv2026-10-271-8/+20
|
* add delta blobstv2026-10-261-4/+26
|
* turn all pub into pub(crate)tv2026-10-261-1/+1
|
* decode sync messages lazilytv2026-10-261-7/+12
| | | | | | | Sync messages are now being decoded only where they are applied: after membership has been checked, in the sync lane's blocking task. Debug now shows only the size instead of the whole message.
* keepalive sends head samples alongside digesttv2026-10-261-12/+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.
* include version in wire formattv2026-10-261-7/+90
|