aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei-Ning Huang <w@dexon.org>2019-03-17 14:28:19 +0800
committerSonic <sonic@dexon.org>2019-03-17 14:28:19 +0800
commit0f080723f00b24843f240ac3d603397e424f4249 (patch)
tree2f14741df79d8e2396c3fc0af98ef7021739b6e1
parent916a530eb7d0e1f69b817d44659ee8f76568bcf0 (diff)
downloaddexon-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.go3
-rw-r--r--dex/api.go8
-rw-r--r--dex/backend.go15
-rw-r--r--dex/handler.go4
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{}{}