simulators/ethereum/engine: fix Reorg using Sync tests#560
simulators/ethereum/engine: fix Reorg using Sync tests#560fjl merged 17 commits intoethereum:masterfrom
Conversation
16ee7f6 to
819de32
Compare
marioevz
left a comment
There was a problem hiding this comment.
Looks great overall, I think this is more in line with what would happen in real case scenario.
I ran the tests and only Erigon seems to pass these tests. Is a change in geth necessary for them to pass ?
| { | ||
| Name: "Invalid Ancestor Chain Re-Org, Invalid GasUsed, Invalid P9', Reveal using sync", | ||
| TimeoutSeconds: 15, | ||
| Name: "Invalid Ancestor Chain Re-Org, Invalid GasUsed, Invalid P8', Reveal using sync", |
There was a problem hiding this comment.
Why are some P8' instead of P9'?
There was a problem hiding this comment.
Because I am unable to mine invalid blocks on top of an invalid block on a node. The next block is send via NewPayload. See also description
1e20fdb to
5e57816
Compare
|
Yes geth needs another PR in order to pass these tests |
|
New failing tests totals:
Attached are the full log files for each failing test on this PR for every client. |
|
Should we just merge this? |
I think so, these new issues look like genuine issues in some of the clients, I just wanted to share the logs with the clients' devs so they get a sense of what is being changed. |
🤖 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>
The tests used to start two node
n1andn2, and create a chainp1...p10withp9(usually) being the bad block.p9andp10were fed to noden2, whilep1...p8were fed ton1. The test then sendsforkChoiceUpdatesto blockp10ton2and expects{INVALID, LVH:p8}. However this requiresn2to cache the un-validated payloadsp9andp10and execute them later on. This caching is not required by the spec though.The new tests use a slightly hacked version of geth as
n1which allows for importing invalid payloads, so we feedp1...p9ton1and then sendforkChoiceUpdateston2for blockp10.n2should sync fromn1, detect the invalid chain and return{INVALID, LVH:p8}.I also refactored the
Reorg using SyncandReorg using NewPayloadout for better readability.The only test that still fails is
"Invalid Ancestor Chain Re-Org, Invalid Number, Invalid P9', Reveal using sync (go-ethereum)". Since the header chain is not continuous, because the number is invalid, we don't have the parent saved in our database therefore we will panic. I might just remove this test for cleanliness as it doesn't really test that much