MCPcopy Create free account
hub / github.com/ethstorage/es-node / initStorageManager

Method initStorageManager

ethstorage/node/node.go:236–266  ·  view source on GitHub ↗
(ctx context.Context, cfg *Config)

Source from the content-addressed store, hash-verified

234}
235
236func (n *EsNode) initStorageManager(ctx context.Context, cfg *Config) error {
237 shardManager := ethstorage.NewShardManager(cfg.Storage.L1Contract, cfg.Storage.KvSize, cfg.Storage.KvEntriesPerShard, cfg.Storage.ChunkSize)
238 for _, filename := range cfg.Storage.Filenames {
239 var err error
240 var df *ethstorage.DataFile
241 df, err = ethstorage.OpenDataFile(filename)
242 if err != nil {
243 return fmt.Errorf("open failed: %w", err)
244 }
245 if df.Miner() != cfg.Storage.Miner {
246 n.lg.Error("Miners mismatch", "fromDataFile", df.Miner(), "fromConfig", cfg.Storage.Miner)
247 return fmt.Errorf("miner mismatches datafile")
248 }
249 shardManager.AddDataFileAndShard(df)
250 }
251
252 if shardManager.IsComplete() != nil {
253 return fmt.Errorf("shard is not completed")
254 }
255
256 n.lg.Info("Initialized storage",
257 "miner", cfg.Storage.Miner,
258 "l1contract", cfg.Storage.L1Contract,
259 "kvSize", shardManager.MaxKvSize(),
260 "chunkSize", shardManager.ChunkSize(),
261 "kvsPerShard", shardManager.KvEntries(),
262 "shards", shardManager.ShardIds())
263
264 n.storageManager = ethstorage.NewStorageManager(shardManager, n.l1Source, n.lg)
265 return nil
266}
267
268func (n *EsNode) initRPCServer(ctx context.Context, cfg *Config) error {
269 server, err := newRPCServer(ctx, &cfg.RPC, cfg.ChainID, n.storageManager, n.downloader, n.lg, n.appVersion)

Callers 1

initMethod · 0.95

Calls 11

MinerMethod · 0.95
AddDataFileAndShardMethod · 0.95
IsCompleteMethod · 0.95
MaxKvSizeMethod · 0.95
ChunkSizeMethod · 0.95
KvEntriesMethod · 0.95
ShardIdsMethod · 0.95
NewShardManagerFunction · 0.92
OpenDataFileFunction · 0.92
NewStorageManagerFunction · 0.92
ErrorMethod · 0.45

Tested by

no test coverage detected