code: func (s *Service) reportBlock(conn *websocket.Conn, block *types.Block) error {
  	// Gather the block details from the header or block chain
  	details := s.assembleBlockStats(block)
  
  	// Assemble the block report and send it to the server
  	log.Trace("Sending new block to ethstats", "number", details.Number, "hash", details.Hash)
  
  	stats := map[string]interface{}{
  		"id":    s.node,
  		"block": details,
  	}
  	report := map[string][]interface{}{
  		"emit": {"block", stats},
  	}
  	return websocket.JSON.Send(conn, report)
  }
docs: // reportBlock retrieves the current chain head and reports it to the stats server.