-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
Create a fuzzing tool for Checked<Tx>
verification costing
#1402
Comments
xgreenx
changed the title
Create a benchmark for
Create a fuzzing tool for Oct 12, 2023
Checked<Tx>
verification costingChecked<Tx>
verification costing
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Overview
After an analytic analysis of the codebase, we figured out the heaviest operation during transaction verification.
But it doesn't mean we found all potential places that should influence
min_fee
.The purpose of this issue is to create a more accurate transaction costing model by identifying and addressing areas where costs are not adequately captured, thus minimizing risks such as liveness failures, unsynchronizable nodes, and unanticipated DA expenses.
Implementation details
The idea is to create a fuzzing test/util that fills random fields of the transaction and produces a valid
Checked<Tx>
.The
min_fee
represents our expectation regarding how long it takes to validate the transaction. We can translate gas into execution time, and if the creation ofChecked<Tx>
takes more than expected time, then it means we undercharge for some fields.Note
The creation of the fuzzing tool was started at #1156. So it can be used as a good base.
Creating the fuzzing tool and identifying problematic fields are two different tasks. But because the correctness of the tool can be verified only during its usage this issue describes both tasks. But if we are confident enough in the tool, we can split this issue into two and start work on the usage of the fuzzing tool as a separate step/PR.
The text was updated successfully, but these errors were encountered: