Skip to content

Conversation

felix314159
Copy link
Collaborator

@felix314159 felix314159 commented Aug 20, 2025

🗒️ Description

You can run it via uv run execute eth-config --network=Mainnet --rpc-endpoint=https://<replace>@rpc.nimbus-besu-1.fusaka-devnet-3.ethpandaops.io --clients="besu,erigon,nethermind,nimbusel,reth" --network-config-file=./src/pytest_plugins/execute/eth_config/networks.yml -vv -s

What happens

In the test_eth_config_majority() it requests and compares the eth_config responses of all provided --clients. Certain cl+el combinations might not be available so it picks the first working one for each exec client. The test is only passed if each execution client from the clients flag was successfully queried and all responses are identical. Otherwise an overview of which endpoints provided which response (which with hash) is given, so that client teams can be contacted about misconfiguration.

All other tests in execute_eth_config only contact the --rpc-endpoint, so here no additional combinations are derived and you only end up requesting info from one execution client.

🔗 Related Issues or PRs

N/A.

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx --with=tox-uv tox -e lint,typecheck,spellcheck,markdownlint
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered adding an entry to CHANGELOG.md.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.
  • Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.
  • Ported Tests: All converted JSON/YML tests from ethereum/tests or tests/static have been assigned @ported_from marker.

@LouisTsai-Csie
Copy link
Collaborator

LouisTsai-Csie commented Aug 21, 2025

Thanks @felix314159 ! i create a specific issue for eip-7910, could you please link this PR to the issue also.

Also, do we need a simulator for hive according to our last discussion?

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.

Thanks for the changes! I think we may need to adjust the approach here though, since it looks like some existing functionality would be lost with this implementation. Left some comments with suggestions on how to proceed.

@felix314159
Copy link
Collaborator Author

please take a look at the most recent commit, this should come close to what we want?

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.

This needs to use pytest_generate_tests, it currently overloads the fixture eth_rpc in a weird way, there's no need to do that.

@felix314159
Copy link
Collaborator Author

Implemented your feedback, let me know if we still need to change sth

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 much better now IMO.

There's a lot of comments but mostly because the change in src/ethereum_test_rpc/rpc.py broke consume and execute sadly. It's a small change but we need to be careful with the RPC package because of the implications it can have.

@felix314159
Copy link
Collaborator Author

Implemented your feedback and rebased on main. The only thing still unclear to me is the timeout comment

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 very good! I just tried this locally with my suggestions added and both modes are working great.

I came around and I now think --clients it's a very convenient addition, thanks!

@felix314159 felix314159 requested a review from marioevz September 1, 2025 09:14
@felix314159
Copy link
Collaborator Author

Thanks for all the improvements. The only thing I left out was the **kwargs thing, I find explicit code easier to understand. Would probably rather remove timeout completely or read it from some reasonable constant than have this

@marioevz
Copy link
Member

marioevz commented Sep 1, 2025

Not sure what's going on but execute hive is failing after this commit, I'm investigating what's happening.

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.

Hi, just a couple more comments, sadly the changes to src/ethereum_test_rpc/rpc.py are breaking uv run execute so it needs to be fixed.

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.

LGTM!

Let's get this merged! Thanks!

@marioevz marioevz merged commit 61f8ac9 into ethereum:main Sep 2, 2025
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants