-
Notifications
You must be signed in to change notification settings - Fork 3.6k
op-supervisor,op-node: Handle non-genesis Interop #16008
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
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #16008 +/- ##
============================================
+ Coverage 81.54% 96.24% +14.69%
============================================
Files 161 106 -55
Lines 8858 4575 -4283
============================================
- Hits 7223 4403 -2820
+ Misses 1502 172 -1330
+ Partials 133 0 -133
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
41b7a73
to
32027ef
Compare
32027ef
to
b38f129
Compare
9676c92
to
37efba7
Compare
b38f129
to
fd49b32
Compare
37efba7
to
cc3f2da
Compare
012d530
to
4989a3a
Compare
cc3f2da
to
dc7a668
Compare
4989a3a
to
c0efb56
Compare
9b6edc5
to
536d2e9
Compare
b6255d1
to
e8a5f15
Compare
22e1736
to
3a77926
Compare
3015158
to
80a58d1
Compare
3a77926
to
5076a14
Compare
80a58d1
to
6f50ae2
Compare
44744c1
to
7ce1497
Compare
1699dfc
to
7e03ab1
Compare
7ce1497
to
3ea8c9d
Compare
3cb35d3
to
e748e5e
Compare
5924920
to
5581657
Compare
5581657
to
5c609be
Compare
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.
Took a look at the challenger failures and it looks like this change has broken the key requirement challenger has on it's API that optimism_superRootAtTimestamp
will return a valid super root for any timestamp up to at least the current safe head. It is critical that it can return a super root even prior to interop activating, because the new anchor state we set will be from before interop hard fork activates and any block after that can be disputed. So challenger has to be able to get the valid super root for timestamps from that anchor state forwards in order to post correct claims.
6e21018
to
890f903
Compare
890f903
to
6c08249
Compare
6c08249
to
b968b00
Compare
Description
The op-node and op-supervisor are taught to handle a non-Genesis Interop activation timestamp properly in managed mode. In essence, the op-supervisor just does less while the op-node does a bit more pre-Interop:
ResetPreInterop
response.The explicit notion of the anchor block is also mostly removed already in this PR.
AnchorBlock
on the managed nodes.This PR also makes the logs DB check itself whether it is initialized so that the ChainsDB initialized markers are only used to denote a fully initialized ChainsDB from a safe activation block.
Tests
The action test
TestInteropUpgrade
atop-e2e/actions/interop/interop_fork_test.go
already runs Interop through an activation and asserts that the Interop activation block is properly sequenced and derived. This implicitly confirms that the activation logic in op-node/op-supervisor functions properly around the Interop activation timestamp. Some modifications were done to this test since it had some false logic that only worked with the previous pseudo-pre-Interop logic that the supervisor was following.A post-genesis Interop variant of
TestBackendLifetime
was also added, and the previous tests adapted.More action and acceptance tests will be added in future work.
Additional context
In a followup, full reorg support around the activation block is added. It probably wouldn't work right now, will be worked out in #15774
A few proofs tests or checks had to be commented out because the op-challenger (and probably other bits) still need some more work to make non-genesis activation work. This will be resolved with #16166
This PR breaks mutli-node support, which we decided to drop. So a few tests had to be skipped because of this. They will either be removed or fixed (#16187).
This PR also doesn't fully remove the notion of the anchor block yet. This is reserved for future work #16140
Metadata
Fixes #13732