code: func New(cfg *Config) *Transport {
  	ctx, cancel := context.WithCancel(context.Background())
  	if cfg.RaftID != "" {
  		ctx = log.WithField(ctx, "raft_id", cfg.RaftID)
  	}
  	t := &Transport{
  		peers:    make(map[uint64]*peer),
  		config:   cfg,
  		unknownc: make(chan raftpb.Message),
  		done:     make(chan struct{}),
  		ctx:      ctx,
  		cancel:   cancel,
  
  		deferredConns: make(map[*grpc.ClientConn]*time.Timer),
  	}
  	go t.run(ctx)
  	return t
  }
docs: // New returns new Transport with specified Config.