code: public Channel newChannel(String name, Orderer orderer, ChannelConfiguration channelConfiguration,
                                byte[]... channelConfigurationSignatures) throws TransactionException, InvalidArgumentException {
  
          clientCheck();
          if (Utils.isNullOrEmpty(name)) {
              throw new InvalidArgumentException("Channel name can not be null or empty string.");
          }
  
          synchronized (channels) {
  
              if (channels.containsKey(name)) {
                  throw new InvalidArgumentException(format("Channel by the name %s already exits", name));
              }
  
              logger.trace("Creating channel :" + name);
  
              Channel newChannel = Channel.createNewInstance(name, this, orderer, channelConfiguration,
                      channelConfigurationSignatures);
  
              channels.put(name, newChannel);
              return newChannel;
  
          }
  
      }
docs: Create a new channel
  
  @param name                           The channel's name
  @param orderer                        Orderer to create the channel with.
  @param channelConfiguration           Channel configuration data.
  @param channelConfigurationSignatures byte arrays containing ConfigSignature's proto serialized.
  See {@link Channel#getChannelConfigurationSignature} on how to create
  @return a new channel.
  @throws TransactionException
  @throws InvalidArgumentException