aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport
Commit message (Collapse)AuthorAgeFilesLines
* envelope: a signed value names its swarmtv3 days1-1/+1
| | | | | | | | | | | | Review 3.1, part of finding 12: a signed value's payload bound path, user, time and prev, but not the swarm. A user with the same name and key in two swarms could have an envelope replayed from one into the other, wherever the path holds no envelope yet (prev ""). The payload now names the swarm (`swarm`), and a node takes an envelope only for its own. /auth/whoami says the swarm, and continuum-signed and the example in api.md sign it. Wire version 44: nodes before this refuse such envelopes, and those after refuse the old ones.
* 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)tv3 days3-2/+37
| | | | | | | | | 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)tv3 days3-2/+33
| | | | | | | 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 messagestv3 days2-1/+6
| | | | | | | 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 removedtv3 days4-155/+4
| | | | | | | | | 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.
* dashboard: subscribed nodes' messages in the consoletv3 days1-6/+22
| | | | | | | Each tick's messages of a subscribed node, listed in the console with this node's own, from its own stream. Auth plan M3 (live data from every reachable node).
* HyParView (slim)tv5 days3-2/+81
|
* plumtreetv5 days3-2/+51
|
* indirect probestv5 days3-2/+72
|
* soak with churn testtv5 days1-0/+6
|
* other wire versions warnedtv5 days4-16/+59
|
* tor claims boundedtv5 days1-14/+45
|
* identity evicts the silenttv5 days1-2/+30
|
* libp2p: strangers reads aparttv5 days1-6/+25
|
* strangers messages smalltv5 days6-8/+162
|
* tor links in ordertv6 days1-1/+39
|
* round trips in treestv6 days6-2/+15
|
* tree latency measuredtv6 days1-0/+10
|
* push by defaulttv6 days1-4/+4
|
* pushed heads as tipstv6 days2-2/+3
|
* push changes experimenttv6 days3-2/+13
|
* suspect pathstv6 days3-17/+134
|
* deflate blob chunkstv6 days2-1/+13
|
* deflate blob chunkstv6 days3-2/+4
|
* epoch tag in synctv6 days2-7/+79
|
* no swarm ID in synctv6 days2-3/+1
|
* dashboard: swarm-wide epoch shinetv6 days2-1/+6
|
* delta from held headstv6 days1-2/+2
|
* sim links push backtv6 days1-18/+33
|
* sim link ratestv6 days1-1/+49
|
* time blob messagestv6 days3-1/+8
|
* hop delaystv7 days2-1/+5
|
* any message taken as deliveredtv7 days2-1/+7
|
* tree messages need no answertv7 days1-1/+1
|
* announcements answered when lackingtv7 days1-2/+2
| | | | | | | 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.
* unanswered members not reachedtv8 days1-1/+1
|
* replace eager links by treestv8 days6-20/+2
|
* add writer treestv8 days2-1/+6
|
* measure 2-hop neighbourhoodtv8 days6-2/+14
|
* dashboard: show eager links on the maptv8 days2-1/+7
|
* introduce eager linkstv8 days6-2/+14
|
* announcements answered only if heads differtv8 days6-2/+14
|
* swarm: relay links messagestv8 days2-3/+30
|
* add per-node traffic countstv9 days1-0/+52
|
* probe when reachabletv9 days7-0/+39
|
* dashboard: always try showing ping/pong aliastv10 days1-0/+6
|
* ping & pong are tied by nonce onlytv10 days2-5/+18
|
* introduce per-transport sync reply timeouttv10 days5-0/+33
|
* path probes follow keepalivetv10 days2-9/+40
|