45 lines
1.1 KiB
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)
|
|
}
|