Skip to content

Feat(devnet): Run devnet with testnet/mainnet data via re-genesis and chainspec#117

Merged
dloghin merged 6 commits intomainfrom
dumi/gen-genesis-v2
Mar 6, 2026
Merged

Feat(devnet): Run devnet with testnet/mainnet data via re-genesis and chainspec#117
dloghin merged 6 commits intomainfrom
dumi/gen-genesis-v2

Conversation

@dloghin
Copy link
Contributor

@dloghin dloghin commented Mar 3, 2026

There are cases when we want to benchmark or profile XLayer with more data in the database. In these cases, we want to run XLayer devnet with XLayer testnet or mainnet data.

This PR proposes the following way:

  • Download testnet/mainnet snapshot or set a local rpc using xlayer-toolkit and sync the latest blocks.

  • Create a big genesis file based on the testnet/mainnet data. For this, we created a tool named gen-genesis under xlayer-reth repository that creates a big genesis file starting from a template genesis and an existing op-reth data directory. The template genesis is created during the xlayer-toolkit devnet setup process (./3-op-init.sh) and the gen-genesis tool is run under the same script after this genesis is created.

  • Start devnet using the standard way (./0-all.sh) just by modifying a few .env variables.

  • op-reth-seq and op-reth-rpc can be started in fast mode by providing an xlayer-devnet chainspec that is created at the same time as the big genesis file. However, this requires a rebuild of xlayer-reth node, which is automatically handled by 3-op-init.sh when USE_CHAINSPEC=true and OP_RETH_LOCAL_DIRECTORY points to an xlayer-reth repo.

@dloghin dloghin marked this pull request as ready for review March 3, 2026 09:14
@dloghin dloghin requested a review from Vui-Chee March 3, 2026 09:14
MERGE_RETH_GENESIS=false
MERGE_RETH_CHAIN=xlayer-testnet
MERGE_RETH_DATADIR_PATH=
XLAYER_RETH_TOOLS_IMAGE_TAG=xlayer-reth-tools:latest
Copy link
Contributor

Choose a reason for hiding this comment

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

This is built using the tool in okx/xlayer-reth#159.

@Vui-Chee
Copy link
Contributor

Vui-Chee commented Mar 4, 2026

@dloghin Currently, we cannot download testnet data snapshot for reth. Is there a way we can do this?

image

@dloghin
Copy link
Contributor Author

dloghin commented Mar 6, 2026

@dloghin Currently, we cannot download testnet data snapshot for reth. Is there a way we can do this?

image

https://web3.okx.com/xlayer/docs/developer/setup-rpc/snapshots

@dloghin dloghin requested a review from Vui-Chee March 6, 2026 03:59
Copy link
Contributor

@Vui-Chee Vui-Chee left a comment

Choose a reason for hiding this comment

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

Code looks good. The changes are well-structured with proper error handling and validation. The wait_for_el_to_start function is a solid addition to ensure the EL is ready before starting dependent services, and the chainspec/genesis merge support is cleanly gated behind env vars so existing workflows are unaffected.

@dloghin dloghin merged commit 7070213 into main Mar 6, 2026
@dloghin dloghin deleted the dumi/gen-genesis-v2 branch March 6, 2026 05:10
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.

2 participants