simulators/eth2/engine: Update Proxy, Add Test Cases#569
simulators/eth2/engine: Update Proxy, Add Test Cases#569marioevz merged 24 commits intoethereum:masterfrom
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.
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.
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.