Skip to content

Feature/committee reorg fix#47

Merged
JamesEjembi merged 7 commits into
VeriNode-Labs:mainfrom
pauljuliet9900-netizen:feature/committee-reorg-fix
Jun 25, 2026
Merged

Feature/committee reorg fix#47
JamesEjembi merged 7 commits into
VeriNode-Labs:mainfrom
pauljuliet9900-netizen:feature/committee-reorg-fix

Conversation

@pauljuliet9900-netizen

Copy link
Copy Markdown

closes #8

Your Name added 7 commits June 25, 2026 08:41
This commit resolves the issue where attestation verification fails spuriously
when validator sets are dynamically reorganized mid-epoch due to irregular exits
or late-inclusion activations.

Key Changes:
- Added committee_assignment.rs: Tracks committee state with reorg support
  - PendingReorg: Records reorg time windows
  - CommitteeView: Represents stable or ambiguous committee state
  - CommitteeAssignment: Manages validator indices and committee roots

- Added db/committee_cache.rs: Caches committee roots with reorg support
  - Stores both stable and ambiguous entries
  - Auto-evicts old entries based on capacity
  - Supports smooth transition from ambiguous to stable

- Enhanced validator_set.rs: Added reorg tracking and active validator queries

- Enhanced attestation/verifier.rs: Added committee-view-aware verification
  - verify_attestation_with_committee_view: Accepts ambiguous views
  - Attestations verify against either old or new root during reorg window

- Added comprehensive integration tests (11 tests covering all scenarios)

Test Results:
- All 32 unit tests pass
- All 11 new integration tests pass
- All 163 total tests pass
- Zero regressions

The fix ensures cross-boundary attestations are verifiable under both pre-reorg
and post-reorg committee roots during a 4-slot reorg window, then automatically
finalizes to a stable state.
@JamesEjembi JamesEjembi merged commit 92b0675 into VeriNode-Labs:main Jun 25, 2026
1 check passed
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.

Validator Set Dynamic Reorganization During Epoch Boundary Produces Inconsistent Committee Roots

2 participants