Skip to content
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

feat(transition_tool): Support EELS resolver in daemon mode #792

Merged
merged 55 commits into from
Sep 27, 2024

Conversation

petertdavies
Copy link
Contributor

@petertdavies petertdavies commented Sep 6, 2024

🗒️ Description

Implement the EELS daemon support and fix various bugs and deficiencies found during testing EELS daemon support. Pre-Prague forks can be filled by installing the EELS resolver and running fill --evm-bin=ethereum-spec-evm-resolver.

Currently Prague support is broken due to issues in EELS.

🔗 Related Issues

Most of the code in this PR was implemented in the draft PR #453.
Resolves #264.

Follow-up issues:

✅ Checklist

  • All: Set appropriate labels for the changes.
  • All: Considered squashing commits to improve commit history.
  • All: Added an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.

@spencer-tb spencer-tb added type:feat type: Feature scope:fw Scope: Framework (evm|tools|forks|pytest) labels Sep 6, 2024
@spencer-tb
Copy link
Collaborator

spencer-tb commented Sep 6, 2024

Thanks! Looking foward to using this more :D
I added some extra tweaks here: petertdavies#1

Mostly some debug dir functionality!

feat: extra tweaks & additions to eels-e-r.
Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

746ce99 with petertdavies/ethereum-spec-evm-resolver/pull/3 seem to have resolved the OSError: AF_UNIX path too long on macOS.

Unfortunately, subsequent builds have failed due to a resolver issue on Linux in the framework tests.

>       sock.connect(socket_path)
E       ConnectionRefusedError: [Errno 111] Connection refused

.tox/framework/lib/python3.12/site-packages/requests_unixsocket/adapters.py:35: ConnectionRefusedError

https://github.com/ethereum/execution-spec-tests/actions/runs/11066974159/job/30749330866:

FAILED src/ethereum_test_specs/tests/test_expect.py::test_post_account_mismatch[pre3-post3-UnexpectedAccount]
FAILED src/ethereum_test_tools/tests/test_code.py::test_switch[no-calldataload-condition-met-different-length-actions]

https://github.com/ethereum/execution-spec-tests/actions/runs/11067119568/job/30749785674

FAILED src/ethereum_test_specs/tests/test_fixtures.py::test_fill_blockchain_invalid_txs[London-False-blockchain_london_invalid_filled.json]
FAILED src/ethereum_test_specs/tests/test_expect.py::test_post_code_value_mismatch[pre1-post1]

All these tests execute t8n, but using a shorter code path than when filling tests. The resolver is probably overkill in this case, but perhaps it can be further hardened. The other less favorable option is stop running these tests in parallel in tox, by marking them as run_in_serial as for the solc tests.

Gone with not running these tests in parallel in 9a250b3.

pyproject.toml Outdated Show resolved Hide resolved
Copy link
Member

@marioevz marioevz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! Great work on this, thanks so much!

Copy link
Member

@danceratopz danceratopz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope:fw Scope: Framework (evm|tools|forks|pytest) type:feat type: Feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

evm: test_withdrawing_to_precompiles fails using ethereum-spec-evm t8n tool
4 participants