code: func newServerPool(db ethdb.Database, quit chan struct{}, wg *sync.WaitGroup, trustedNodes []string) *serverPool {
  	pool := &serverPool{
  		db:           db,
  		quit:         quit,
  		wg:           wg,
  		entries:      make(map[enode.ID]*poolEntry),
  		timeout:      make(chan *poolEntry, 1),
  		adjustStats:  make(chan poolStatAdjust, 100),
  		enableRetry:  make(chan *poolEntry, 1),
  		connCh:       make(chan *connReq),
  		disconnCh:    make(chan *disconnReq),
  		registerCh:   make(chan *registerReq),
  		knownSelect:  newWeightedRandomSelect(),
  		newSelect:    newWeightedRandomSelect(),
  		fastDiscover: true,
  		trustedNodes: parseTrustedNodes(trustedNodes),
  	}
  
  	pool.knownQueue = newPoolEntryQueue(maxKnownEntries, pool.removeEntry)
  	pool.newQueue = newPoolEntryQueue(maxNewEntries, pool.removeEntry)
  	return pool
  }
docs: // newServerPool creates a new serverPool instance