-
Notifications
You must be signed in to change notification settings - Fork 530
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IBFT 2.0 #650
IBFT 2.0 #650
Conversation
* implement watchSync * Fix some linter errors and resolve conflicts * Rename newStatus channel * wait for a new status on end watch sync * Add guard to check ih bestPeer is not nil * Rename isValidator to match module encapsulation * Call watchSync on every newStatus * Close stream after featching blocks * Fix linter issues
* implement watchSync * Fix some linter errors and resolve conflicts * Fix current failed tests * Add mocks for sycer tests * Add syncer unit tests * Add PeerMap unit test * Add SyncPeerService unit test * Fix mockBlockchain in syncer * Add bufcon in vendor * Add client unittests in syncer * Rename newStatus channel * wait for a new status on end watch sync * Add guard to check ih bestPeer is not nil * Rename isValidator to match module encapsulation * Call watchSync on every newStatus * Add TestPeerConnectionUpdateEventCh * Add unit tests for GetBlocks of SyncPeerClient * Fix failed test * Fix lint error * Close stream after featching blocks * Fix linter issues * Fix failed tests Co-authored-by: AleksaOpacic <aleksaopacic988@gmail.com>
Codecov Report
@@ Coverage Diff @@
## develop #650 +/- ##
===========================================
- Coverage 51.27% 48.65% -2.63%
===========================================
Files 109 112 +3
Lines 15825 15364 -461
===========================================
- Hits 8115 7476 -639
- Misses 7028 7254 +226
+ Partials 682 634 -48
📣 Codecov can now indicate which changes are the most critical in Pull Requests. Learn more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. It has cleaned up IBFT completely
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, Let's merge this :D
Description
This PR provides the integration logic with the go-ibft package, and introduces IBFT 2.0 into Polygon Edge.
Changes include
Breaking changes
The IBFT 2.0 upgrade introduces liveness fixes, which are by default breaking changes, as it alters the way messages are constructed.
This breaking change is breaking in a sense that an entire cluster running on pre IBFT 2.0 needs to be restarted to run on post IBFT 2.0 (all nodes in the cluster need to be running the latest version). The blockchain history remains intact.
This means that nodes running IBFT 2.0 version of Edge will not work with nodes not running IBFT 2.0 version of Edge (older versions) - all nodes in the cluster need to run IBFT 2.0 of Edge in order to work.
Checklist
Testing
Manual tests
Additional comments
Fixes EDGE-614