go_study/fabric-main/common/ledger/blkstorage/config.go

45 lines
1.1 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package blkstorage
import "path/filepath"
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"
defaultMaxBlockfileSize = 64 * 1024 * 1024 // bytes
)
// Conf encapsulates all the configurations for `BlockStore`
type Conf struct {
blockStorageDir string
maxBlockfileSize int
}
// NewConf constructs new `Conf`.
// blockStorageDir is the top level folder under which `BlockStore` manages its data
func NewConf(blockStorageDir string, maxBlockfileSize int) *Conf {
if maxBlockfileSize <= 0 {
maxBlockfileSize = defaultMaxBlockfileSize
}
return &Conf{blockStorageDir, maxBlockfileSize}
}
func (conf *Conf) getIndexDir() string {
return filepath.Join(conf.blockStorageDir, IndexDir)
}
func (conf *Conf) getChainsDir() string {
return filepath.Join(conf.blockStorageDir, ChainsDir)
}
func (conf *Conf) getLedgerBlockDir(ledgerid string) string {
return filepath.Join(conf.getChainsDir(), ledgerid)
}