aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport/paths.rs
Commit message (Collapse)AuthorAgeFilesLines
* dashboard: the transport each message went by, in the consoletv3 days1-1/+1
| | | | | | | | | | | | | | | The console said with whom a message went, not how: the message log was noted above the identity layer (`CountingTransport`), where a message is to or from a node, and the address it went to (the paths layer picks one, `Paths::send_first`) or came from is gone. Only the paths layer's own PINGs and PONGs, logged under their addresses, had one. Now the identity layer notes the node's messages (`MessageLog::set_addressed`), with the address each went to (`IdentityTransport::send_proven` returns it) or came from; `CountingTransport` leaves them to it, and still notes them where there is no identity layer (tests). A console line ends with the transport (the address's scheme, in its colour on the map, the address in the tooltip), and the figures box shows the address. A subscribed node's messages carry theirs too, and the map runs every message along its transport's line, not only the PINGs and PONGs.
* paths: PINGs of a path take turns with the peer'stv3 days1-4/+82
| | | | | | | | | | | | | | | | | | The node's keepalives take turns between the two sides (`PeerState::keepalive_due_at`), but the paths layer pinged every path in use every `probe_every` (the keepalive interval, 30 s at least) whatever the peer did: a PING from the peer over the path didn't count. So both sides pinged each path every interval, often within a second of each other (seen on the dashboard: a PING answered, and our own PING right after it). Now a PING from the peer over a path is noted (`PathState::peer_probe`), and a path is pinged again (`rested`) an interval after the peer's PING, if that came last; after ours, an interval and a half while the peer pings too (its PING within two intervals before ours), so its turn comes first; else an interval. One exchange per interval goes over a path, as the measurements' "two keepalives per neighbour per interval" says, and each side measures every other interval; a shorter `--keepalive` measures more often. A path whose way out broke while the peer's PINGs still come in is found by our own PINGs half as often; a failed send or unanswered traffic (`suspect`) still pings at once.
* dashboard: without LINKS; LINKS removedtv4 days1-1/+1
| | | | | | | | | 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.
* round trips in treestv7 days1-0/+1
|
* suspect pathstv7 days1-17/+121
|
* replace eager links by treestv9 days1-1/+0
|
* measure 2-hop neighbourhoodtv9 days1-0/+1
|
* introduce eager linkstv9 days1-0/+1
|
* announcements answered only if heads differtv9 days1-0/+1
|
* probe when reachabletv10 days1-0/+7
|
* ping & pong are tied by nonce onlytv10 days1-2/+8
|
* introduce per-transport sync reply timeouttv10 days1-0/+10
|
* path probes follow keepalivetv10 days1-8/+37
|
* bootstrap: replace pull by progress notifytv10 days1-0/+7
|
* libp2p: revise published address count/selectiontv10 days1-4/+17
|
* config: use individual transport enable flagstv11 days1-1/+1
|
* links replies carry clock offsetstv12 days1-1/+1
|
* contradicting clock samples replace stored onestv12 days1-3/+15
|
* calculate peer clock drifttv12 days1-5/+90
|
* pong carries timetv12 days1-3/+16
|
* looking at paths doesn't change themtv12 days1-28/+83
|
* measure every path in usetv12 days1-14/+42
|
* farewell means dormanttv12 days1-0/+1
|
* track connection type per pathtv12 days1-1/+4
|
* decouple simulation test from myceliumtv12 days1-1/+1
|
* make mycelium optionaltv12 days1-1/+1
|
* libp2p: add punching statstv14 days1-0/+6
|
* paths: make probes location-awaretv14 days1-3/+43
|
* log messages in paths layertv14 days1-1/+16
|
* list libp2p relays in documenttv2026-10-281-0/+13
|
* add support for renaming IDs in the loggertv2026-10-281-0/+5
|
* consistently show addresses in /peerstv2026-10-281-8/+11
|
* show peer destination path address in canonical formtv2026-10-281-10/+10
|
* add location info to pathstv2026-10-281-13/+31
|
* ping go out in their own taskstv2026-10-281-6/+44
|
* get swarm RTT from pathstv2026-10-281-0/+5
|
* register PING before sending ittv2026-10-281-3/+9
|
* measure RTT on single link paths, tootv2026-10-281-13/+38
|
* move keepalive and firewall to pathstv2026-10-281-23/+165
|
* measure pathstv2026-10-281-51/+517
|
* failover between transportstv2026-10-281-9/+192
|
* introduce paths layer (split off identity layer)tv2026-10-281-0/+364