code: func nextNode(it iterator.Iterator) *Node {
  	for end := false; !end; end = !it.Next() {
  		id, field := splitKey(it.Key())
  		if field != nodeDBDiscoverRoot {
  			continue
  		}
  		var n Node
  		if err := rlp.DecodeBytes(it.Value(), &n); err != nil {
  			log.Warn(fmt.Sprintf("invalid node %x: %v", id, err))
  			continue
  		}
  		return &n
  	}
  	return nil
  }
docs: // reads the next node record from the iterator, skipping over other
  // database entries.