-
Notifications
You must be signed in to change notification settings - Fork 17
feat: Caches appearance refactoring #326
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
087d7c4 to
bc7e45d
Compare
6b2b564 to
62598e5
Compare
|
It would be nice to keep history_map simple (huh) and avoid adding any new functionality to it. However, in this case, this seems like the simplest and most effective solution, so we can live with itfor now (until we decide to refactor history_map and the caches in general again). |
Benchmark report
|
antoniolocascio
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.
LGTM
What ❔
Simplified and refined change of caches appearance mechanics from "V2".
From what I see in the rr/ethproofs branch, we do not use the "updated" or "deleted" options in any meaningful way. Since these values can be encapsulated, I decided to remove them. Additionally, the global "updated" / "deleted" options may create sneaky issues related to rollbacks. For example, if an element was marked as "updated" and the actual change is later rolled back, the label becomes misleading. This means we would always have to keep these nuances in mind. In practice, we already need to check diffs of storage slots or accounts to determine whether any changes occurred, so these labels do not add much useful information anyway.
The "deleted" option may become useful in the future if we decide to implement some optimized storage model, but its use would again require careful handling.
I use enums instead of bool values to keep it extendable if we decide to add new options (like "deleted"). Also it's somewhat more explicit.
Is this a breaking change?
Checklist