-
Notifications
You must be signed in to change notification settings - Fork 106
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
Kurtosis testing for nimbus eth1 and eth2 #2281
Conversation
c3ee850
to
a058aa8
Compare
In general, it's useful to run these shell script through
|
Removed the need for pushing the temporary image built to dockerhub, now it will be able to use a local docker image |
One general concern is, adding the Kurtosis tests right now means CI will always be failing. While this is to some extent an accurate reflection of, well,
Merging this PR as-is would hinder these goals. We've used a few approaches here:
So for example
There's a lot of flexibility here, which is useful -- might be able to find a useful subset of those which work today, and merge it with those working (to get the regression properties in But arguably, just adding guaranteed-fails to the CI is a regression unless otherwise mitigated. Apropos the the
We've run into random "standard task doesn't work when a user on Windows with, horror, spaces in their path tries to build/etc" things it's worth being careful about the quoting. Considered creating a lint job which runs/enforces some version of |
we can run them without reporting the error to the runner - or even beer, report an error when they start working so we know when that happens |
Yeah, especially if there's no useful subset that is interesting. But it depends where it fails. If all but one of the listed Kurtosis checks works, that's might be worth genuinely checking as part of CI. I suspect this is not the case though:
and since most/all of the listed tests depend on the engine API and non-optimistic block processing to be interesting (in the context of |
Fixes #172
The kurtosis package that will spin up a private Ethereum testnet over Docker or Kubernetes with multi-client support, Flashbot's mev-boost infrastructure for PBS-related testing/validation, and other useful network tools (transaction spammer, monitoring tools, etc). Kurtosis packages are entirely reproducible and composable, so this will work the same way over Docker or Kubernetes, in the cloud or locally on your machine. For more details https://github.com/kurtosis-tech/ethereum-package
This PR adds easier support to spin up test networks and run testnets both locally and over the github CI. For running the testnet and then the checks run the
run-kurtosis-check.sh
script. This will spin up a testnet with your localnimbus-eth1
build and pull thenimbus-eth2
build fromstatusim
dockerhub, then run the following testsCheck if atleast one client is ready
Check if all EL and CL clients are synced
Check consensus finality
Check consensus attestation stats
Check consensus reorgs
Check consensus forks
Check if all clients propose blocks with legacy EOA transactions
10 EOA transactions per block
check block proposals
Execute all opcodes as contract deployment
Execute all opcodes as contract call
Check precompile calls
Check chain stability ( finality checks )
The networks configs can be easily changes and multi-client testing can be introduced in this whole setup only, by just changing the network configs in
kurtosis-network-params.yml