diff options
author | Martin Holst Swende <martin@swende.se> | 2017-11-21 00:39:53 +0800 |
---|---|---|
committer | Felix Lange <fjl@users.noreply.github.com> | 2017-11-21 00:39:53 +0800 |
commit | bedf6f40aff0dd14bfab533a37c329ddc9a4bdd5 (patch) | |
tree | 69450c1c69b418ad9040d58cf9d2e2584bd27e07 /node | |
parent | b4f2e4de8fcbaab22f1b8ac1faa0c99517bd9405 (diff) | |
download | dexon-bedf6f40aff0dd14bfab533a37c329ddc9a4bdd5.tar.gz dexon-bedf6f40aff0dd14bfab533a37c329ddc9a4bdd5.tar.zst dexon-bedf6f40aff0dd14bfab533a37c329ddc9a4bdd5.zip |
cmd/geth: make geth account new faster with many keys (#15529)
Diffstat (limited to 'node')
-rw-r--r-- | node/config.go | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/node/config.go b/node/config.go index be9e21b4f..1ee02d896 100644 --- a/node/config.go +++ b/node/config.go @@ -360,35 +360,43 @@ func (c *Config) parsePersistentNodes(path string) []*discover.Node { return nodes } -func makeAccountManager(conf *Config) (*accounts.Manager, string, error) { +// AccountConfig determines the settings for scrypt and keydirectory +func (c *Config) AccountConfig() (int, int, string, error) { scryptN := keystore.StandardScryptN scryptP := keystore.StandardScryptP - if conf.UseLightweightKDF { + if c.UseLightweightKDF { scryptN = keystore.LightScryptN scryptP = keystore.LightScryptP } var ( - keydir string - ephemeral string - err error + keydir string + err error ) switch { - case filepath.IsAbs(conf.KeyStoreDir): - keydir = conf.KeyStoreDir - case conf.DataDir != "": - if conf.KeyStoreDir == "" { - keydir = filepath.Join(conf.DataDir, datadirDefaultKeyStore) + case filepath.IsAbs(c.KeyStoreDir): + keydir = c.KeyStoreDir + case c.DataDir != "": + if c.KeyStoreDir == "" { + keydir = filepath.Join(c.DataDir, datadirDefaultKeyStore) } else { - keydir, err = filepath.Abs(conf.KeyStoreDir) + keydir, err = filepath.Abs(c.KeyStoreDir) } - case conf.KeyStoreDir != "": - keydir, err = filepath.Abs(conf.KeyStoreDir) - default: + case c.KeyStoreDir != "": + keydir, err = filepath.Abs(c.KeyStoreDir) + } + return scryptN, scryptP, keydir, err +} + +func makeAccountManager(conf *Config) (*accounts.Manager, string, error) { + scryptN, scryptP, keydir, err := conf.AccountConfig() + var ephemeral string + if keydir == "" { // There is no datadir. keydir, err = ioutil.TempDir("", "go-ethereum-keystore") ephemeral = keydir } + if err != nil { return nil, "", err } |