aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWei-Ning Huang <w@dexon.org>2019-03-17 14:28:19 +0800
committerWei-Ning Huang <w@byzantine-lab.io>2019-06-12 17:27:23 +0800
commit19c6af0154aa305288ab1ca2c3e716176dbd9563 (patch)
tree0976410e6aa0b58da877978699e11244037b31e9
parent5993c56b2835f3ac056707b153ed5c84855228d5 (diff)
downloadgo-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.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 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{}{}