code: func (c *lesCommons) nodeInfo() interface{} {
  	var cht params.TrustedCheckpoint
  	sections, _, _ := c.chtIndexer.Sections()
  	sections2, _, _ := c.bloomTrieIndexer.Sections()
  
  	if sections2 < sections {
  		sections = sections2
  	}
  	if sections > 0 {
  		sectionIndex := sections - 1
  		sectionHead := c.bloomTrieIndexer.SectionHead(sectionIndex)
  		cht = params.TrustedCheckpoint{
  			SectionIndex: sectionIndex,
  			SectionHead:  sectionHead,
  			CHTRoot:      light.GetChtRoot(c.chainDb, sectionIndex, sectionHead),
  			BloomRoot:    light.GetBloomTrieRoot(c.chainDb, sectionIndex, sectionHead),
  		}
  	}
  
  	chain := c.protocolManager.blockchain
  	head := chain.CurrentHeader()
  	hash := head.Hash()
  	return &NodeInfo{
  		Network:    c.config.NetworkId,
  		Difficulty: chain.GetTd(hash, head.Number.Uint64()),
  		Genesis:    chain.Genesis().Hash(),
  		Config:     chain.Config(),
  		Head:       chain.CurrentHeader().Hash(),
  		CHT:        cht,
  	}
  }
docs: // nodeInfo retrieves some protocol metadata about the running host node.