code: func (s *server) handleUpdatePeerHeights(state *peerState, umsg updatePeerHeightsMsg) {
  	state.forAllPeers(func(sp *serverPeer) {
  		// The origin peer should already have the updated height.
  		if sp.Peer == umsg.originPeer {
  			return
  		}
  
  		// This is a pointer to the underlying memory which doesn't
  		// change.
  		latestBlkHash := sp.LastAnnouncedBlock()
  
  		// Skip this peer if it hasn't recently announced any new blocks.
  		if latestBlkHash == nil {
  			return
  		}
  
  		// If the peer has recently announced a block, and this block
  		// matches our newly accepted block, then update their block
  		// height.
  		if *latestBlkHash == *umsg.newHash {
  			sp.UpdateLastBlockHeight(umsg.newHeight)
  			sp.UpdateLastAnnouncedBlock(nil)
  		}
  	})
  }
docs: // handleUpdatePeerHeight updates the heights of all peers who were known to
  // announce a block we recently accepted.