1 Star 0 Fork 0

陈文甲/fabric

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
reset.go 1.84 KB
一键复制 编辑 原始数据 按行查看 历史
/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package kvledger
import (
"github.com/hyperledger/fabric/common/ledger/blkstorage/fsblkstorage"
"github.com/hyperledger/fabric/common/ledger/util/leveldbhelper"
"github.com/hyperledger/fabric/core/ledger/ledgerconfig"
"github.com/pkg/errors"
)
// ResetAllKVLedgers resets all ledger to the genesis block.
func ResetAllKVLedgers() error {
fileLock := leveldbhelper.NewFileLock(ledgerconfig.GetFileLockPath())
if err := fileLock.Lock(); err != nil {
return errors.Wrap(err, "as another peer node command is executing,"+
" wait for that command to complete its execution or terminate it before retrying")
}
defer fileLock.Unlock()
logger.Info("Resetting all ledgers to genesis block")
ledgerDataFolder := ledgerconfig.GetRootPath()
logger.Infof("Ledger data folder from config = [%s]", ledgerDataFolder)
if err := dropDBs(); err != nil {
return err
}
if err := resetBlockStorage(); err != nil {
return err
}
logger.Info("All channel ledgers have been successfully reset to the genesis block")
return nil
}
// LoadPreResetHeight returns the pre-reset height of all ledgers.
func LoadPreResetHeight() (map[string]uint64, error) {
blockstorePath := ledgerconfig.GetBlockStorePath()
logger.Infof("Loading prereset height from path [%s]", blockstorePath)
return fsblkstorage.LoadPreResetHeight(blockstorePath)
}
func ClearPreResetHeight() error {
blockstorePath := ledgerconfig.GetBlockStorePath()
logger.Infof("Clearing off prereset height files from path [%s]", blockstorePath)
return fsblkstorage.ClearPreResetHeight(blockstorePath)
}
func resetBlockStorage() error {
blockstorePath := ledgerconfig.GetBlockStorePath()
logger.Infof("Resetting BlockStore to genesis block at location [%s]", blockstorePath)
return fsblkstorage.ResetBlockStore(blockstorePath)
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/venjia/fabric.git
git@gitee.com:venjia/fabric.git
venjia
fabric
fabric
v1.4.9

搜索帮助