-
Notifications
You must be signed in to change notification settings - Fork 339
feat: Block-Level Access List support for Amsterdam #1381
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
base: forks/amsterdam
Are you sure you want to change the base?
feat: Block-Level Access List support for Amsterdam #1381
Conversation
16ca33d
to
72cb7e0
Compare
f4047ce
to
39dcb41
Compare
a817b8e
to
a5c7b29
Compare
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #1381 +/- ##
===================================================
- Coverage 83.07% 82.68% -0.40%
===================================================
Files 792 797 +5
Lines 47429 47850 +421
Branches 4239 4306 +67
===================================================
+ Hits 39404 39567 +163
- Misses 7540 7798 +258
Partials 485 485
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:
|
9408d94
to
c250ee2
Compare
return Bytes(encoded) | ||
|
||
|
||
def validate_block_access_list_against_execution( |
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.
@nerolation this doesn't look like it's currently being used anywhere. Was there a goal to use this within the spec?
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.
My original thought was that it might be helpful for debugging.
You can check a BAL is correct by building it during execution, hashing it, and comparing the hashes. You won't know what's wrong though.
Happy to remove it!
This comment was marked as resolved.
This comment was marked as resolved.
State tracking would be useful for the zkEVM team or to be more precise, the ability to eventually generate an ExecutionWitness akin to reth's Would leave Sam to opine on the execution specs side |
615ebdb
to
68c1b96
Compare
This comment was marked as resolved.
This comment was marked as resolved.
bf99e47
to
06d5523
Compare
This comment was marked as resolved.
This comment was marked as resolved.
b8ad380
to
d1cae55
Compare
- bal -> block_access_list; re-add custom rlp encoding for block access list - bytes to uint - move away from method-style - Update EIP-7928 implementation: system contracts at index 0, migrate to RLP - System contracts (parent hash, beacon root) now use block_access_index 0 - Transactions use block_access_index 1 to len(transactions) - Post-execution changes use block_access_index len(transactions) + 1 - Migrated from SSZ to RLP encoding as per updated EIP-7928 spec - Updated all tests to match new API and structure - Replaced tx_index with block_access_index throughout codebase - add system contract logic - add markdown docstrings - update BAL format; address comments - ssz encoding and bal validation - six ssz types - bal tests - balspecs
- fix(bal): Initialize the state tracker before system contract calls - We were missing system contract calls to beacon roots and history contracts. This change initializes the state tracker before system contract calls and passes the tracker to these calls if post-Amsterdam. - fix(docs): Fix issues with toxenvs: lint, doc, json_infra - fix(t8n): Only initialize the bal_change_tracker for amsterdam - feat(fork criteria): Index upcoming forks for better ordering / fix issues - chore(forks): Fix issues from lint after rebase with Osaka latest - fix(setuptools): Update packages to include amsterdam - chore(lint): Fix 'tox -e static' issues - Fix bug in tracker Manually cherry-picked from e72991b Author: nerolation - chore(tests): Attempt to resolve issues with CI tests - chore(lint): fix issues from running ``tox -e static`` locally - refactor(bal): Send BAL as a list over t8n tool - fix(amsterdam): Add change tracker to state test in t8n - chore(lint,tests): Fix tests after moving bal from osaka -> amsterdam - chore(forks): Move bals from Osaka to Amsterdam - chore(lint): Fix lint issues - refactor(bal): Send the full bal object and bal_hash over t8n - If we send the full object over JSON, we can model_validate() on ESST. - If we send the hash, once we fill the pydantic model, we can get the rlp and the hash and validate that our objects match while only really validating the parts of the BAL we are interested in for each test. - chore: point to working eest branch - chore(bals): Remove unused SSZ utils.py The SSZ implementation is no longer needed as we are now using RLP - refactor(bals): Clean up BAL module types and imports - Bytes -> Bytes32 type for storage slots - Remove unused imports / fix imports / fix linting - Update function signatures to match tracker - fix(bals-tx-index): Track bal indexes in t8n Keep track of BAL index state in t8n as is done in the Osaka ``fork.py`` implementation.
- Move BALs from amsterdam -> forks/amsterdam - rename: build -> build_block_access_list - fix docc issues
6c6c7b3
to
79d701f
Compare
* fix zero-value transfer tracking * fix reverted frame tracking * rename variables * fix missing addresses bug * fix: docs run & move imports to top of file --------- Co-authored-by: fselmo <[email protected]>
79d701f
to
8c82882
Compare
* fix self-destruct implementation * fix self-destruct tracking balance * fix it in the bal finalization by filtering * add balance reset and fix tests * simplify pre-balance tracking not using snapshots * fix: lint issues --------- Co-authored-by: fselmo <[email protected]>
What was wrong?
This builds on #1338 but moves Block Access List (BAL) support to Amsterdam. I worked on this branch in conjunction with the EEST branch (ethereum/execution-spec-tests#2067) to get them talking to each other and they are currently working well. This is meant to be an initial implementation for BAL and for Amsterdam support in general. I fully expect that we will iterate on these changes as new PRs on top of
forks/amsterdam
.How was it fixed?
Notable updates from #1338:
Cute Animal Picture