diff options
author | Wei-Ning Huang <w@dexon.org> | 2019-03-17 14:28:19 +0800 |
---|---|---|
committer | Sonic <sonic@dexon.org> | 2019-03-17 14:28:19 +0800 |
commit | 0f080723f00b24843f240ac3d603397e424f4249 (patch) | |
tree | 2f14741df79d8e2396c3fc0af98ef7021739b6e1 | |
parent | 916a530eb7d0e1f69b817d44659ee8f76568bcf0 (diff) | |
download | dexon-0f080723f00b24843f240ac3d603397e424f4249.tar.gz dexon-0f080723f00b24843f240ac3d603397e424f4249.tar.zst dexon-0f080723f00b24843f240ac3d603397e424f4249.zip |
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.
-rw-r--r-- | cmd/gdex/main.go | 3 | ||||
-rw-r--r-- | dex/api.go | 8 | ||||
-rw-r--r-- | dex/backend.go | 15 | ||||
-rw-r--r-- | dex/handler.go | 4 |
4 files changed, 11 insertions, 19 deletions
diff --git a/cmd/gdex/main.go b/cmd/gdex/main.go index ed3a19d1f..d7b09a53e 100644 --- a/cmd/gdex/main.go +++ b/cmd/gdex/main.go @@ -371,8 +371,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{}{} |