| 501 | } |
| 502 | |
| 503 | func (n *EsNode) Close() error { |
| 504 | var result *multierror.Error |
| 505 | |
| 506 | if n.server != nil { |
| 507 | n.server.Stop() |
| 508 | } |
| 509 | if n.p2pNode != nil { |
| 510 | if err := n.p2pNode.Close(); err != nil { |
| 511 | result = multierror.Append(result, fmt.Errorf("failed to close p2p node: %w", err)) |
| 512 | } |
| 513 | } |
| 514 | if n.downloader != nil { |
| 515 | if err := n.downloader.Close(); err != nil { |
| 516 | result = multierror.Append(result, fmt.Errorf("failed to close downloader: %w", err)) |
| 517 | } |
| 518 | } |
| 519 | // if n.p2pSigner != nil { |
| 520 | // if err := n.p2pSigner.Close(); err != nil { |
| 521 | // result = multierror.Append(result, fmt.Errorf("failed to close p2p signer: %w", err)) |
| 522 | // } |
| 523 | // } |
| 524 | |
| 525 | if n.resourcesClose != nil { |
| 526 | n.resourcesClose() |
| 527 | } |
| 528 | |
| 529 | // stop L1 heads feed |
| 530 | if n.l1HeadsSub != nil { |
| 531 | n.l1HeadsSub.Unsubscribe() |
| 532 | } |
| 533 | if n.randaoHeadsSub != nil { |
| 534 | n.randaoHeadsSub.Unsubscribe() |
| 535 | } |
| 536 | if n.miner != nil { |
| 537 | n.miner.Close() |
| 538 | } |
| 539 | if n.blobCache != nil { |
| 540 | if err := n.blobCache.Close(); err != nil { |
| 541 | result = multierror.Append(result, fmt.Errorf("failed to close blob cache: %w", err)) |
| 542 | } |
| 543 | } |
| 544 | |
| 545 | if n.archiverAPI != nil { |
| 546 | n.archiverAPI.Stop(context.Background()) |
| 547 | } |
| 548 | |
| 549 | if n.scanner != nil { |
| 550 | n.scanner.Close() |
| 551 | } |
| 552 | // close L2 driver |
| 553 | // if n.l2Driver != nil { |
| 554 | // if err := n.l2Driver.Close(); err != nil { |
| 555 | // result = multierror.Append(result, fmt.Errorf("failed to close L2 engine driver cleanly: %w", err)) |
| 556 | // } |
| 557 | |
| 558 | // // If the L2 sync client is present & running, close it. |
| 559 | // if n.rpcSync != nil { |
| 560 | // if err := n.rpcSync.Close(); err != nil { |