code: func BlockPullerFromConfigBlock(conf PullerConfig, block *common.Block, verifierRetriever VerifierRetriever) (*BlockPuller, error) {
  	if block == nil {
  		return nil, errors.New("nil block")
  	}
  
  	endpointconfig, err := EndpointconfigFromConfigBlock(block)
  	if err != nil {
  		return nil, err
  	}
  
  	dialer := &StandardDialer{
  		Dialer: NewTLSPinningDialer(comm.ClientConfig{
  			Timeout: conf.Timeout,
  			SecOpts: &comm.SecureOptions{
  				ServerRootCAs:     endpointconfig.TLSRootCAs,
  				Certificate:       conf.TLSCert,
  				Key:               conf.TLSKey,
  				RequireClientCert: true,
  				UseTLS:            true,
  			},
  		})}
  
  	tlsCertAsDER, _ := pem.Decode(conf.TLSCert)
  	if tlsCertAsDER == nil {
  		return nil, errors.Errorf("unable to decode TLS certificate PEM: %s", base64.StdEncoding.EncodeToString(conf.TLSCert))
  	}
  
  	return &BlockPuller{
  		Logger:  flogging.MustGetLogger("orderer.common.cluster.replication"),
  		Dialer:  dialer,
  		TLSCert: tlsCertAsDER.Bytes,
  		VerifyBlockSequence: func(blocks []*common.Block, channel string) error {
  			verifier := verifierRetriever.RetrieveVerifier(channel)
  			if verifier == nil {
  				return errors.Errorf("couldn't acquire verifier for channel %s", channel)
  			}
  			return VerifyBlocks(blocks, verifier)
  		},
  		MaxTotalBufferBytes: conf.MaxTotalBufferBytes,
  		Endpoints:           endpointconfig.Endpoints,
  		RetryTimeout:        RetryTimeout,
  		FetchTimeout:        conf.Timeout,
  		Channel:             conf.Channel,
  		Signer:              conf.Signer,
  	}, nil
  }
docs: // BlockPullerFromConfigBlock returns a BlockPuller that doesn't verify signatures on blocks.