Skip to content

Conversation

@y0sher
Copy link
Contributor

@y0sher y0sher commented Sep 9, 2025

Description

This aligns the version with merge branch and prepares it to be merged to main. The only real change is #2446 which we released as a hotfix to main.

vaclav-ssvlabs and others added 3 commits July 2, 2025 10:05
… greater or equal to quorum (#2446)

* Launch validators when enough for quorum operator are available

* Fix bug assigning operators

* Fix unit test

* Refactor tests

* Remove unused func

* Implement unit test

* Refactor

* Improve log message

* Add comment

* Test - use correct logger

* Refactor

* Test: remove redundant secret key declaration

* Improve log message

* Include removed operators as part of the committee on share init

* Remove unused code

* Improve error message
Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Greptile Summary

This PR merges the main branch into the version/optimization branch, bringing in hotfix #2446 that addresses a critical validator startup issue. The primary changes include:

Architectural Refactoring: The signature verification system has been completely restructured, moving from protocol/v2/ssv/validator/signature_verifier.go to a new message/signatureverifier/ package. This new implementation uses interface-based design with proper dependency injection through the message validation pipeline, improving separation of concerns and code maintainability.

Operator Removal Fix: The core fix addresses a Byzantine Fault Tolerance issue where validators would fail to launch after node restart if any committee operator was removed from the network. The solution modifies the committeeMemberFromShare function in operator/validator/controller.go to implement proper quorum checking - validators can now start as long as there are sufficient active operators (f*2+1) to meet consensus requirements, even if some operators are missing.

Repository Governance: A new .github/CODEOWNERS file establishes formal code review requirements, requiring approval from @ssvlabs/ssv-team-lead and @ssvlabs/approvers for all repository changes.

Enhanced Testing: Test files have been significantly expanded with new test cases that validate operator removal scenarios, quorum logic, and committee member configurations. The tests now properly simulate real-world conditions where operators can be removed while maintaining system functionality.

These changes collectively improve the SSV protocol's resilience to operator removal events while maintaining the security guarantees of the Byzantine Fault Tolerant consensus mechanism. The refactoring also positions the codebase for better maintainability and follows established software engineering principles.

Confidence score: 4/5

  • This PR addresses a critical production issue with a well-tested hotfix that maintains Byzantine Fault Tolerance guarantees
  • Score reflects the significant architectural changes in signature verification that require careful validation, though the logic appears sound
  • Pay close attention to the signature verification refactoring in message/signatureverifier/ and validator controller quorum logic

5 files reviewed, no comments

Edit Code Review Bot Settings | Greptile

Copy link
Contributor

@iurii-ssv iurii-ssv left a comment

Choose a reason for hiding this comment

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

LTGM but not sure why Github says "there are some conflicts to resolve with the base branch"

@y0sher y0sher closed this Sep 10, 2025
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.

4 participants