diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-04-19 07:56:56 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-04-19 07:56:56 +0800 |
commit | 9ec56637f9b19ab6213e74ec30c00033f1906888 (patch) | |
tree | 599884c2d842954d6a2f6c5c0c50a592994d75e9 | |
parent | 4340996572a3cab2a4c985710c06ec956832e082 (diff) | |
parent | 4907d28967a890628f4dd014be2e7e1fbd8f4d04 (diff) | |
download | go-tangerine-9ec56637f9b19ab6213e74ec30c00033f1906888.tar.gz go-tangerine-9ec56637f9b19ab6213e74ec30c00033f1906888.tar.zst go-tangerine-9ec56637f9b19ab6213e74ec30c00033f1906888.zip |
Merge pull request #749 from fjl/fix-nodekey-persistence
Fix p2p node key persistence
-rw-r--r-- | crypto/crypto.go | 5 | ||||
-rw-r--r-- | eth/backend.go | 5 |
2 files changed, 4 insertions, 6 deletions
diff --git a/crypto/crypto.go b/crypto/crypto.go index 9865c87c4..89423e0c4 100644 --- a/crypto/crypto.go +++ b/crypto/crypto.go @@ -120,6 +120,7 @@ func HexToECDSA(hexkey string) (*ecdsa.PrivateKey, error) { } // LoadECDSA loads a secp256k1 private key from the given file. +// The key data is expected to be hex-encoded. func LoadECDSA(file string) (*ecdsa.PrivateKey, error) { buf := make([]byte, 64) fd, err := os.Open(file) @@ -139,8 +140,8 @@ func LoadECDSA(file string) (*ecdsa.PrivateKey, error) { return ToECDSA(key), nil } -// SaveECDSA saves a secp256k1 private key to the given file with restrictive -// permissions +// SaveECDSA saves a secp256k1 private key to the given file with +// restrictive permissions. The key data is saved hex-encoded. func SaveECDSA(file string, key *ecdsa.PrivateKey) error { k := hex.EncodeToString(FromECDSA(key)) return ioutil.WriteFile(file, []byte(k), 0600) diff --git a/eth/backend.go b/eth/backend.go index 7799326fe..264753aba 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -3,7 +3,6 @@ package eth import ( "crypto/ecdsa" "fmt" - "io/ioutil" "math" "path" "strings" @@ -110,7 +109,7 @@ func (cfg *Config) nodeKey() (*ecdsa.PrivateKey, error) { if key, err = crypto.GenerateKey(); err != nil { return nil, fmt.Errorf("could not generate server key: %v", err) } - if err := ioutil.WriteFile(keyfile, crypto.FromECDSA(key), 0600); err != nil { + if err := crypto.SaveECDSA(keyfile, key); err != nil { glog.V(logger.Error).Infoln("could not persist nodekey: ", err) } return key, nil @@ -223,12 +222,10 @@ func New(config *Config) (*Ethereum, error) { if err != nil { return nil, err } - protocols := []p2p.Protocol{eth.protocolManager.SubProtocol} if config.Shh { protocols = append(protocols, eth.whisper.Protocol()) } - eth.net = &p2p.Server{ PrivateKey: netprv, Name: config.Name, |