Skip to content

feat: slash provider for downtime#39

Merged
julienrbrt merged 7 commits into
mainfrom
julien/slashing
Jun 3, 2026
Merged

feat: slash provider for downtime#39
julienrbrt merged 7 commits into
mainfrom
julien/slashing

Conversation

@julienrbrt

@julienrbrt julienrbrt commented May 11, 2026

Copy link
Copy Markdown
Member

part 1 of #38

@julienrbrt julienrbrt marked this pull request as ready for review May 20, 2026 11:01

@tbruyelle tbruyelle left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good first version.

What's missing from #38 :

  • slashing params are not provider-configured, they come from the consumer slashing genesis
  • use sliding window instead of epoch based for detection. While sliding window is a better downtime detector (see [1]), issue #38 requires an epoch-based detection system for the slash formulas and the challenge protocol. Not sure what's the best, we can probably discuss more about.
  • offline validators are not excluded from fees distribution
  • no optimistic challenge to refute downtime

I have just a few inline comments that should be addressed but other than that I would be OK to merge it as it is and iterate with the listed points with other following PRs.


[1]: why sliding window is a better detector than epoch:
Say N=10, threshold = miss >5.
A validator goes dark for blocks 5–14 (10 consecutive misses):

  • Sliding: at block 14 the trailing window [5,14] has 10 misses → fires.
  • Epoch: epoch 0 [0–9] saw misses 5–9 = 5 (not >5), epoch 1 [10–19] saw 10–14 = 5 (not >5) → never fires. The outage got diluted across the boundary.

Comment thread x/vaas/consumer/keeper/slash_packet.go Outdated
Comment thread proto/vaas/v1/wire.proto Outdated
Comment thread x/vaas/types/expected_keepers.go Outdated
Comment thread x/vaas/consumer/keeper/slash_packet.go Outdated
Comment thread tests/e2e/e2e_downtime_slash_test.go Outdated
@julienrbrt

Copy link
Copy Markdown
Member Author

@julienrbrt julienrbrt merged commit d5a505f into main Jun 3, 2026
4 checks passed
@julienrbrt julienrbrt deleted the julien/slashing branch June 3, 2026 10:06
julienrbrt added a commit that referenced this pull request Jun 3, 2026
Resolve conflicts by keeping the multi-validator test code from
julien/slashing-multi (the full individual validator downtime test)
over the TODO placeholder from main's squash-merged PR #39.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants