(ctx context.Context, cfg *Config)
| 345 | } |
| 346 | |
| 347 | func (n *EsNode) Start(ctx context.Context, cfg *Config) error { |
| 348 | n.startL1(cfg) |
| 349 | |
| 350 | // miner must be started before p2p sync |
| 351 | if n.miner != nil { |
| 352 | n.miner.Start() |
| 353 | } |
| 354 | |
| 355 | if err := n.downloader.Start(); err != nil { |
| 356 | n.lg.Error("Could not start a downloader", "err", err) |
| 357 | return err |
| 358 | } |
| 359 | // Scanner must be started after downloader resets storage manager |
| 360 | n.initScanner(ctx, cfg) |
| 361 | |
| 362 | if n.p2pNode != nil { |
| 363 | if err := n.p2pNode.Start(); err != nil { |
| 364 | n.lg.Error("Could not start a p2pNode", "err", err) |
| 365 | return err |
| 366 | } |
| 367 | } |
| 368 | |
| 369 | if cfg.StateUploadURL != "" { |
| 370 | n.lg.Info("Start upload node state") |
| 371 | go n.UploadNodeState(cfg.StateUploadURL) |
| 372 | } |
| 373 | |
| 374 | return nil |
| 375 | } |
| 376 | |
| 377 | func (n *EsNode) UploadNodeState(url string) { |
| 378 | <-time.After(2 * time.Minute) |
no test coverage detected