Skip to content

Commit

Permalink
[filedao] remove checkMasterChainDBFile()
Browse files Browse the repository at this point in the history
  • Loading branch information
dustinxie committed Jun 22, 2022
1 parent 9c24171 commit 681f164
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 24 deletions.
15 changes: 10 additions & 5 deletions blockchain/filedao/filedao.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,20 +84,25 @@ type (

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

if err == ErrFileNotExist {
case ErrFileNotExist:
// start new chain db using v2 format
if err := createNewV2File(1, cfg); err != nil {
return nil, err
}
header = &FileHeader{Version: FileV2}
default:
return nil, err
}

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
2 changes: 1 addition & 1 deletion ioctl/newcmd/node/node.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package node

import (
"github.com/spf13/cobra"

"github.com/iotexproject/iotex-core/ioctl"
"github.com/iotexproject/iotex-core/ioctl/config"
)
Expand Down

0 comments on commit 681f164

Please sign in to comment.