-
Notifications
You must be signed in to change notification settings - Fork 246
feat(evm): add force inclusion command #2888
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
Conversation
|
The latest Buf updates on your PR. Results from workflow CI / buf-check (pull_request).
|
|
Claude finished @julienrbrt's task —— View job Comprehensive Code Review - Force Inclusion Command FeatureI've completed a thorough review of this PR implementing the force inclusion command for EVM applications. Overall, this is a well-structured implementation with good test coverage. Below are my findings organized by category. 1. Code Quality & Architecture ⭐Strengths
IssuesCritical: Typo in Error MessageLocation: return fmt.Errorf("forced inclusionnamespace cannot be empty")Issue: Missing space between "inclusion" and "namespace" Moderate: Magic Number in StartUp TimingLocation: case <-time.After(100 * time.Millisecond):
return nilIssue: The 100ms wait is a magic number without explanation. This appears to be a startup check, but there's no guarantee the server actually started successfully.
Minor: Inconsistent Context UsageLocation: ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)Issue: Creates a new context from 2. Error Handling & Resilience
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2888 +/- ##
==========================================
+ Coverage 65.59% 65.65% +0.06%
==========================================
Files 86 87 +1
Lines 7906 7926 +20
==========================================
+ Hits 5186 5204 +18
- Misses 2155 2156 +1
- Partials 565 566 +1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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 must be reverted before merge (need all of #2906 before activation)
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.
Re-disabled in caa7fba
| } | ||
|
|
||
| // NewForceInclusionServer creates a new force inclusion server | ||
| func NewForceInclusionServer( |
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 dont fully follow the need for the server, can we send it without the server? I could be misunderstanding the flow
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.
oh i missed the docs, now i got it.
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.
That server is the RPC endpoint you can use to submit txs.
It basically wraps ethereum rpc but overrides eth_sendRawTransaction to post to DA instead of exec client mempool
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 should a standalone binary not embedded in a operating node.
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 is more annoying as you'd need to configure the da client twice (for submitting to da).
I do agree that I see no sane public node operator enabling this and subsidizing the DA submission cost.
However, for people running themselves their private full node, this has the advantage to be all in one.
Happy to split it in another standalone server if you want, but we'll need to add config and such there too.
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.
we can keep as is, if a user needs something else we can modify
tac0turtle
left a comment
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.
utACK
* main: refactor(sequencers): persist prepended batch (#2907) feat(evm): add force inclusion command (#2888) feat: DA client, remove interface part 1: copy subset of types needed for the client using blob rpc. (#2905) feat: forced inclusion (#2797) fix: fix and cleanup metrics (sequencers + block) (#2904) build(deps): Bump mdast-util-to-hast from 13.2.0 to 13.2.1 in /docs in the npm_and_yarn group across 1 directory (#2900) refactor(block): centralize timeout in client (#2903) build(deps): Bump the all-go group across 2 directories with 3 updates (#2898) chore: bump default timeout (#2902) fix: revert default db (#2897) refactor: remove obsolete // +build tag (#2899) fix:da visualiser namespace (#2895)
Add force inclusion command for evm app.
Similar to evstack/ev-abci#295
Blocked on #2797