code: func (ri *replicationInitiator) ReplicateChains(lastConfigBlock *common.Block, chains []string) []string {
  	ri.logger.Info("Will now replicate chains", chains)
  	wantedChannels := make(map[string]struct{})
  	for _, chain := range chains {
  		wantedChannels[chain] = struct{}{}
  	}
  	filter := func(channelName string) bool {
  		_, exists := wantedChannels[channelName]
  		return exists
  	}
  	replicator := ri.createReplicator(lastConfigBlock, filter)
  	replicator.DoNotPanicIfClusterNotReachable = true
  	defer replicator.Puller.Close()
  	return replicator.ReplicateChains()
  }
docs: // ReplicateChains replicates the given chains with the assistance of the given last system channel config block,
  // and returns the names of the chains that were successfully replicated.