Skip to content

Commit

Permalink
[filedao] remove checkMasterChainDBFile() (#3463)
Browse files Browse the repository at this point in the history
  • Loading branch information
dustinxie authored Jun 27, 2022
1 parent 5a9bfa0 commit 388be8c
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 24 deletions.
14 changes: 8 additions & 6 deletions blockchain/filedao/filedao.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,11 @@ type (

// NewFileDAO creates an instance of FileDAO
func NewFileDAO(cfg db.Config) (FileDAO, error) {
header, err := checkMasterChainDBFile(cfg.DbPath)
if err == ErrFileInvalid || err == ErrFileCantAccess {
return nil, err
}

if err == ErrFileNotExist {
header, err := readFileHeader(cfg.DbPath, FileAll)
if err != nil {
if err != ErrFileNotExist {
return nil, err
}
// start new chain db using v2 format
if err := createNewV2File(1, cfg); err != nil {
return nil, err
Expand All @@ -98,6 +97,9 @@ func NewFileDAO(cfg db.Config) (FileDAO, error) {
}

switch header.Version {
case FileLegacyAuxiliary:
// default chain db file is legacy format, but not master, the master file has been corrupted
return nil, ErrFileInvalid
case FileLegacyMaster:
// master file is legacy format
return CreateFileDAO(true, cfg)
Expand Down
2 changes: 1 addition & 1 deletion blockchain/filedao/filedao_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ func TestNewFileDAOSplitV2(t *testing.T) {
defer os.RemoveAll(cfg.DbPath)

// test non-existing file
_, err := checkMasterChainDBFile(cfg.DbPath)
_, err := readFileHeader(cfg.DbPath, FileAll)
r.Equal(ErrFileNotExist, err)

// test empty db file, this will create new v2 file
Expand Down
17 changes: 0 additions & 17 deletions blockchain/filedao/filedao_util.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,6 @@ import (
"github.com/iotexproject/iotex-core/db"
)

func checkMasterChainDBFile(defaultName string) (*FileHeader, error) {
h, err := readFileHeader(defaultName, FileAll)
if err == ErrFileNotExist || err == ErrFileInvalid || err == ErrFileCantAccess {
return nil, err
}

switch h.Version {
case FileLegacyAuxiliary:
// default chain db file is legacy format, but not master, the master file has been corrupted
return h, ErrFileInvalid
case FileLegacyMaster, FileV2:
return h, nil
default:
panic(fmt.Errorf("corrupted file version: %s", h.Version))
}
}

func readFileHeader(filename, fileType string) (*FileHeader, error) {
if err := fileExists(filename); err != nil {
return nil, err
Expand Down

0 comments on commit 388be8c

Please sign in to comment.