code: func NewLocal(clientProvider context.ClientProvider) (*Local, error) {
  	client, err := clientProvider()
  	if err != nil {
  		return nil, errors.WithMessage(err, "failed to get client context to create local context")
  	}
  
  	discoveryService, err := client.LocalDiscoveryProvider().CreateLocalDiscoveryService(client.Identifier().MSPID)
  	if err != nil {
  		return nil, errors.WithMessage(err, "failed to create local discovery service")
  	}
  
  	local := &Local{
  		Client:         client,
  		localDiscovery: discoveryService,
  	}
  
  	if ci, ok := discoveryService.(localServiceInit); ok {
  		if err := ci.Initialize(local); err != nil {
  			return nil, err
  		}
  	}
  
  	return local, nil
  }
docs: //NewLocal returns a new local context