diff options
author | Wei-Ning Huang <w@dexon.org> | 2019-03-21 16:27:57 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-04-09 21:32:58 +0800 |
commit | 53e91f6c8d2a1b00727b2670ee1f658269b6fb7a (patch) | |
tree | 8b174686087d2de6578491088e4664012d025ea4 /dex/backend.go | |
parent | a18f103408de2552bb5f47b1d76f4c6f18f0677e (diff) | |
download | dexon-53e91f6c8d2a1b00727b2670ee1f658269b6fb7a.tar dexon-53e91f6c8d2a1b00727b2670ee1f658269b6fb7a.tar.gz dexon-53e91f6c8d2a1b00727b2670ee1f658269b6fb7a.tar.bz2 dexon-53e91f6c8d2a1b00727b2670ee1f658269b6fb7a.tar.lz dexon-53e91f6c8d2a1b00727b2670ee1f658269b6fb7a.tar.xz dexon-53e91f6c8d2a1b00727b2670ee1f658269b6fb7a.tar.zst dexon-53e91f6c8d2a1b00727b2670ee1f658269b6fb7a.zip |
dex: fix fast sync in BP mode (#291)
Start blockproposer only after fast sync is completed (received
ChainHead event), so watchcat is not falsely triggered.
Diffstat (limited to 'dex/backend.go')
-rw-r--r-- | dex/backend.go | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/dex/backend.go b/dex/backend.go index f1b0012a2..29ac42906 100644 --- a/dex/backend.go +++ b/dex/backend.go @@ -253,7 +253,20 @@ func (s *Dexon) Start(srvr *p2p.Server) error { s.protocolManager.Start(srvr, maxPeers) if s.config.BlockProposerEnabled { - s.bp.Start() + go func() { + // Since we might be in fast sync mode when started. wait for + // ChainHeadEvent before starting blockproposer, or else we will trigger + // watchcat. + if s.config.SyncMode == downloader.FastSync && + s.blockchain.CurrentBlock().NumberU64() == 0 { + ch := make(chan core.ChainHeadEvent) + sub := s.blockchain.SubscribeChainHeadEvent(ch) + defer sub.Unsubscribe() + + <-ch + } + s.bp.Start() + }() } return nil } |