Golang implemented sidechain for Bytom
Revision | 3907693e695fce8695cacb1a5dbac163188c50ca (tree) |
---|---|
Zeit | 2019-08-17 16:25:12 |
Autor | HAOYUatHZ <haoyu@prot...> |
Commiter | HAOYUatHZ |
fix
@@ -2,6 +2,7 @@ package monitor | ||
2 | 2 | |
3 | 3 | import ( |
4 | 4 | "fmt" |
5 | + "io/ioutil" | |
5 | 6 | "os" |
6 | 7 | "os/user" |
7 | 8 | "strings" |
@@ -42,22 +43,17 @@ func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor { | ||
42 | 43 | //TODO: for test |
43 | 44 | cfg.CheckFreqSeconds = 1 |
44 | 45 | |
45 | - usr, err := user.Current() | |
46 | + dir, err := makePath() | |
46 | 47 | if err != nil { |
47 | 48 | log.Fatal(err) |
48 | 49 | } |
49 | 50 | |
50 | - folderPath := usr.HomeDir + "/.precog" | |
51 | - if err := os.MkdirAll(folderPath, os.ModePerm); err != nil { | |
52 | - log.Fatalf("failed to create data folder: %v", err) | |
53 | - } | |
54 | - | |
55 | 51 | nodeCfg := &vaporCfg.Config{ |
56 | 52 | BaseConfig: vaporCfg.DefaultBaseConfig(), |
57 | 53 | P2P: vaporCfg.DefaultP2PConfig(), |
58 | 54 | Federation: vaporCfg.DefaultFederationConfig(), |
59 | 55 | } |
60 | - nodeCfg.DBPath = folderPath | |
56 | + nodeCfg.DBPath = dir | |
61 | 57 | nodeCfg.ChainID = "mainnet" |
62 | 58 | discvCh := make(chan *dht.Node) |
63 | 59 | privKey, err := signlib.NewPrivKey() |
@@ -81,6 +77,25 @@ func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor { | ||
81 | 77 | } |
82 | 78 | } |
83 | 79 | |
80 | +func makePath() (string, error) { | |
81 | + usr, err := user.Current() | |
82 | + if err != nil { | |
83 | + return "", err | |
84 | + } | |
85 | + | |
86 | + dataPath := usr.HomeDir + "/.precog" | |
87 | + if err := os.MkdirAll(dataPath, os.ModePerm); err != nil { | |
88 | + return "", err | |
89 | + } | |
90 | + | |
91 | + tmpDir, err := ioutil.TempDir(dataPath, "") | |
92 | + if err != nil { | |
93 | + return "", err | |
94 | + } | |
95 | + | |
96 | + return tmpDir, nil | |
97 | +} | |
98 | + | |
84 | 99 | func (m *monitor) Run() { |
85 | 100 | defer os.RemoveAll(m.nodeCfg.DBPath) |
86 | 101 |