Skip to content

chore(genesis): update genesis files#2354

Merged
gzliudan merged 1 commit into
XinFinOrg:dev-upgradefrom
gzliudan:new-genesis-file
Jul 6, 2026
Merged

chore(genesis): update genesis files#2354
gzliudan merged 1 commit into
XinFinOrg:dev-upgradefrom
gzliudan:new-genesis-file

Conversation

@gzliudan

Copy link
Copy Markdown
Collaborator

Proposed changes

update genesis files for mainnet/testnet/devnet after PR #2329

Types of changes

What types of changes does your code introduce to XDC network?
Put an in the boxes that apply

  • build: Changes that affect the build system or external dependencies
  • ci: Changes to CI configuration files and scripts
  • chore: Changes that don't change source code or tests
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bug fix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • revert: Revert something
  • style: Changes that do not affect the meaning of the code
  • test: Adding missing tests or correcting existing tests

Impacted Components

Which parts of the codebase does this PR touch?
Put an in the boxes that apply

  • Consensus
  • Account
  • Network
  • Geth
  • Smart Contract
  • External components
  • Not sure (Please specify below)

Checklist

Put an in the boxes once you have confirmed below actions (or provide reasons on not doing so) that

  • This PR has sufficient test coverage (unit/integration test) OR I have provided reason in the PR description for not having test coverage
  • Tested on a private network from the genesis block and monitored the chain operating correctly for multiple epochs.
  • Provide an end-to-end test plan in the PR description on how to manually test it on the devnet/testnet.
  • Tested the backwards compatibility.
  • Tested with XDC nodes running this version co-exist with those running the previous version.
  • Relevant documentation has been updated as part of this PR
  • N/A

@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 83acdccd-3bf2-4819-b12b-c7049b0258c9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gzliudan gzliudan force-pushed the new-genesis-file branch 2 times, most recently from 3c77724 to 9db5fc8 Compare May 27, 2026 22:20
@gzliudan gzliudan force-pushed the new-genesis-file branch 2 times, most recently from 3cf207e to 20e4872 Compare June 11, 2026 06:51
@gzliudan gzliudan force-pushed the new-genesis-file branch 3 times, most recently from 6363ef4 to 2652e9b Compare July 6, 2026 08:42
@gzliudan gzliudan requested a review from Copilot July 6, 2026 08:42

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR refreshes the embedded network genesis JSON files (mainnet/testnet/devnet) to match the post-#2329 chain config schema, adding explicit fork switch fields, system contract addresses, and XDPoS v2 configuration sections.

Changes:

  • Expanded config sections for mainnet/testnet with TIP/fork blocks, Cancun, and system-contract address fields, plus XDPoS v2 config payloads.
  • Updated devnet genesis to include the newer fork fields and corrected legacy XDPoS JSON keys/typos (e.g., foundationWalletAddr, switchEpoch, expTimeoutConfig.base).
  • Added/extended XDPoS v2 allConfigs entries in genesis files.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
genesis/mainnet.json Adds explicit fork/TIP switches, system-contract addresses, and XDPoS v2 config structure for mainnet.
genesis/testnet.json Adds explicit fork/TIP switches, system-contract addresses, and XDPoS v2 config structure for testnet.
genesis/devnet.json Adds fork/TIP switches and XDPoS v2 config structure; also corrects several legacy key issues, but currently diverges from built-in devnet presets.

Comment thread genesis/devnet.json Outdated
Comment thread genesis/devnet.json Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

Comment thread genesis/mainnet.json
Comment thread genesis/testnet.json
@gzliudan gzliudan merged commit 1c0923d into XinFinOrg:dev-upgrade Jul 6, 2026
14 checks passed
@gzliudan gzliudan deleted the new-genesis-file branch July 6, 2026 09:27
gzliudan added a commit to gzliudan/XDPoSChain that referenced this pull request Jul 6, 2026
…is hash

The devnet genesis hash exposed by `XDC init devnet` diverged from
params.DevnetGenesisHash (used by `XDC --devnet` / DefaultDevnetGenesisBlock).
The two paths would have produced different block 0, making nodes initialized
via each method unable to peer with one another.

Root cause
----------
Commit 00be1f5 (chore(devnet): may 2026 devnet reset, XinFinOrg#2347, 2026-05-25)
updated core/genesis_alloc_devnet.go and common/constants.devnet.go as part of
a devnet network reset.  It added three pre-funded accounts to DevnetAllocData:

  4b1a14a10cb48e4cfddd17c379dfcaa358b011bc
  d16c20329d391104029d0a850dcdf9ed6e259b60
  cc08002e7e4baec892785887a74d35557e8d2c15

params.DevnetGenesisHash was later updated to reflect the new state root in
dfce638 (XinFinOrg#2329, 2026-05-28).

genesis/devnet.json was NOT touched by either commit; its alloc still contained
only the pre-May-2026 eight accounts.  Commit 1c0923d (XinFinOrg#2354, 2026-07-06)
then filled in the config section of devnet.json but again left the alloc
unchanged, so the JSON-derived genesis hash remained 0x7dad95... while
params.DevnetGenesisHash was 0xb8be00...

Fix
---
Add the three missing balance-only accounts to genesis/devnet.json alloc,
bringing it into parity with DevnetAllocData.  After this change:

  json.Unmarshal(DevnetGenesis).ToBlock().Hash() == params.DevnetGenesisHash
                                                 == 0xb8be003946a9c268...

Verified by running TestEmbeddedGenesisConfigMatchesParams (all three networks
pass) and a targeted hash-equality check.
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.

6 participants