From cf4036ac3113325df8e8512c3d79fff1a2f5b5c2 Mon Sep 17 00:00:00 2001 From: "mark.lin" Date: Thu, 31 Aug 2017 14:10:10 +0800 Subject: [PATCH] eth: broadcast block after insertion --- eth/fetcher/fetcher.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/eth/fetcher/fetcher.go b/eth/fetcher/fetcher.go index 98cc1a76b6..fe847fd0bf 100644 --- a/eth/fetcher/fetcher.go +++ b/eth/fetcher/fetcher.go @@ -650,10 +650,6 @@ func (f *Fetcher) insert(peer string, block *types.Block) { // Quickly validate the header and propagate the block if it passes switch err := f.verifyHeader(block.Header()); err { case nil: - // All ok, quickly propagate to our peers - propBroadcastOutTimer.UpdateSince(block.ReceivedAt) - go f.broadcastBlock(block, true) - case consensus.ErrFutureBlock: // Weird future block, don't fail, but neither propagate @@ -668,6 +664,11 @@ func (f *Fetcher) insert(peer string, block *types.Block) { log.Debug("Propagated block import failed", "peer", peer, "number", block.Number(), "hash", hash, "err", err) return } + + // All ok, propagate to our peers + propBroadcastOutTimer.UpdateSince(block.ReceivedAt) + go f.broadcastBlock(block, true) + // If import succeeded, broadcast the block propAnnounceOutTimer.UpdateSince(block.ReceivedAt) go f.broadcastBlock(block, false)