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.
Changes
Dependency PRs
Testing
Used testnode's spam feature to generate arbitrary L2 txs using 1096 bytes of calldata across 3 address ran across 3 processes:
i.e,
sequencer --l2_tx-> validator --l2_tx-> l2_owner --> EOA
Using a testnode policy where batches would only submit every 15 minutes, the txs were sent serially across 20 threads per process. In the best case this would equate to roughly 60 txs / second (i.e, 60 * 1,096b = 65.760 kb/sec) or 5.918 mb/batch. Since these scripts use asynchronously concurrency bound by js and serially execute the real throughput expressed during this experiment is likely a bit less. Anyway, was able to get batches through around sizes of
780,328 bytes
. The stateless block validator struggled very heavily to retain synchronization given it'd only sequentially execute 10-20 messages in a batch with the number of incoming messages drastically increasing:This delta if left un-remediated would likely cause further delay to child --> parent chain withdrawal times.
TODO(s)
The following items should be completed to further verify that our fork can support batches of this size:
[] kzg-bn254 proof generation tests using 2MB blobs
[] experiment using 2MB max batch size