fabric: github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage Index | Files | Directories

package fsblkstorage

import "github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage"


Package Files

block_serialization.go block_stream.go blockfile_helper.go blockfile_mgr.go blockfile_rw.go blockindex.go blocks_itr.go config.go fs_blockstore.go fs_blockstore_provider.go metrics.go reset.go rollback.go


const (
    // ChainsDir is the name of the directory containing the channel ledgers.
    ChainsDir = "chains"
    // IndexDir is the name of the directory containing all block indexes across ledgers.
    IndexDir = "index"


var ErrUnexpectedEndOfBlockfile = errors.New("unexpected end of blockfile")

ErrUnexpectedEndOfBlockfile error used to indicate an unexpected end of a file segment this can happen mainly if a crash occurs during appening a block and partial block contents get written towards the end of the file

func ClearPreResetHeight Uses

func ClearPreResetHeight(blockStorageDir string, ledgerIDs []string) error

ClearPreResetHeight deletes the files that contain the last recorded reset heights for the specified ledgers

func DeleteBlockStoreIndex Uses

func DeleteBlockStoreIndex(blockStorageDir string) error

DeleteBlockStoreIndex deletes block store index file

func LoadPreResetHeight Uses

func LoadPreResetHeight(blockStorageDir string, ledgerIDs []string) (map[string]uint64, error)

LoadPreResetHeight searches the preResetHeight files for the specified ledgers and returns a map of channelname to the last recorded block height during one of the reset operations.

func NewProvider Uses

func NewProvider(conf *Conf, indexConfig *blkstorage.IndexConfig, metricsProvider metrics.Provider) (blkstorage.BlockStoreProvider, error)

NewProvider constructs a filesystem based block store provider

func ResetBlockStore Uses

func ResetBlockStore(blockStorageDir string) error

ResetBlockStore drops the block storage index and truncates the blocks files for all channels/ledgers to genesis blocks

func Rollback Uses

func Rollback(blockStorageDir, ledgerID string, targetBlockNum uint64, indexConfig *blkstorage.IndexConfig) error

Rollback reverts changes made to the block store beyond a given block number.

func ValidateRollbackParams Uses

func ValidateRollbackParams(blockStorageDir, ledgerID string, targetBlockNum uint64) error

ValidateRollbackParams performs necessary validation on the input given for the rollback operation.

type Conf Uses

type Conf struct {
    // contains filtered or unexported fields

Conf encapsulates all the configurations for `FsBlockStore`

func NewConf Uses

func NewConf(blockStorageDir string, maxBlockfileSize int) *Conf

NewConf constructs new `Conf`. blockStorageDir is the top level folder under which `FsBlockStore` manages its data

type FsBlockstoreProvider Uses

type FsBlockstoreProvider struct {
    // contains filtered or unexported fields

FsBlockstoreProvider provides handle to block storage - this is not thread-safe

func (*FsBlockstoreProvider) Close Uses

func (p *FsBlockstoreProvider) Close()

Close closes the FsBlockstoreProvider

func (*FsBlockstoreProvider) CreateBlockStore Uses

func (p *FsBlockstoreProvider) CreateBlockStore(ledgerid string) (blkstorage.BlockStore, error)

CreateBlockStore simply calls OpenBlockStore

func (*FsBlockstoreProvider) Exists Uses

func (p *FsBlockstoreProvider) Exists(ledgerid string) (bool, error)

Exists tells whether the BlockStore with given id exists

func (*FsBlockstoreProvider) List Uses

func (p *FsBlockstoreProvider) List() ([]string, error)

List lists the ids of the existing ledgers

func (*FsBlockstoreProvider) OpenBlockStore Uses

func (p *FsBlockstoreProvider) OpenBlockStore(ledgerid string) (blkstorage.BlockStore, error)

OpenBlockStore opens a block store for given ledgerid. If a blockstore is not existing, this method creates one This method should be invoked only once for a particular ledgerid



Package fsblkstorage imports 29 packages (graph) and is imported by 57 packages. Updated 2019-11-17. Refresh now. Tools for package owners.