diff options
author | Wei-Ning Huang <w@dexon.org> | 2019-03-17 14:28:19 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@byzantine-lab.io> | 2019-06-12 17:27:23 +0800 |
commit | 19c6af0154aa305288ab1ca2c3e716176dbd9563 (patch) | |
tree | 0976410e6aa0b58da877978699e11244037b31e9 | |
parent | 5993c56b2835f3ac056707b153ed5c84855228d5 (diff) | |
download | go-tangerine-19c6af0154aa305288ab1ca2c3e716176dbd9563.tar.gz go-tangerine-19c6af0154aa305288ab1ca2c3e716176dbd9563.tar.zst go-tangerine-19c6af0154aa305288ab1ca2c3e716176dbd9563.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{}{} |