OnStop stops the Node. It implements service.Service.
()
| 804 | |
| 805 | // OnStop stops the Node. It implements service.Service. |
| 806 | func (n *nodeImpl) OnStop() { |
| 807 | |
| 808 | n.Logger.Info("Stopping Node") |
| 809 | |
| 810 | // first stop the non-reactor services |
| 811 | if err := n.eventBus.Stop(); err != nil { |
| 812 | n.Logger.Error("Error closing eventBus", "err", err) |
| 813 | } |
| 814 | if err := n.indexerService.Stop(); err != nil { |
| 815 | n.Logger.Error("Error closing indexerService", "err", err) |
| 816 | } |
| 817 | |
| 818 | for _, es := range n.eventSinks { |
| 819 | if err := es.Stop(); err != nil { |
| 820 | n.Logger.Error("failed to stop event sink", "err", err) |
| 821 | } |
| 822 | } |
| 823 | |
| 824 | if n.config.Mode != config.ModeSeed { |
| 825 | // now stop the reactors |
| 826 | |
| 827 | // Stop the real blockchain reactor separately since the switch uses the shim. |
| 828 | if err := n.bcReactor.Stop(); err != nil { |
| 829 | n.Logger.Error("failed to stop the blockchain reactor", "err", err) |
| 830 | } |
| 831 | |
| 832 | // Stop the real consensus reactor separately since the switch uses the shim. |
| 833 | if err := n.consensusReactor.Stop(); err != nil { |
| 834 | n.Logger.Error("failed to stop the consensus reactor", "err", err) |
| 835 | } |
| 836 | |
| 837 | // Stop the real state sync reactor separately since the switch uses the shim. |
| 838 | if err := n.stateSyncReactor.Stop(); err != nil { |
| 839 | n.Logger.Error("failed to stop the state sync reactor", "err", err) |
| 840 | } |
| 841 | |
| 842 | // Stop the real mempool reactor separately since the switch uses the shim. |
| 843 | if err := n.mempoolReactor.Stop(); err != nil { |
| 844 | n.Logger.Error("failed to stop the mempool reactor", "err", err) |
| 845 | } |
| 846 | |
| 847 | // Stop the real evidence reactor separately since the switch uses the shim. |
| 848 | if err := n.evidenceReactor.Stop(); err != nil { |
| 849 | n.Logger.Error("failed to stop the evidence reactor", "err", err) |
| 850 | } |
| 851 | } |
| 852 | |
| 853 | if err := n.pexReactor.Stop(); err != nil { |
| 854 | n.Logger.Error("failed to stop the PEX v2 reactor", "err", err) |
| 855 | } |
| 856 | |
| 857 | if n.config.P2P.UseLegacy { |
| 858 | if err := n.sw.Stop(); err != nil { |
| 859 | n.Logger.Error("failed to stop switch", "err", err) |
| 860 | } |
| 861 | } else { |
| 862 | if err := n.router.Stop(); err != nil { |
| 863 | n.Logger.Error("failed to stop router", "err", err) |