| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | roots: an epoch's root pinned, and named in every handshake | tv | 5 days | 1 | -0/+6 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Review 2, N7, the care it raised: a joining node's empty document took as the first epoch's root whatever dependency-less change came first, from whichever peer it joined through; the first epoch's ID is all zeros, so nothing pinned it. A remake's epoch has its ID, the snapshot change's hash, which the rules hold its root to. * Every node names its epoch's root in HELLO and HELLO_REPLY (the epoch's ID for a remake's, its genesis change for the first; wire version 45). A node whose document starts from another root of the same epoch refuses the handshake, logging it: another history under the swarm's ID, a forged root or a genesis started again. * A joining node with an empty document takes as its root only the one it was given (--genesis-root, new), else the one its peers name, and none while they name different ones (access::screen::RootPin, kept in Screening across documents): one peer hands it another root only if it is all the joiner hears, or never, with --genesis-root. A root refused is listed with the refused, what builds on it with it. * The genesis node logs the root (`The swarm's root`); GET /admin/epochs shows it (`root`). A genesis started again under a remembered swarm ID used to merge with the nodes of it still running; they now refuse it (another root), and the docs say to join them with seeds instead. The epoch's identity stays as it is (generation 0 all zeros): records and epoch metadata name it so, and every comparison of epochs with them. | ||||
| * | handshakes counted | tv | 7 days | 1 | -0/+7 |
| | | |||||
| * | strangers messages small | tv | 7 days | 1 | -0/+4 |
| | | |||||
| * | retry new peers before probing | tv | 11 days | 1 | -1/+1 |
| | | |||||
| * | probe list members | tv | 11 days | 1 | -5/+6 |
| | | |||||
| * | probe when reachable | tv | 12 days | 1 | -0/+24 |
| | | |||||
| * | probe wakes peer worker | tv | 12 days | 1 | -2/+3 |
| | | |||||
| * | peer worker sleeps until deadline, not fixed time | tv | 12 days | 1 | -3/+5 |
| | | |||||
| * | centralize call to topology_change | tv | 13 days | 1 | -9/+6 |
| | | |||||
| * | unify request_sync logic | tv | 13 days | 1 | -4/+1 |
| | | |||||
| * | immediately probe dormant members found in hellos | tv | 2026-10-30 | 1 | -4/+37 |
| | | | | | | | Instead of waiting for its regular timer, reprobe dormant members found in hello reply messages on the next worker tick. With this a partition gets reconnected quickly as soon as the first pair reconnects. | ||||
| * | track unlisted members | tv | 2026-10-28 | 1 | -0/+2 |
| | | |||||
| * | peers from member list start as unknown | tv | 2026-10-28 | 1 | -2/+2 |
| | | |||||
| * | admit nodeId and addresses in the API | tv | 2026-10-27 | 1 | -1/+8 |
| | | |||||
| * | introduce addresses | tv | 2026-10-27 | 1 | -3/+25 |
| | | |||||
| * | talk about "transport" unless mycelium is meant | tv | 2026-10-27 | 1 | -1/+1 |
| | | |||||
| * | make clippy happy again | tv | 2026-10-26 | 1 | -16/+16 |
| | | |||||
| * | read stamps sync and lock free | tv | 2026-10-26 | 1 | -2/+2 |
| | | |||||
| * | unreachability doesn't expire | tv | 2026-10-26 | 1 | -4/+1 |
| | | |||||
| * | number handshakes | tv | 2026-10-26 | 1 | -6/+18 |
| | | | | | This prevents late hellos from resetting the session. | ||||
| * | send bounded peer lists | tv | 2026-10-26 | 1 | -6/+31 |
| | | |||||
| * | split peer module | tv | 2026-10-26 | 1 | -0/+336 |
