@@ -13,29 +13,45 @@ import (
13
13
"path/filepath"
14
14
)
15
15
16
- func ImportGenesisStore (genesisStore * genesisstore.Store , dataDir string , validatorMode bool , cacheRatio cachescale.Func ) error {
17
- if err := db .AssertDatabaseNotInitialized (dataDir ); err != nil {
16
+ // ImportParams are parameters for ImportGenesisStore func.
17
+ type ImportParams struct {
18
+ GenesisStore * genesisstore.Store
19
+ DataDir string
20
+ ValidatorMode bool
21
+ CacheRatio cachescale.Func
22
+ LiveDbCache , ArchiveCache int64 // in bytes
23
+ }
24
+
25
+ func ImportGenesisStore (params ImportParams ) error {
26
+ if err := db .AssertDatabaseNotInitialized (params .DataDir ); err != nil {
18
27
return fmt .Errorf ("database in datadir is already initialized: %w" , err )
19
28
}
20
- if err := db .RemoveDatabase (dataDir ); err != nil {
29
+ if err := db .RemoveDatabase (params . DataDir ); err != nil {
21
30
return fmt .Errorf ("failed to remove existing data from the datadir: %w" , err )
22
31
}
23
32
24
- chaindataDir := filepath .Join (dataDir , "chaindata" )
25
- dbs , err := db .MakeDbProducer (chaindataDir , cacheRatio )
33
+ chaindataDir := filepath .Join (params . DataDir , "chaindata" )
34
+ dbs , err := db .MakeDbProducer (chaindataDir , params . CacheRatio )
26
35
if err != nil {
27
36
return err
28
37
}
29
38
defer dbs .Close ()
30
39
setGenesisProcessing (chaindataDir )
31
40
32
- gdb , err := db .MakeGossipDb (dbs , dataDir , validatorMode , cacheRatio )
41
+ gdb , err := db .MakeGossipDb (db.GossipDbParameters {
42
+ Dbs : dbs ,
43
+ DataDir : params .DataDir ,
44
+ ValidatorMode : params .ValidatorMode ,
45
+ CacheRatio : params .CacheRatio ,
46
+ LiveDbCache : params .LiveDbCache ,
47
+ ArchiveCache : params .ArchiveCache ,
48
+ })
33
49
if err != nil {
34
50
return err
35
51
}
36
52
defer gdb .Close ()
37
53
38
- err = gdb .ApplyGenesis (genesisStore .Genesis ())
54
+ err = gdb .ApplyGenesis (params . GenesisStore .Genesis ())
39
55
if err != nil {
40
56
return fmt .Errorf ("failed to write Gossip genesis state: %v" , err )
41
57
}
@@ -54,7 +70,7 @@ func ImportGenesisStore(genesisStore *genesisstore.Store, dataDir string, valida
54
70
abftCrit := func (err error ) {
55
71
panic (fmt .Errorf ("lachesis store error: %w" , err ))
56
72
}
57
- cdb := abft .NewStore (cMainDb , cGetEpochDB , abftCrit , abft .DefaultStoreConfig (cacheRatio ))
73
+ cdb := abft .NewStore (cMainDb , cGetEpochDB , abftCrit , abft .DefaultStoreConfig (params . CacheRatio ))
58
74
defer cdb .Close ()
59
75
60
76
err = cdb .ApplyGenesis (& abft.Genesis {
0 commit comments