op-proposer: Support multiple supervisor endpoints#14401
Merged
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## develop #14401 +/- ##
============================================
- Coverage 77.23% 41.84% -35.40%
============================================
Files 178 847 +669
Lines 10667 77902 +67235
============================================
+ Hits 8239 32598 +24359
- Misses 2247 42439 +40192
- Partials 181 2865 +2684
Flags with carried forward coverage won't be shown. Click here to find out more.
|
92192ca to
4abf4c0
Compare
9c9b6cb to
d857cd1
Compare
d857cd1 to
7795db4
Compare
Inphi
approved these changes
Feb 19, 2025
Rjected
pushed a commit
to paradigmxyz/optimism
that referenced
this pull request
Feb 25, 2025
…#14401) * op-proposer: Support multiple supervisor endpoints. * op-proposer: Use a string slice flag. * op-proposer: Rename supervisor rpc flag to be plural.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds support for multiple supervisor endpoints to op-proposer. The selection algorithm is quite basic:
For SyncStatus, the supervisor with the lowest
MinSyncedL1is used, ignoring any that are offline. This ensures that the wait for sync option waits for all source nodes to be in sync. The sync status response is also used to select the block proposals are taken from, so this ensures that even if a different source node is used to retrieve the proposal, it will still be a finalized block even if the node is slightly behind.For retrieving proposals, the nodes are simply tried in turn.
The main downside of this approach is that if one of the source nodes is lagging well behind, it will cause proposals to be more stale, but it is safer if nodes are going offline temporarily. With other approaches the sync status may come from one node and the proposal from another, causing it to return data that is later reorged even if the sync status (from a different node) indicated the data was finalized. Making SyncStatus return the lowest value avoids this risk as all nodes have reached the required safety level for the data requested for the proposal.
Builds on #14400
Tests
Added unit tests.
Metadata
Fixes #13909