Skip to content
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

fix(batcher): altda parallel submitted blobs respect strict holocene order #21

Open
wants to merge 6 commits into
base: eigenda-develop
Choose a base branch
from

Conversation

samlaf
Copy link
Collaborator

@samlaf samlaf commented Jan 28, 2025

See upstreamed PR for more details. OP doesn't have time to review and upstream our PRs atm so we have to maintain this fork instead.

The recent holocene strict ordering rules broke the altda concurrent blob submission flow because concurrent requests to the da-server could be received out of order, and hence would be dropped by the op-node's derivation pipeline with strict ordering rules.

Solution TLDR: cache the altda commitments inside their respective channel, and add logic to pull them back in order.

This PR looks big but most of it is tests. The main Solution logic is quite small, and contained in this one commit: 3cbe31f

It also contains a fix for the recently introduced sync_actions data race (0a8bbe4), but I think this will be subsumed by ethereum-optimism#13330

Otherwise the added tests are:

  1. e2e test that has the fakeDAServer return blobs out of order: bebf7bb
  2. unit tests for unhappy path failure cases: a6c2830
  3. unit test that triggers channelTimeouts using the failpoint library: a43ed4d
    this one is more contentious as it requires some source code manipulation (b/c golang doesnt have macros) codegen. Updated the tooling (mise, just dependencies) to make it reproducible, and also using a separate GOCACHE for it, so should be very self-contained. But still left it as a separate commit so that we can easily remove it if you guys don't want it (even though I think you should, and should probably use it to test channelTimeouts for non-altda codepaths!)

… channel timeout)

test(batcher): fix flaky driver tests + speed them up

test(batcher): robustify batcher driver altda tests
op-alt-da/damock.go Outdated Show resolved Hide resolved
op-alt-da/damock.go Outdated Show resolved Hide resolved
op-batcher/batcher/channel.go Show resolved Hide resolved
op-batcher/batcher/channel.go Outdated Show resolved Hide resolved
op-batcher/batcher/channel.go Outdated Show resolved Hide resolved
op-batcher/batcher/channel_manager.go Show resolved Hide resolved
@samlaf samlaf requested a review from litt3 January 30, 2025 00:31
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.

2 participants