Feat(devnet): Run devnet with testnet/mainnet data via re-genesis and chainspec#117
Merged
Feat(devnet): Run devnet with testnet/mainnet data via re-genesis and chainspec#117
Conversation
Vui-Chee
reviewed
Mar 4, 2026
| MERGE_RETH_GENESIS=false | ||
| MERGE_RETH_CHAIN=xlayer-testnet | ||
| MERGE_RETH_DATADIR_PATH= | ||
| XLAYER_RETH_TOOLS_IMAGE_TAG=xlayer-reth-tools:latest |
Contributor
There was a problem hiding this comment.
This is built using the tool in okx/xlayer-reth#159.
Contributor
|
@dloghin Currently, we cannot download testnet data snapshot for reth. Is there a way we can do this?
|
Contributor
Author
https://web3.okx.com/xlayer/docs/developer/setup-rpc/snapshots |
Vui-Chee
approved these changes
Mar 6, 2026
Contributor
Vui-Chee
left a comment
There was a problem hiding this comment.
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.
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.


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.