Skip to content

Commit

Permalink
feat: delete all temporarily stored state changes for MPT migration
Browse files Browse the repository at this point in the history
  • Loading branch information
Pangssu committed Dec 24, 2024
1 parent 5c71e51 commit 037f853
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
27 changes: 27 additions & 0 deletions core/kroma_migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -205,3 +205,30 @@ func DeleteStateChanges(db ethdb.KeyValueStore, blockNumber uint64) error {
}
return batch.Write()
}

func DeleteAllStateChanges(db ethdb.KeyValueStore) error {
batch := db.NewBatch()
deleteFunc := func(prefix []byte) error {
it := db.NewIterator(prefix, nil)
for it.Next() {
err := batch.Delete(it.Key())
if err != nil {
return err
}
}
if it.Error() != nil {
return it.Error()
}
return nil
}
if err := deleteFunc(destructChangesPrefix); err != nil {
return err
}
if err := deleteFunc(accountChangesPrefix); err != nil {
return err
}
if err := deleteFunc(storageChangesPrefix); err != nil {
return err
}
return batch.Write()
}
10 changes: 9 additions & 1 deletion migration/migrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,18 @@ func (m *StateMigrator) FinalizeTransition(transitionBlock types.Block) {
// Write the chain config to disk.
genesisHash := rawdb.ReadCanonicalHash(m.db, 0)
rawdb.WriteChainConfig(m.db, genesisHash, cfg)
log.Info("Wrote chain config", "bedrock-block", cfg.BedrockBlock, "zktrie", cfg.Zktrie)

// Switch trie backend to MPT
cfg.Zktrie = false
m.backend.BlockChain().TrieDB().SetBackend(false)

log.Info("Wrote chain config", "bedrock-block", cfg.BedrockBlock, "zktrie", cfg.Zktrie)
// Delete all state changes.
go func() {
if err := core.DeleteAllStateChanges(m.db); err != nil {
log.Warn("Failed to delete all state changes for MPT migration", "err", err)
} else {
log.Info("All state changes have been deleted for MPT migration")
}
}()
}

0 comments on commit 037f853

Please sign in to comment.