From ab595dfb91e66a8beda9b2dd407a4fceebe3b977 Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 8 Nov 2026 15:46:28 +0000 Subject: refusals: a drop taking much waits for a second member, and shows A node told (REFUSALS) that it holds a change the swarm's rules refuse, and whose own rules refuse it too, dropped it and everything built on it on one peer's word, however much that was; its own writes among them went to the quarantine, the others' nowhere. * A drop taking more than 100 changes, or more than ten and a tenth of the document, now waits until a second member names the same change: the node's rules and one peer's word could both be off. Logged as an error, counted in /admin/stats (sync.dropsHeld). * The others' changes dropped are listed with the refused (GET /admin/refused, "taken unjudged, dropped"), for operators to see. The cheap half of asking the others (future-work.md, Telling a malicious change from a wrong policy). --- docs/measurements.md | 1 + 1 file changed, 1 insertion(+) (limited to 'docs/measurements.md') diff --git a/docs/measurements.md b/docs/measurements.md index 4550357..c377d9c 100644 --- a/docs/measurements.md +++ b/docs/measurements.md @@ -79,6 +79,7 @@ or caught up over many small messages. | `sync.lastFromNeighbourSecs` | `last_sync_from_neighbour_seconds` | Since a sync message from any neighbour was applied. Growing without bound while others write: the node is cut off from the swarm's changes. | | `sync.divergedPeers` | `diverged_peers` | Peers whose heads differ from ours with no sync message in between. | | `sync.refusedPeers` | `refused_peers` | Peers refused as a whole, their own changes having broken the swarm's rules ([`access.md`](access.md)): sent nothing. | +| `sync.dropsHeld` | `drops_held` | Changes a peer says the swarm's rules refuse, which this node took unjudged and its rules refuse too, whose drop would take much: held until a second member says so ([`access.md`](access.md)). Above 0: look at the log (`dropping it takes much`). | | `sync.largestReceivedBytes` | `largest_sync_received_bytes` | The largest sync message received since start. Larger transfers come as deltas (blobs of 16 chunks or more, [`peers.md`](peers.md)), so this stays below 16 × `--blob-chunk` from nodes of this version. | | `relay.announceRounds` | `announce_rounds_total` | Announcement rounds: our new heads to the neighbours after applying their changes (the quick round to those writers' trees leave out, or to all for changes no tree carries, and the slow round to the others; [`peers.md`](peers.md)). | | `relay.treelessRounds` | `treeless_rounds_total` | Of those, quick rounds to all neighbours: some change came that no writer's tree carries (pulled, a delta, from a node with no part in its tree). Many, with every node on the member list: trees miss often. | -- cgit v1.3.1