Skip to content

kip-286: keep an active validator across the epoch transition - #131

Open
hyunsooda wants to merge 1 commit into
kaiachain:mainfrom
hyunsooda:kip-286-epoch-liveness-floor
Open

kip-286: keep an active validator across the epoch transition#131
hyunsooda wants to merge 1 commit into
kaiachain:mainfrom
hyunsooda:kip-286-epoch-liveness-floor

Conversation

@hyunsooda

@hyunsooda hyunsooda commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Proposed changes

MinActiveCount states the minimum ValActive count required for BFT liveness, but the epoch demotions are unconditional, so a boundary where no entity clears MinStake leaves an empty active set. The entities that entered the epoch as ValActive are now retained when the demotions would leave none.

Types of changes

  • Bugfix
  • KIP Proposal
  • KIP Improvement

Checklist

  • Used the suggested template: https://github.com/kaiachain/KIPs/blob/main/kip-template.md
  • I have read the CLA and signed by comment I have read the CLA Document and I hereby sign the CLA in first time contribution
  • I have added necessary documentation (if appropriate)
  • Any dependent changes have been merged and published in downstream modules

Related issues

kaiachain/kaia#1015 implements this.

Further comments

Only the previously active set is retained, so a ValReady or ValPaused entity is never promoted as a side effect. The floor keys on the resulting ValActive count rather than an empty competitor pool: a ValPaused entity in the top 50 stays paused and yields no active validator.

MinActiveCount states the minimum ValActive count required for BFT liveness, but
the epoch demotions are unconditional, so a boundary where no entity clears
MinStake leaves an empty active set with no in-band recovery. The entities that
entered the epoch as ValActive are now retained when the demotions would leave
none.

Constraint: only the previously active set is retained, so a ValReady or ValPaused entity is never promoted as a side effect
Directive: the floor keys on the resulting ValActive count, not on an empty competitor pool - a ValPaused entity in the top 50 stays paused and yields no active validator
Confidence: high
Scope-risk: narrow

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@hyunsooda hyunsooda self-assigned this Aug 5, 2026
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