Skip to content

Commit da17d43

Browse files
authored
Merge pull request #3524 from dessaya/SaveDB
add solo SaveDB
2 parents ec9252d + 82e807e commit da17d43

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

packages/solo/chain.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
iotago "github.com/iotaledger/iota.go/v3"
2727
"github.com/iotaledger/wasp/packages/chain"
2828
"github.com/iotaledger/wasp/packages/cryptolib"
29+
"github.com/iotaledger/wasp/packages/database"
2930
"github.com/iotaledger/wasp/packages/evm/evmutil"
3031
"github.com/iotaledger/wasp/packages/hashing"
3132
"github.com/iotaledger/wasp/packages/isc"
@@ -749,3 +750,14 @@ func (ch *Chain) LatestBlockIndex() uint32 {
749750
func (ch *Chain) GetMempoolContents() io.Reader {
750751
panic("unimplemented")
751752
}
753+
754+
// SaveDB saves a RocksDB database with the contents of the chain DB
755+
func (ch *Chain) SaveDB(path string) {
756+
db := lo.Must(database.NewDatabase("rocksdb", path, true, false, database.CacheSizeDefault))
757+
store := db.KVStore()
758+
lo.Must0(ch.db.Iterate(nil, func(k []byte, v []byte) bool {
759+
lo.Must0(store.Set(k, v))
760+
return true
761+
}))
762+
lo.Must0(store.Flush())
763+
}

0 commit comments

Comments
 (0)