Skip to content
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

Start chain from bellatrix state #11746

Merged
merged 57 commits into from
Dec 13, 2022
Merged

Start chain from bellatrix state #11746

merged 57 commits into from
Dec 13, 2022

Conversation

kasey
Copy link
Contributor

@kasey kasey commented Dec 8, 2022

What type of PR is this?

Feature

What does this PR do? Why is it needed?

This PR modifies the e2e test suite to start from a state at the bellatrix hard fork. This is important for interop testing, in particular for the Capella hard fork, because it speeds things up and simplifies the process, compared to starting from phase0, waiting for deposits and progressing through all the forks.

Which issues(s) does this PR fix?

Fixes #11508

Other notes for review
We agreed that we need to extend e2e to support starting from other forks so that we can start from phase0 in the twice-daily scenario tests (otherwise always starting from bellatrix for faster e2e). This will be done in a follow up PR, resolving 11750

@kasey kasey requested a review from a team as a code owner December 8, 2022 19:54
@kasey kasey requested review from rauljordan, saolyn and potuz December 8, 2022 19:54
@kasey kasey changed the title Draft: start chain from bellatrix state Start chain from bellatrix state Dec 9, 2022
@kasey kasey requested a review from nisdas December 12, 2022 21:27
kasey and others added 12 commits December 12, 2022 15:32
* Fix DeepSource errors in

* Omit receiver name

* Address PR comments

* Remove unused variable

* Fix more DeepSource errors

Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* WIP

* WIP

* WIP

* Add tests

* WIP

* Add more tests

* Address DeepSource errors

* Remove unused param

* Add more tests

* Address PR comments

* Address PR comments

* Fix formatting

* Remove unused parameter

* Fix TestLittleEndianBytesToBigInt

Co-authored-by: Radosław Kapka <rkapka@wp.pl>
* fix validator client

(cherry picked from commit deb1389)

* Use signed changes in middleware block

Co-authored-by: Potuz <potuz@prysmaticlabs.com>
* API `finalized` metadata field - update protos

* change nums

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
easiest to just remove it for now
we don't know which fork version genesis will start from, so we
shouldn't force it to be a phase0 genesis.
Copy link
Member

@nisdas nisdas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will break multiclient and other scenario tests, as they are meant to be run from phase 0. But I think we can wait till your next PR(follow up to this) before fixing them. We will just have be ok with them failing constantly till the follow up is merged in.

beacon-chain/core/blocks/genesis.go Outdated Show resolved Hide resolved
beacon-chain/execution/service.go Outdated Show resolved Hide resolved

// TerribleMarshalHack calls json.Marshal and also replaces the contract address string with a '0x' prefixed version,
// because for some reason geth broke their json marshaling.
func TerribleMarshalHack(g *core.Genesis, addresses ...string) ([]byte, error) {

This comment was marked as resolved.

beacon-chain/sync/rpc_status.go Outdated Show resolved Hide resolved
@nisdas nisdas merged commit 2e49fdb into develop Dec 13, 2022
@delete-merged-branch delete-merged-branch bot deleted the post-merge-genesis-mess2 branch December 13, 2022 23:13
roberto-bayardo pushed a commit to roberto-bayardo/prysm that referenced this pull request Dec 17, 2022
* WIP trying to start from bellatrix state

* env var to control log path with unique paths

due to flaky test re-run behavior, logs from a failed test run are
overwritten by subsequent retries. This makes it difficult to retrieve
logs after the first failed run. It also takes some squinting through
output to find the location of the log file in the first place. This
flag enables logs to be placed in an arbitrary path. Note that bazel
sandboxing generally will force this path to be in the /tmp tree.

* WIP - grabbing changes from rm-pre-genesis branch

* combine bellatrix state w/ rm-pre-genesis branch

* WIP

* use encoding/detect for genesis state bytes

* WIP more fixes towards start from bellatrix

* remove debug wrapping

* WIP

* multiple bugfixes

* fix fork ordering bug and bellatrix genesis blocks

* send deposits, spam tx to advance, fix miner alloc

* WIP

* WIP mess

* WIP

* Print process ID information for purposes of attaching a debugger

* bugs: genesis body_root and deposit index mismatch

* fix voting period start, skip altair check

* add changes

* make it better

* rm startup FCU, rm logs

* cleanup import grouping&ordering

* restore FCU log, get rid of tmp var

* rm newline

* restore newline

* restore wrapped error

* rm newline

* removing boot node version override

this doesn't seem to matter?

* add issue number to todo comment

* rm commented code

* rm vmdebug geth flag

* unexport values only used with genesis test pkg

and add comments where missing from exported values.

* adding comments to special cases for testnets

* migrate comments from PR to actual code :)

* rm unused test param

* mark e2e spawns exempt from gosec warning

* Fix DeepSource errors in `proposer_bellatrix.go` (prysmaticlabs#11739)

* Fix DeepSource errors in

* Omit receiver name

* Address PR comments

* Remove unused variable

* Fix more DeepSource errors

Co-authored-by: Radosław Kapka <rkapka@wp.pl>

* Remove `Test_IsExecutionEnabledCapella` (prysmaticlabs#11752)

Co-authored-by: Radosław Kapka <rkapka@wp.pl>

* Add REST implementation for Validator's `ProposeBeaconBlock` (prysmaticlabs#11731)

* WIP

* WIP

* WIP

* Add tests

* WIP

* Add more tests

* Address DeepSource errors

* Remove unused param

* Add more tests

* Address PR comments

* Address PR comments

* Fix formatting

* Remove unused parameter

* Fix TestLittleEndianBytesToBigInt

Co-authored-by: Radosław Kapka <rkapka@wp.pl>

* fix validator client (prysmaticlabs#11755)

* fix validator client

(cherry picked from commit deb1389)

* Use signed changes in middleware block

Co-authored-by: Potuz <potuz@prysmaticlabs.com>

* API `finalized` metadata field - update protos (prysmaticlabs#11749)

* API `finalized` metadata field - update protos

* change nums

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>

* log breaks unit tests that don't do full arg setup

easiest to just remove it for now

* restore prior behavior of phase0 block for altair

* update unit tests to account for special case

* loosen condition for fork version to match config

we don't know which fork version genesis will start from, so we
shouldn't force it to be a phase0 genesis.

* skip until we can mod configs at runtime

* NewGenesisBlockForState computes state root itself

* rm noisy log

* this log would be noisy in mainnet

* fix format specifier, []byte -> string

* core.Genesis UnmarshalJson has a value receiver :)

* no longer needs to be exported

Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
Co-authored-by: prestonvanloon <preston@prysmaticlabs.com>
Co-authored-by: nisdas <nishdas93@gmail.com>
Co-authored-by: Patrice Vignola <vignola.patrice@gmail.com>
Co-authored-by: Radosław Kapka <rkapka@wp.pl>
Co-authored-by: terencechain <terence@prysmaticlabs.com>
Co-authored-by: Potuz <potuz@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEAT] Support genesis from a merged state
6 participants