Conversation
|
|
This PR changes implementation code, but doesn't include a changeset. Did you forget to add one? |
5cabeb1 to
1d64617
Compare
|
Blocked by #2761 Remaining TODOs (roughly):
|
|
Hey @protolambda! This PR has merge conflicts. Please fix them before continuing review. |
82d6d0a to
d06147b
Compare
op-node/rollup/driver/state.go
Outdated
| // if we fail to fetch the L1 data, simply not update the derivation pipeline yet, | ||
| // we'll hit an EOF later again and retry. | ||
| } else if err != nil { | ||
| // TODO: maybe make the log less scary if it failed because of a L1 reorg. |
There was a problem hiding this comment.
TODO in error handling code (Line 396)
🙈 From dgryski.semgrep-go.errtodo.err-todo.
|
Hey @protolambda! This PR has merge conflicts. Please fix them before continuing review. |
…essing, decoded batches can be ordered as necessary after pulling from the stream
Note: may want to pass the close further out / have more complex logic about open/close.
…dation, fix batcher process closing
…lOut, fix tests, clean up unused l2 engine change, clean up op-batcher flags
|
Hey @protolambda! This PR has merge conflicts. Please fix them before continuing review. |
This commits a batch to a specific L1 origin block by hash rather than just by number. This help in the case of L1 reorgs by stopping batches from being applied in weird ways.
| progress := s.derivation.Progress() // TODO: add conf depth | ||
| if progress.Origin != s.l1Head || !progress.Closed { | ||
| s.log.Warn("not creating block, node is not synced", "progress_origin", progress.Origin, "progress_closed", progress.Closed, "head_l1", s.l1Head) | ||
| if !s.idleDerivation { |
There was a problem hiding this comment.
I think the logic is right, but the name is kinda feels like a double negative with this check & is a little confusing.
The batcher is still very simple generating a new channel full of L2 blocks since the last channel that it created, but it is just a tad smarter now in that if will handle the case of multiple frames per channel. This is the bare minimum functionality to handle happy case batching on a real network. The only other thing that it can't handle is reorgs, but it can now handle very larger L2 transactions and blocks.
|
Closing in favor of #2871 |
Closes #2714 and #2713 Dashboard preview: <img width="1845" height="281" alt="Screenshot 2025-08-20 at 15 43 45" src="https://github.com/user-attachments/assets/101c7cb2-f900-40fa-b708-6277930d11e2" /> This should also work with other Kona services.
Closes #2714 and #2713 Dashboard preview: <img width="1845" height="281" alt="Screenshot 2025-08-20 at 15 43 45" src="https://github.com/user-attachments/assets/101c7cb2-f900-40fa-b708-6277930d11e2" /> This should also work with other Kona services.
Work in progress, see Batch derivation v2 doc.