Repository navigation
fix(genesis): use a deterministic configured timestamp - #75
Merged
shu-unifra merged 1 commit intoOct 9, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The genesis generator currently writes
vm.unixTime() / 1000into the block header. Running it in a different second changes the genesis hash even when all deployment inputs are identical.Read a fixed Unix timestamp from
genesis.TIMESTAMPinstead. The template uses0, and older configs without the field also default to0. Explicit timestamps are accepted up touint64::MAX; negative, malformed, and overflowing inputs fail. Keep deployment salt, other configuration, and build versions fixed when reproducing a genesis.Changing from a previously generated timestamp changes the genesis hash. Regenerate the Reth mainnet genesis JSON,
DOGEOS_MAINNET_GENESIS_HASHand its test, the rollup-node chain spec, and matching release images/tag together with the other pending mainnet genesis fixes. This change does not update an initialized network.Validation:
forge test --evm-version cancun: 560 passed, 0 failed, including timestamp defaults, explicit zero/nonzero values, the uint64 boundary, invalid inputs, and JSON serialization.python3 scripts/integration/test-eip2935.py --genesis-only: checks an explicit nonzero timestamp through the realgen-configs.shentrypoint, then repeats generation in a later wall-clock second and compares the entire genesis YAML byte-for-byte. This check already runs in CI.git diff --check: passed.