diff options
author | Wei-Ning Huang <w@dexon.org> | 2019-03-17 14:28:19 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 21:32:58 +0800 |
commit | b6fdd2f5fa7c09fc7af0dfef15300161e5dedc1e (patch) | |
tree | 6a967297d627a6e0ac936e5cc79e743ba4022eb9 | |
parent | a843206090d68fdbd2a5b254385cb19fb1714776 (diff) | |
download | dexon-b6fdd2f5fa7c09fc7af0dfef15300161e5dedc1e.tar.gz dexon-b6fdd2f5fa7c09fc7af0dfef15300161e5dedc1e.tar.zst dexon-b6fdd2f5fa7c09fc7af0dfef15300161e5dedc1e.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 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{}{} |