What reputation costs and earns you
Reputation enters the selection score as inverse square:- A node with reputation 1.0 is “baseline.”
- A node with reputation 0.5 is 4× worse in the score — a 50% reputation hit means you need to halve your rate (or be in a 4× closer region) to compete.
- A node with reputation 0.1 (the floor) is 100× worse — effectively unreachable for competitive selection.
How your score is computed
Other nodes’ scores of you are composites:- 70% from their own local observations of you.
- 30% from gossip-propagated reports from other nodes.
What moves your score
| Event | Direction | Magnitude |
|---|---|---|
| Clean delivery, valid voucher accepted | ↑ | Small |
| Valid probe, then stream delivered | ↑ | Small |
| BLAKE3 mismatch mid-stream | ↓ | Large (slashable) |
Probe has_blob=true then stream fails | ↓ | Large (slashable) |
| Rate charged ≠ rate advertised | ↓ | Large (slashable) |
| Channel close dispute loss | ↓ | Medium |
Declared has_blob=false (honest miss) | Neutral | — |
| Failed to respond to probe | Neutral or small negative | — |
has_blob=false is the correct response when you don’t have the blob. Penalizing it would push nodes to over-claim, which is the opposite of what the protocol wants.
Reporter weighting
A gossip report’s weight is a function of the reporter’s effective settled value:- Total settled on-chain settlement value (verifiable).
- Counterparty diversity — minimum 5 distinct counterparties for full credit.
- Time decay — half-life ~7 weeks.
- 3× cap — no single reporter can weight more than 3× a typical reporter.
Clamping
A single report can only move a score by a bounded amount. A coordinated attack of 100 fresh-stake nodes submitting negative reports on you at once gets clamped into a far smaller aggregate impact than the naive sum would suggest.Cold start
New nodes start with a reputation bonus:- One-time per operator Ethereum address (so re-staking doesn’t get you the bonus twice).
- Enough traffic to let you prove yourself on real deliveries.
- Decays quickly once you have real interaction data — the bonus is a ramp, not a floor.
Decay
In the absence of fresh data, scores drift toward neutral. If you stop participating, other nodes’ views of you decay toward ~neutral over weeks, not vanish to zero. When you return, you start from roughly neutral — better than a new node, worse than you were.What protects your reputation
Operational:- Keep
probe_hold_durationat the default. Never downscale it to squeeze more cache. - Monitor
decdn_probe_hold_slots_used— saturation above 80% means you’re at risk of evicting under-promise. - Monitor
decdn_blacklist_sync_lag_seconds— lag here becomes blacklist-violation slashing. - Never rate-manipulate. Charge exactly what you advertised.
- Run ≥ 1 region. Serving only one region makes you invisible to other regions’ clients even when your reputation would otherwise be fine.
- Maintain stable identity. Frequent key rotation or deregistration/re-registration cycles prevent reputation from accumulating.
- Choose origin-backed carefully. Origin-backed nodes never phantom-announce on their own content, but they can on other nodes’ content if you enable cross-caching. Either serve only your origin’s content, or accept the normal cache-node reputation risks.
When you’re slashed
A successful slash challenge results in:- Stake reduced by 5% / 10% / 20% (corruption/phantom/rate, escalating) or 10% / 25% / 50% (blacklist).
- A reputation penalty propagated via the gossip channel.
- Reputation score drops — typically significantly, since the event generates reports from every witness.