-
Notifications
You must be signed in to change notification settings - Fork 519
simulators/eth2/engine: Update Proxy, Add Test Cases #569
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
Conversation
bf4eb09 to
9a69d3a
Compare
|
Update:
|
|
Update, fixed "syncing-with-invalid-chain" by spoofing |
|
Fixed a small issue that left proxies running in the bg after a test case had finished. |
7ec2c93 to
503e4f6
Compare
|
Added invalid timestamp test case. |
| } else if !exists { | ||
| ch <- res{err: fmt.Errorf("beacon %d: Expected state for head block", i)} | ||
| return | ||
| if exists, err := beaconapi.FinalityCheckpoints(ctx, b.API, eth2api.StateIdRoot(headInfo.Header.Message.StateRoot), &checkpoints); err != nil || !exists { |
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.
Could we add these changes and few blocks below to simulators/eth2/testnet/running_testnet.go so we could pass eth2/testnet too? I don't want to just copy and make PR from it but if you want, I can
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 think it would be better to create another PR to do this to not mix different simulators on the same PR.
|
When we are adding keystores and there are no validators on certain client like the 3rd client in test for keystore_path in /hive/input/keystores/*
do
pubkey=$(basename "$keystore_path")
cp "/hive/input/keystores/$pubkey/keystore.json" "/data/validators/keys/voting-keystore-$pubkey.json"
cp "/hive/input/secrets/$pubkey" "/data/validators/passwords/voting-keystore-$pubkey.txt"
doneTo something like this. Maybe there is better fix, I'm not good in bash [ ! -d "/hive/input/keystores/" ]; then
echo "No keystores to setup"
else
for keystore_path in /hive/input/keystores/*
do
pubkey=$(basename "$keystore_path")
cp "/hive/input/keystores/$pubkey/keystore.json" "/data/validators/keys/voting-keystore-$pubkey.json"
cp "/hive/input/secrets/$pubkey" "/data/validators/passwords/voting-keystore-$pubkey.txt"
done
fiAnd ideally move this method to some mixin so we are not duplicating this in every bash script UPDATE: btw, why do we need vc without validators? |
|
@zilm13 I think it would be better to not launch the validator if it has nothing to validate, so I will try this change directly in the simulator. The reason to include beacon nodes without validators is to verify that they don't follow a chain if their configuration mismatches (e.g. Terminal Total Difficulty), even if the chain has 66%+ participation. |
|
Hi @fjl, I think this PR should be ready to merge with a few considerations:
I think these changes can be part of new PRs to keep this PR from further growing. |
Co-authored-by: Dmitry S. <zilm13@users.noreply.github.com>
a9d96cd to
3332e8b
Compare
🤖 I have created a release *beep* *boop* --- ## [2.2.0](ethpandaops/ethereum-package@2.1.0...2.2.0) (2024-04-19) ### Features * add assertoor test for per PR CI job ([ethereum#537](ethpandaops/ethereum-package#537)) ([8ef5c57](ethpandaops/ethereum-package@8ef5c57)) * add blutgang rpc load balancer ([ethereum#569](ethpandaops/ethereum-package#569)) ([1be5f95](ethpandaops/ethereum-package@1be5f95)) * add dugtrio beacon load balancer ([ethereum#568](ethpandaops/ethereum-package#568)) ([56d2fa3](ethpandaops/ethereum-package@56d2fa3)) * add new assertoor test to per ci jobs ([ethereum#545](ethpandaops/ethereum-package#545)) ([3005d46](ethpandaops/ethereum-package@3005d46)) * use new rpc snooper from `ethpandaops/rpc-snooper` ([ethereum#567](ethpandaops/ethereum-package#567)) ([5676f0d](ethpandaops/ethereum-package@5676f0d)) ### Bug Fixes * add --contract-deployment-block parameter for Prysm ([ethereum#557](ethpandaops/ethereum-package#557)) ([d8dfbae](ethpandaops/ethereum-package@d8dfbae)) * Added '--enable-private-discovery' to Grandine ([ethereum#541](ethpandaops/ethereum-package#541)) ([a1ae708](ethpandaops/ethereum-package@a1ae708)) * beaconchain explorer ([ethereum#531](ethpandaops/ethereum-package#531)) ([b62ed6f](ethpandaops/ethereum-package@b62ed6f)) * beaconchain explorer ([ethereum#538](ethpandaops/ethereum-package#538)) ([ce1f337](ethpandaops/ethereum-package@ce1f337)) * blobber incorrect url ([ethereum#528](ethpandaops/ethereum-package#528)) ([6f84e3d](ethpandaops/ethereum-package@6f84e3d)) * bump json rpc snooper ([ethereum#553](ethpandaops/ethereum-package#553)) ([f69c4a7](ethpandaops/ethereum-package@f69c4a7)) * disable full sync if gcmode is archive ([ethereum#563](ethpandaops/ethereum-package#563)) ([b7592ec](ethpandaops/ethereum-package@b7592ec)) * disable pbss when gcmode archive set ([ethereum#559](ethpandaops/ethereum-package#559)) ([e085462](ethpandaops/ethereum-package@e085462)) * disable pbss when gcmode archive set, force hash based init ([ethereum#562](ethpandaops/ethereum-package#562)) ([3e1c7a6](ethpandaops/ethereum-package@3e1c7a6)) * disable static peers ([ethereum#529](ethpandaops/ethereum-package#529)) ([c5d4028](ethpandaops/ethereum-package@c5d4028)) * enable single node mode on lodestar by default ([ethereum#558](ethpandaops/ethereum-package#558)) ([555ad7d](ethpandaops/ethereum-package@555ad7d)) * fix doc string typo ([ethereum#560](ethpandaops/ethereum-package#560)) ([13de3f6](ethpandaops/ethereum-package@13de3f6)) * fix failing persistence test ([ethereum#554](ethpandaops/ethereum-package#554)) ([99242d6](ethpandaops/ethereum-package@99242d6)) * increase mem limit of snooper ([ethereum#546](ethpandaops/ethereum-package#546)) ([6ba5770](ethpandaops/ethereum-package@6ba5770)) * prysm beacon http url ([ethereum#536](ethpandaops/ethereum-package#536)) ([4914531](ethpandaops/ethereum-package@4914531)) * prysm beacon_http_url ([ethereum#535](ethpandaops/ethereum-package#535)) ([ee7528c](ethpandaops/ethereum-package@ee7528c)) * prysm vc ([ethereum#533](ethpandaops/ethereum-package#533)) ([72ddeb2](ethpandaops/ethereum-package@72ddeb2)) * remove un-needed prysm vc check ([ethereum#542](ethpandaops/ethereum-package#542)) ([f6326fe](ethpandaops/ethereum-package@f6326fe)) * set application protocol to be http for rpc ([ethereum#548](ethpandaops/ethereum-package#548)) ([905de7c](ethpandaops/ethereum-package@905de7c)) * set the correct default vc image ([ethereum#544](ethpandaops/ethereum-package#544)) ([953741d](ethpandaops/ethereum-package@953741d)) * uniformize keymanager ([ethereum#534](ethpandaops/ethereum-package#534)) ([a6a2830](ethpandaops/ethereum-package@a6a2830)) * update prometheus api ([ethereum#539](ethpandaops/ethereum-package#539)) ([d2b9fb8](ethpandaops/ethereum-package@d2b9fb8)) * update vc <> cl matrix ([ethereum#564](ethpandaops/ethereum-package#564)) ([0ffcf74](ethpandaops/ethereum-package@0ffcf74)) * update vc compatibility matrix ([ethereum#543](ethpandaops/ethereum-package#543)) ([58c4684](ethpandaops/ethereum-package@58c4684)) * use `minimal-preset` images for dora & assertoor when minimal preset is used ([ethereum#532](ethpandaops/ethereum-package#532)) ([ad7773e](ethpandaops/ethereum-package@ad7773e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This PR adds following EL-mock-based testnet test cases:
latestValidHashvalue is correctly interpreted by the CL when the EL had beenSYNCING.baseFeeEncoding Check: Verifies that the endianess is correct when a payload that contains a base fee greater than 255, by generating a execution chain with a high base fee on genesis and then performing the merge.All test cases use a new functionality of the proxy that implements callbacks and allows to introduce logic before modifying/corrupting a payload.