Skip to content

feat: Slash lists, store expiration, veto checks#16643

Merged
spalladino merged 1 commit intopalla/slash-settingsfrom
palla/slash-improvements
Aug 29, 2025
Merged

feat: Slash lists, store expiration, veto checks#16643
spalladino merged 1 commit intopalla/slash-settingsfrom
palla/slash-improvements

Conversation

@spalladino
Copy link
Copy Markdown
Contributor

@spalladino spalladino commented Aug 28, 2025

Adds some missing features to slashing, and some cleanup:

  • Adds support for the slashValidatorNever and slashValidatorAlways config settings (now EthAddress lists) so that validators in those lists are never/always slashed. All validators in the local keystore are automatically added to the "never" list (unless slashSelfAllowed is set).

  • Checks if a slash payload is vetoed before trying to execute it, to avoid running an unnecessary simulation. This is handled on the slasher client directly.

  • Adds expiration for offenses and payloads to avoid cluttering the local stores. Removes unused slashPayloadTtl setting.

  • Moves slasher/factory methods around to avoid circular dependency.

Builds on #16625

@spalladino spalladino added the ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure label Aug 28, 2025
@spalladino spalladino force-pushed the palla/slash-improvements branch from 78e40f4 to 976368e Compare August 28, 2025 21:41
@spalladino spalladino force-pushed the palla/slash-settings branch from 9330fa3 to cc519f7 Compare August 29, 2025 12:38
@spalladino spalladino force-pushed the palla/slash-improvements branch from 976368e to 61c592a Compare August 29, 2025 15:01
Adds some missing features to slashing:

- Adds support for the slashValidatorNever and slashValidatorAlways
  config settings (now EthAddress lists) so that validators in those
lists are never/always slashed. All validators in the local keystore are
automatically added to the "never" list.

- Checks if a slash payload is vetoed before trying to execute it, to
  avoid running an unnecessary simulation. This is handled on the
slasher client directly.

- Adds expiration for offenses and payloads to avoid cluttering the
  local stores. Removes unused slashPayloadTtl setting.

- Avoids posting committee addresses during executeRound for committees
  that are not slashed, in order to save calldata gas.
@spalladino spalladino force-pushed the palla/slash-improvements branch from 61c592a to c5fa2d3 Compare August 29, 2025 15:02
@spalladino spalladino merged commit 0b75251 into palla/slash-settings Aug 29, 2025
7 checks passed
@spalladino spalladino deleted the palla/slash-improvements branch August 29, 2025 16:59
@spalladino spalladino restored the palla/slash-improvements branch August 29, 2025 17:00
@spalladino
Copy link
Copy Markdown
Contributor Author

Accidentally merged against the other open feature branch. Will reopen against next in a minute.

github-merge-queue Bot pushed a commit that referenced this pull request Aug 29, 2025
Adds some missing features to slashing:

- Adds support for the slashValidatorNever and slashValidatorAlways
config settings (now EthAddress lists) so that validators in those lists
are never/always slashed. All validators in the local keystore are
automatically added to the "never" list, unless a `slashSelfAllowed` is
set.

- Checks if a slash payload is vetoed before trying to execute it, to
avoid running an unnecessary simulation. This is handled on the slasher
client directly.

- Adds expiration for offenses and payloads to avoid cluttering the
local stores. Removes unused `slashPayloadTtl setting`.

- Avoids posting committee addresses during executeRound for committees
that are not slashed, in order to save calldata gas.

- Moves slasher factory methods around to avoid circular dependency.

Previously posted as #16643 but was accidentally merged against the
wrong branch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants