aboutsummaryrefslogtreecommitdiffstats
path: root/src/swarm
Commit message (Collapse)AuthorAgeFilesLines
* swarm: changes taken unjudged, dropped (REFUSALS)tv4 days4-4/+165
| | | | | | | | | 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).
* access: members refused as a wholetv4 days1-0/+8
| | | | | | | | | With signatures required, a member whose own change broke a rule is refused as a whole: sent nothing, shown in /peers (refused), in stats (sync.refusedPeers) and on the dashboard, until a change of its is taken again or the epoch changes. Auth plan M6 (diverged standing).
* access: refused oncetv4 days2-6/+29
| | | | | | | | A refused change is remembered by its hash: offered again it is refused without decoding, judging or logging, so is one built on it, and a peer offering nothing else is answered later each time, up to a minute. Auth plan M6 (re-sending).
* access: --bootstrap-keystv4 days1-5/+6
| | | | | | | The first users' SSH keys, recorded at genesis with their entries, so a swarm can be strict from its start. Auth plan M7.
* access: a node registers before it writestv4 days1-18/+31
| | | | | | | | | Under a policy, a change by a node that isn't a member is refused with all built on it: a node's registration is written before any write of its own or through the API, not after (the registration itself exempt). Auth plan M6 (fix).
* access: banstv4 days1-0/+20
| | | | | | | | _continuum/banned/<node ID>: every node refuses the banned node's changes from then on (judged as the ban stood) and leaves its handshakes unanswered. Auth plan M6.
* access: signatures requiredtv4 days2-8/+58
| | | | | | | | "signatures": "required": a change counts only once a signature by its committer vouches for it, and waits until then; every node then signs every change it makes. Auth plan M6.
* access: the policy enforcedtv4 days1-2/+31
| | | | | | | | _continuum/access/policy ({"version": 1}) has every node screen every change it receives, on every path changes come in. A policy a node doesn't know stops its writes through the API. GET /admin/refused. Auth plan M6.
* signatures: on their own (SIGNATURES)tv4 days3-0/+90
| | | | | | | 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/+40
| | | | | | | 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.
* signatures: kept in the document filetv4 days2-16/+43
| | | | | | | A node's signatures are saved with its document (--document-file) and loaded with it. Auth plan M5.
* dashboard: without LINKS; LINKS removedtv4 days4-1140/+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.
* dashboard: the writers' trees as this node knows themtv4 days1-7/+11
| | | | | | | | The tree drawn is computed as every node computes its own part of it: from the member list, and whom it and its neighbours reach, as they told it; no longer from the links members report over LINKS. Auth plan M3 (preparing LINKS' removal).
* dashboard: own links over the API, and CORStv4 days1-1/+1
| | | | | | | | | GET /admin/dashboard/links/own and its event stream: a node's own links, as LINKS_REPLY carried them, for other members' dashboards with a token. CORS for the members' dashboard origins and --cors-origins, without credentials. Auth plan M3.
* store: keys_at tells no map from an empty onetv4 days2-2/+8
| | | | | | | | registry::exists counted any value at _continuum/users as a registry; keys_at answers None where there is no map, and its users (records, members, forget records, remakes) say what they make of it. Auth plan M1 (fix).
* access: the users endpointstv4 days1-3/+3
| | | | | | | | /admin/users: list, add (one or several), remove, disable, grant and revoke capabilities; each one change, refused if it would lock its writer out. Capabilities as the store's paths name them. Auth plan M1.
* access: first users at genesistv4 days1-1/+23
| | | | | | | | --bootstrap-users gives a new swarm a registry from its first change, each first user with everything; other users may do nothing until added. Without it the swarm has no registry and works as before. Auth plan M1.
* hyparview: a node left alone asks with high prioritytv4 days1-1/+37
| | | | | | A node with no neighbours and no high-priority ask outstanding asks with high priority, even of members that refused it before, so it never stays without neighbours (a transient seen in the simulations).
* HyParView flood defaulttv5 days2-3/+4
|
* flood disseminationtv5 days3-0/+69
|
* HyParView (slim)tv5 days8-17/+641
|
* topology neighbours and optional graphtv5 days2-58/+120
|
* plumtreetv5 days6-52/+452
|
* dissemination traittv5 days6-5/+104
|
* topology traittv5 days3-11/+96
|
* substitutes held longertv5 days1-15/+25
|
* soak records by settv5 days1-2/+22
|
* indirect probestv5 days2-25/+343
|
* unlisted members forgottontv6 days1-6/+12
|
* handshakes countedtv6 days1-0/+7
|
* trees at runtimetv6 days3-1/+63
|
* soak counts recordstv6 days1-4/+19
|
* soak with churn testtv6 days2-0/+17
|
* bench waits for recorded linkstv6 days1-7/+19
|
* trees over working linkstv6 days3-14/+138
|
* working links recordedtv6 days5-18/+326
|
* heads heard in announcementstv6 days2-3/+5
|
* heads heard in repliestv6 days2-1/+4
|
* heads heard forget senttv6 days2-1/+31
|
* delta end guardedtv6 days1-7/+23
|
* worker sends off the passtv6 days1-14/+43
|
* suspend detectedtv6 days4-0/+107
|
* rtt table prunedtv6 days2-0/+9
|
* plan walks the neighbourstv6 days2-4/+16
|
* links member from the viewtv6 days2-5/+20
|
* one grace wait per peertv6 days2-14/+20
|
* reach sets boundedtv6 days3-9/+64
|
* strangers messages smalltv6 days1-0/+4
|
* swarm neighbourstv6 days3-6/+104
|
* writers own treetv6 days1-1/+46
|