-
Notifications
You must be signed in to change notification settings - Fork 520
simulators/ethereum/engine: Transition Payload checks #554
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
mkalinin
left a comment
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.
LGTM! 👍
490161f to
90c760f
Compare
|
I removed the Terminal Block checks from this PR due to this: Test case where I also reduced |
fixed the failing persistence test by re-ordering the clients list. The test fails because initialization of all EL clients takes longer than the initial genesis delay. Due to this, lighhouse returns an unhealty result for its health check as it's post-genesis and not following a chain / has no peers. The kurtosis package waits for a healthy result, which never occurs as all other BNs & VCs are missing at that point. The fix proposed in this PR is a workaround as it moves the lighthouse node further down to ensure it can connect to other nodes initialized before. There is an alternative approach to fix this issue: ``` network_params: genesis_delay: 300 ``` which ensures all clients are properly initialized before the network starts.
🤖 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 checks on the transition tests, specifically to verify the return values of the Engine API endpoints on:
newPayload(TP)whereTPis a valid transition payload built on top of a valid terminal block.forkchoiceUpdated(TB)whereTBis a valid terminal block.newPayload(INV_TP)whereINV_TPis an invalid payload built on top of a terminal block whereTB.Parent.TD >= TTDnewPayload(INV_TP)whereINV_TPis an invalid payload built on top of a terminal block whereTB.TD < TTDforkchoiceUpdated(INV_TB)whereINV_TB.Parent.TD >= TTDforkchoiceUpdated(INV_TB)whereINV_TB.TD < TTDThese changes improve on previous tests where the only passing requirement was that the client didn't switch to the invalid chain. Here the
INVALIDresponse to the CL must be verified.cc @mkalinin