feat(batcher): multi-frame channels for large eigenda blobs #22
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.
TLDR
The target-num-frames batcher flag can be set to decide on the number of frames to pull from the channel.
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.