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

Feat: multiframe altda channel #12400

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

samlaf
Copy link
Contributor

@samlaf samlaf commented Oct 9, 2024

Description

Currently altda forces using "calldata" channels, which restrict their txData output to a single frame at a time. EigenDA (and probably other altdas) support larger blobs than the default 128KB frame size. This PR allows channels to have the altDA da type, which allows them to output a much larger number of frames when queried for txData. These frames are then concatenated and sent as a large blob to the altda source.

Tests

No new tests because there isn't really any change in behaviour here since this is a small repurpose of frame concatenation logic that was already there (curious to see if the ci here will pass). The derivation pipeline also doesn't need any changes because it already can read multiple concatenated frames. Perhaps an e2e test to show that an op-node is able to derive the concatenated frames would be useful though?

Additional context

An alternative here would have been to still read single frame at a time, but increase the MaxL1FrameSize variable. This approach requires more changes, and the derivation pipeline also has hardcoded limits which would have needed to change. Also keeping small frames allows fallbacking to ethDA automatically if ever needed, potentially even inside a single channel.

Metadata

@samlaf samlaf requested review from a team as code owners October 9, 2024 23:08
@samlaf samlaf requested a review from sebastianst October 9, 2024 23:08
Copy link

codecov bot commented Oct 9, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 64.14%. Comparing base (fb62380) to head (878a216).
Report is 8 commits behind head on develop.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #12400      +/-   ##
===========================================
- Coverage    64.32%   64.14%   -0.19%     
===========================================
  Files           52       52              
  Lines         4348     4348              
===========================================
- Hits          2797     2789       -8     
- Misses        1376     1385       +9     
+ Partials       175      174       -1     
Flag Coverage Δ
cannon-go-tests 64.14% <ø> (-0.19%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

see 1 file with indirect coverage changes

@tynes
Copy link
Contributor

tynes commented Oct 11, 2024

This looks like generally a good change to me, we will get around to review more thoroughly after we complete holocene code freeze next week

@samlaf
Copy link
Contributor Author

samlaf commented Oct 24, 2024

@tynes any updates here?

@notbdu
Copy link

notbdu commented Nov 19, 2024

+1 for interest in this update on Polymer's side as well.

@samlaf samlaf force-pushed the feat--multiframe-altda-channel branch from 1a84f49 to bb0ba93 Compare November 26, 2024 19:06
@dshiell
Copy link

dshiell commented Dec 9, 2024

ping, gentle push to see if it would be possible to take another look at this guy

@geoknee geoknee added the A-op-batcher Area: op-batcher label Dec 16, 2024
@vdrg
Copy link
Contributor

vdrg commented Jan 28, 2025

This is important for Batched Commitments as well :) @samlaf do you think it would be good to have a new DaTypeBatchedAltDA type? or would it be better to have an additional config option somewhere else?

* ci: add test-golang workflow

* ci: delete circleci yml file

This was used by op, we are moving to using github actions for our fork

* ci: fix linter by using golangci-lint action

* ci: use golangci-lint v1.61 to match mise.toml requirement

* ci: use mise in ci to install correct versions of dependencies

* ci: remove setup-go step because go already installed by mise in previous step

* ci: build contracts that are needed for op-e2e tests

* ci: use caching for forge artifacts

* ci: remove slow op-program build

don't think we are using it... testing

* ci: make go-lint job run in parallel, and update version to try to fix errors

* ci: add go modules caching to speed up workflow

* ci: add explicit go mod download
@samlaf
Copy link
Contributor Author

samlaf commented Jan 28, 2025

This is important for Batched Commitments as well :) @samlaf do you think it would be good to have a new DaTypeBatchedAltDA type? or would it be better to have an additional config option somewhere else?

Probably yes, haven't fully thought through your proposal. Will answer in your proposal and we can continue discussion there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-op-batcher Area: op-batcher
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants