code: func handleGetInfo(s *rpcServer, cmd interface{}, closeChan <-chan struct{}) (interface{}, error) {
  	best := s.cfg.Chain.BestSnapshot()
  	ret := &btcjson.InfoChainResult{
  		Version:         int32(1000000*appMajor + 10000*appMinor + 100*appPatch),
  		ProtocolVersion: int32(maxProtocolVersion),
  		Blocks:          best.Height,
  		TimeOffset:      int64(s.cfg.TimeSource.Offset().Seconds()),
  		Connections:     s.cfg.ConnMgr.ConnectedCount(),
  		Proxy:           cfg.Proxy,
  		Difficulty:      getDifficultyRatio(best.Bits, s.cfg.ChainParams),
  		TestNet:         cfg.TestNet3,
  		RelayFee:        cfg.minRelayTxFee.ToBTC(),
  	}
  
  	return ret, nil
  }
docs: // handleGetInfo implements the getinfo command. We only return the fields
  // that are not related to wallet functionality.