-
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
fix(rollup): fallback HTTP polling without filtering #89
Conversation
if err | ||
.as_error_resp() | ||
.is_some_and(|resp| !resp.message.to_lowercase().contains("not supported")) | ||
{ | ||
// On any error other than "not supported", return the error and fail. | ||
error!("Failed to watch new blocks via HTTP"); | ||
return Err(err); | ||
} |
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.
I think this is fine, but we should also then allow the user to pass an --http
flag that uses http polling explicitly instead of subscriptions in order to not get caught in this block.
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.
I don't fully get what the flag would mean, could you elaborate?
If the URL scheme is HTTP we are forced to poll
This PR introduces a new wrapper struct: `ExExHeraContext`. This struct wraps `ExExContext` with a copy of `InMemoryChainProvider`, such that every newly committed chain gets automatically injected into the same L1 provider cache that's used by the rollup pipeline when running as ExEx. This abstraction allows us to stop worrying about caching L1 blocks (which was previously marked as TODO in the derivation loop) and also makes full use of the data inside `Arc<Chain>`, such as receipts. ### Stack - main - #88 - #89 - 👉 #91
Introduces a second method of polling via HTTP that doesn't rely on the
eth_filter
feature.This will be auto-detected and triggered as fallback. It's mostly useful for test purposes.
eth_newBlockFilter
andeth_getFilterChanges
#87Stack