aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/stats
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2026-11-07 22:35:22 +0100
committertv <tv@krebsco.de>2026-11-07 22:35:22 +0100
commitd322e7d4aa41d94232113cb7680cec1d65a11b0c (patch)
tree874e03dbf7acebc51a144498c89c43b335641bf7 /src/api/stats
parenta99bacc0c90ca7a7f879cec8a8fb33f4aa14e84f (diff)
access: members refused as a whole
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).
Diffstat (limited to 'src/api/stats')
-rw-r--r--src/api/stats/prometheus.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/api/stats/prometheus.rs b/src/api/stats/prometheus.rs
index 038f739..41d224a 100644
--- a/src/api/stats/prometheus.rs
+++ b/src/api/stats/prometheus.rs
@@ -634,6 +634,12 @@ pub(super) fn render(stats: &StatsResponse, list: &PeerListResponse) -> String {
"Peers whose heads differ from ours while sync is idle.",
stats.sync.diverged_peers as f64,
);
+ out.single(
+ "refused_peers",
+ "gauge",
+ "Peers refused as a whole, their own changes having broken the swarm's rules.",
+ stats.sync.refused_peers as f64,
+ );
let relay = &stats.relay;
out.single(
"announce_rounds_total",