code: func NewProvider() *Provider {
  	// Initialize the block storage
  	attrsToIndex := []blkstorage.IndexableAttr{
  		blkstorage.IndexableAttrBlockHash,
  		blkstorage.IndexableAttrBlockNum,
  		blkstorage.IndexableAttrTxID,
  		blkstorage.IndexableAttrBlockNumTranNum,
  		blkstorage.IndexableAttrBlockTxID,
  		blkstorage.IndexableAttrTxValidationCode,
  	}
  	indexConfig := &blkstorage.IndexConfig{AttrsToIndex: attrsToIndex}
  	blockStoreProvider := fsblkstorage.NewProvider(
  		fsblkstorage.NewConf(ledgerconfig.GetBlockStorePath(), ledgerconfig.GetMaxBlockfileSize()),
  		indexConfig)
  
  	pvtStoreProvider := pvtdatastorage.NewProvider()
  	return &Provider{blockStoreProvider, pvtStoreProvider}
  }
docs: // NewProvider returns the handle to the provider