code: func (p *BlockPuller) PullBlock(seq uint64) *common.Block {
  	retriesLeft := p.MaxPullBlockRetries
  	for {
  		block := p.tryFetchBlock(seq)
  		if block != nil {
  			return block
  		}
  		retriesLeft--
  		if retriesLeft == 0 && p.MaxPullBlockRetries > 0 {
  			p.Logger.Errorf("Failed pulling block [%d]: retry count exhausted(%d)", seq, p.MaxPullBlockRetries)
  			return nil
  		}
  		time.Sleep(p.RetryTimeout)
  	}
  }
docs: // PullBlock blocks until a block with the given sequence is fetched
  // from some remote ordering node, or until consecutive failures
  // of fetching the block exceed MaxPullBlockRetries.