From b6fdd2f5fa7c09fc7af0dfef15300161e5dedc1e Mon Sep 17 00:00:00 2001 From: Wei-Ning Huang Date: Sun, 17 Mar 2019 14:28:19 +0800 Subject: dex: properly start and stop the block proposer module (#264) Stop blockproposer in the Stop() method of node service so the process doens't hang. --- cmd/gdex/main.go | 3 --- dex/api.go | 8 -------- dex/backend.go | 15 +++++++-------- dex/handler.go | 4 ++++ 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/cmd/gdex/main.go b/cmd/gdex/main.go index 29b61a4ec..3c9e598a5 100644 --- a/cmd/gdex/main.go +++ b/cmd/gdex/main.go @@ -372,8 +372,5 @@ func startNode(ctx *cli.Context, stack *node.Node) { if err := stack.Service(&dexon); err != nil { utils.Fatalf("Dexon service not running: %v", err) } - if err := dexon.StartProposing(); err != nil { - utils.Fatalf("Failed to string proposing: %v", err) - } } } diff --git a/dex/api.go b/dex/api.go index 23f98d7df..70976f071 100644 --- a/dex/api.go +++ b/dex/api.go @@ -131,14 +131,6 @@ func (api *PrivateAdminAPI) ImportChain(file string) (bool, error) { return true, nil } -func (api *PrivateAdminAPI) StartProposing() error { - return api.dex.StartProposing() -} - -func (api *PrivateAdminAPI) StopProposing() { - api.dex.StopProposing() -} - func (api *PrivateAdminAPI) IsCoreSyncing() bool { return api.dex.IsCoreSyncing() } diff --git a/dex/backend.go b/dex/backend.go index 0f68163c0..e90c3ad10 100644 --- a/dex/backend.go +++ b/dex/backend.go @@ -251,6 +251,10 @@ func (s *Dexon) Start(srvr *p2p.Server) error { } // Start the networking layer and the light server if requested s.protocolManager.Start(srvr, maxPeers) + + if s.config.BlockProposerEnabled { + s.bp.Start() + } return nil } @@ -260,17 +264,12 @@ func (s *Dexon) Stop() error { if s.indexer != nil { s.indexer.Stop() } + if s.config.BlockProposerEnabled { + s.bp.Stop() + } return nil } -func (s *Dexon) StartProposing() error { - return s.bp.Start() -} - -func (s *Dexon) StopProposing() { - s.bp.Stop() -} - func (s *Dexon) IsCoreSyncing() bool { return s.bp.IsCoreSyncing() } diff --git a/dex/handler.go b/dex/handler.go index ea04e6fbc..91d7360b2 100644 --- a/dex/handler.go +++ b/dex/handler.go @@ -310,6 +310,10 @@ func (pm *ProtocolManager) Stop() { pm.txsSub.Unsubscribe() // quits txBroadcastLoop pm.chainHeadSub.Unsubscribe() + if pm.isBlockProposer { + pm.finalizedBlockSub.Unsubscribe() + } + // Quit the sync loop. // After this send has completed, no new peers will be accepted. pm.noMorePeers <- struct{}{} -- cgit