(ctx context.Context, cfg *Config)
| 234 | } |
| 235 | |
| 236 | func (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 | |
| 268 | func (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) |
no test coverage detected