Skip to content

Commit

Permalink
Merge pull request #13883 from karalabe/boardcast-sync-head
Browse files Browse the repository at this point in the history
eth: announce block after sync cycle (star topology)
  • Loading branch information
karalabe committed Apr 10, 2017
2 parents 9cd7135 + bd2c54f commit f32b72c
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion eth/sync.go
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,15 @@ func (pm *ProtocolManager) synchronise(peer *peer) {
return
}
atomic.StoreUint32(&pm.synced, 1) // Mark initial sync done

if head := pm.blockchain.CurrentBlock(); head.NumberU64() > 0 {
// We've completed a sync cycle, notify all peers of new state. This path is
// essential in star-topology networks where a gateway node needs to notify
// all its out-of-date peers of the availability of a new block. This failure
// scenario will most often crop up in private and hackathon networks with
// degenerate connectivity, but it should be healthy for the mainnet too to
// more reliably update peers or the local TD state.
go pm.BroadcastBlock(head, false)
}
// If fast sync was enabled, and we synced up, disable it
if atomic.LoadUint32(&pm.fastSync) == 1 {
// Disable fast sync if we indeed have something in our chain
Expand Down

0 comments on commit f32b72c

Please sign in to comment.