diff --git a/eth/backend.go b/eth/backend.go index f6e7ef5fcc..98b45ea63e 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -258,8 +258,10 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { // Make sure Cel2 full sync node has migrated data from Celo1 currentBlock := eth.blockchain.CurrentBlock() if config.SyncMode == downloader.FullSync && chainConfig.Cel2Time != nil && !chainConfig.IsCel2(currentBlock.Number.Uint64()) { - log.Error("Migrated data for Cel2 is missing, please ensure the migrated data from Celo1 can be properly loaded before starting the blockchain", - "current number", currentBlock.Number.Uint64(), "current hash", currentBlock.Hash()) + log.Error(fmt.Sprintf( + "Chaindata is missing blocks, Cel2 fork is at block %d, but the head block is %d. Pre Cel2 blocks must be migrated from"+ + " Celo L1 chaindata, Celo L2 cannot generate pre Cel2 blocks. See migration instructions here - https://docs.celo.org/cel2/l2-operator-guide", + *chainConfig.Cel2Time, currentBlock.Number.Uint64())) return nil, fmt.Errorf("missing migrated data") } if chainConfig := eth.blockchain.Config(); chainConfig.Optimism != nil { // config.Genesis.Config.ChainID cannot be used because it's based on CLI flags only, thus default to mainnet L1