-
Notifications
You must be signed in to change notification settings - Fork 231
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 network testing script #6489
Conversation
774e3e9
to
ee8e6e6
Compare
# Inputs on how to run checks | ||
# ------------------------------------------------ | ||
echo | ||
printf "Do you want to run the checks in terminal or visit the assertoor URL? (terminal/url) " |
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.
This printf
/read
pattern seem to only work interactively, or with some kludge such as feeding a prepared stdin to the the script?
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.
I mean yeah it was made to work just interactively, for deciding on few factors before running the tests. I find this way better than passing arguments with the script like --terminal=no
# ------------------------------------------------ | ||
|
||
# Use sed to replace the el_image value in the file | ||
cat kurtosis-network-params.yml | envsubst > assertoor.yaml |
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.
Since this file is created and removed fairly quickly, is it intended for human examination/consumption? If not, might be more robust to mktemp
a filename,
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.
In case of crashes get's useful for having the config
Also in future I plan to add devnet specific config loading from ethpandaops, in that case a lot of params will be changes, will need to be investigated in case of crashes ( which is very common in devnets )
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/ethpandaops/ethereum-package
This PR adds easier support to spin up test networks and run testnets locally. For running the testnet and then the checks run the
run-kurtosis-check.sh
script. This will spin up a testnet with your local nimbus-eth2 build and pull the latest releases from the other clients 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
Blob transaction tests
Execute all different types of transactions
Check chain stability ( finality checks )
The current client combination matrix
All combinations from the bellow table is made as client pairs and a network is setup for the tests