-
Notifications
You must be signed in to change notification settings - Fork 104
Description
🐛 Bug Report
Environment
- OS: Ubuntu 22.04
- Hardware: 112 CPU cores, 503GB RAM, 7.3TB NVMe SSD
- Network: Mainnet
- Deployment Method: One-click setup script from xlayer-toolkit
Problem Description
I'm unable to start an X Layer full node using the new OP Stack architecture. The op-geth container fails to start with a fatal error about a chain data gap.
Error Message
Fatal: Failed to register the Ethereum service: gap in the chain between ancients [0 - #42720021] and db [#42810021 - #42810021]
Steps to Reproduce
- Clone xlayer-toolkit repository
- Run the one-click setup script:
curl -fsSL [https://raw.githubusercontent.com/okx/xlayer-toolkit/main/scripts/rpc-setup/one-click-setup.sh](https://raw.githubusercontent.com/okx/xlayer-toolkit/main/scripts/rpc-setup/one-click-setup.sh) -o one-click-setup.sh chmod +x one-click-setup.sh && ./one-click-setup.sh
Configure with:
Network: mainnet
L1 RPC: http://172.17.0.1/:8545 (local Geth)
L1 Beacon: http://172.17.0.1/:5052 (local Lighthouse)
Data directory: /mnt/7tb-disk/xlayer-data
Wait for initialization to complete
Check op-geth logs: docker compose logs op-geth
Expected Behavior
The node should initialize successfully and start syncing from L1.
Actual Behavior
The op-geth container crashes immediately with the error above. The Genesis file appears to have incomplete ancient data:
Ancient database: blocks 0 to #42,720,021
Main database: starts at block #42,810,021
Missing: 90,000 blocks (gap between #42,720,021 and #42,810,021)
Additional Context
Previous Deployment Attempt: I previously tried deploying using the legacy cdk-erigon method, which also failed:
Successfully synced to block #42,232,965
Got stuck at block #42,232,966 with error:
insufficient funds for gas * price + value
Unable to progress beyond this block despite multiple restart attempts
Current Infrastructure:
✅ Ethereum L1 (Geth): Fully synced (block 23,685,086)
✅ Beacon Chain (Lighthouse): Fully synced (slot 12,911,790)
❌ X Layer L2: Unable to deploy with either method
Questions
Is the Genesis file for mainnet complete and correct?
Is there an alternative snapshot or initialization method available?
Are there any known issues with the migration from cdk-erigon to OP Stack?
What is the recommended deployment method for running a full archive node?
Logs
INFO [10-29|19:23:03.711] Logging configured rotate=false format=terminal location=/var/log/op-geth/geth.log
INFO [10-29|19:23:03.740] Starting Geth on Ethereum mainnet...
INFO [10-29|19:23:03.741] Bumping default cache on mainnet provided=1024 updated=4096
INFO [10-29|19:23:03.755] Enabling recording of key preimages since archive mode is used
WARN [10-29|19:23:03.756] Disabled transaction unindexing for archive node
INFO [10-29|19:23:03.763] Allocated cache and file handles database=/data/geth/chaindata cache=2.00GiB handles=262,144
INFO [10-29|19:23:07.879] Opened ancient database database=/data/geth/chaindata/ancient/chain readonly=false
Chain metadata
headBlockHash: 0xdc33d8c0ec9de14fc2c21bd6077309a0a856df22821bd092a2513426e096a789
headHeaderHash: 0xdc33d8c0ec9de14fc2c21bd6077309a0a856df22821bd092a2513426e096a789
txIndexTail: 42810021 (0x28d3aa5)
Fatal: Failed to register the Ethereum service: gap in the chain between ancients [0 - #42720021] and db [#42810021 - #42810021]
System Configuration
yaml
L1_RPC_URL=http://172.17.0.1:8545
L1_BEACON_URL=http://172.17.0.1:5052
NETWORK=mainnet
Request
Could you please provide:
A corrected Genesis file with complete ancient data
Or a full node snapshot for mainnet
Or guidance on the proper deployment procedure
Thank you for your assistance!