Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[filedao] remove checkMasterChainDBFile()
Browse files Browse the repository at this point in the history
dustinxie committed Jun 22, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 9c24171 commit 1208e0c
Showing 4 changed files with 10 additions and 25 deletions.
14 changes: 8 additions & 6 deletions blockchain/filedao/filedao.go
Original file line number Diff line number Diff line change
@@ -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
@@ -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)
2 changes: 1 addition & 1 deletion blockchain/filedao/filedao_test.go
Original file line number Diff line number Diff line change
@@ -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
17 changes: 0 additions & 17 deletions blockchain/filedao/filedao_util.go
Original file line number Diff line number Diff line change
@@ -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
2 changes: 1 addition & 1 deletion ioctl/newcmd/node/node.go
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ package node

import (
"github.com/spf13/cobra"

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

0 comments on commit 1208e0c

Please sign in to comment.