Skip to content

op-node: get block with sync status, make finalization more safe#3802

Merged
mergify[bot] merged 4 commits intodevelopfrom
driver-status-api
Oct 31, 2022
Merged

op-node: get block with sync status, make finalization more safe#3802
mergify[bot] merged 4 commits intodevelopfrom
driver-status-api

Conversation

@protolambda
Copy link
Contributor

Description

This PR prepares the op-node derivation/driver bits for the op-proposer cleanup changes by securing the L2 finality better.

Changes:

  • Method on driver to get a L2 block by number and sync status at the same time, so we have consistent data.
  • Secure finalization to not allow inconsistent signals to affect the L2 finality status
  • Add a CurrentL1Finalized to sync status to identify the L1 block we do recognize for derivation, matching the CurrentL1 field which is last used for deriving the safe part of the L2 chain. L1Finalized in sync status just refers to the latest signal.
  • Keep the engine queue progress in sync with the previous stage - the sync status / metrics weren't updating.
  • When the L2 finality status changes, mark the engine as needing a forkchoice update, so we see geth match the finality status without waiting for blocks.
  • Some miner batcher action-test

Tests

Added an action test for L2 finalization edge cases, covering multiple batches and the edge case of a bad finality signal.

Metadata

Fix ENG-2772

@changeset-bot
Copy link

changeset-bot bot commented Oct 27, 2022

⚠️ No Changeset found

Latest commit: 3cb6677

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@mergify
Copy link
Contributor

mergify bot commented Oct 27, 2022

Hey @protolambda! This PR has merge conflicts. Please fix them before continuing review.

@mergify mergify bot added the conflict label Oct 27, 2022
@mergify
Copy link
Contributor

mergify bot commented Oct 27, 2022

This PR changes implementation code, but doesn't include a changeset. Did you forget to add one?

@trianglesphere
Copy link
Contributor

bedrock go tests are failing.

@protolambda
Copy link
Contributor Author

It's one unrelated action test that's failing, due to a bad nonce for a transaction. I think the pending-nonce retrieval in geth doesn't interact so well with fast modeled block building. Will re-run the test and see if it passes.

@mergify
Copy link
Contributor

mergify bot commented Oct 31, 2022

This PR has been added to the merge queue, and will be merged soon.

@mergify
Copy link
Contributor

mergify bot commented Oct 31, 2022

This PR is next in line to be merged, and will be merged as soon as checks pass.

@mergify mergify bot merged commit 7abb5f3 into develop Oct 31, 2022
@mergify mergify bot deleted the driver-status-api branch October 31, 2022 20:19
@mergify mergify bot removed the on-merge-train label Oct 31, 2022
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.

3 participants