-
Notifications
You must be signed in to change notification settings - Fork 6
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(rollup): init exex driver and pipeline #37
Conversation
/// The default L1 RPC URL to use. | ||
pub const DEFAULT_L1_RPC_URL: &str = "https://eth.llamarpc.com/"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be really neat if we could verify that the given RPC supports the method endpoints needed by kona-derive
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know which methods kona uses outside of the eth_ namespace?
I'll try reach out to llamanodes if so, otherwise we can put http://localhost:8545
to be safe
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will write up a ticket for this 👍
crates/rollup/src/driver.rs
Outdated
// Where should we get notifications from? | ||
// We could use the L1 chain provider, but it's already in the Driver struct | ||
// and it doesn't work well with the ExExNotification abstraction IMO. | ||
todo!() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My guess would be the standalone context should own another object that listens to new heads in another thread or something like that. This func could then check if there are any heads available
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it, the provider is Clone so this won't be an issue. Also at that point it would be great if it also had "reorg logic" built-in so that we can send a ExExNotification::ChainReverted
event when a reorg happens, and keep a unified reorg logic inside the driver body, inside the handle_exex_notification()
method.
Does that sound too redundant or no?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sounds right to me, but I def think it shouldn't block this pr. I'm curious how the chain reverted events would be detected though
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@refcell yeah on second thought - it would also be quite redundant to:
- use the L1 chain provider to send a new notification to the driver (requires all raw blocks, txs, receipts)
- inside the driver loop, either fetch from the L1 online provider again or use the in-memory provider
Since Kona is already equipped to work with online providers, this feels a bit clunky imo.
Will think a bit more about this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The associated driver context methods are nice I like this
Added a
Driver::exex
method that can initialize a Driver with the components needed to bootstrap in ExEx mode.Also stubbed a
StandaloneDriver
struct that will later be used to start Hera in standalone mode.closes #8.