-
Notifications
You must be signed in to change notification settings - Fork 208
feature: implement proposer interface for consensus #2873
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
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2873 +/- ##
==========================================
+ Coverage 74.40% 74.49% +0.08%
==========================================
Files 229 230 +1
Lines 24867 24983 +116
==========================================
+ Hits 18503 18610 +107
- Misses 5134 5140 +6
- Partials 1230 1233 +3 ☔ 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.
Looks good overall, will give a deeper check later. I appreciate the mindfulness of how input and output parameters are used by reference/value. Thank you!
Co-authored-by: Dat Duong <[email protected]> Signed-off-by: Rian Hughes <[email protected]>
Co-authored-by: Dat Duong <[email protected]> Signed-off-by: Rian Hughes <[email protected]>
This PR implements the Proposer interface for the consensus layer. The proposer is responsible for generating block proposals, handling both empty and non-empty blocks depending on whether the mempool receives transactions within a given time window.
Notes:
Proposal timing: The caller is responsible for deciding:
* When to stop waiting for transactions and proceed with an empty block.
* When to stop executing transactions (in the non-empty block flow) and continue with proposal finalisation.
Gas strategy: This implementation reuses gas values from the previous block. Dynamic gas fee computation is out of scope of this PR, and probably requires SNs input.
Code reuse: Some logic is shared with the Validator PR. Either PR can be merged first without conflict.
closes #2887