aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-04-19 07:56:56 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-04-19 07:56:56 +0800
commit9ec56637f9b19ab6213e74ec30c00033f1906888 (patch)
tree599884c2d842954d6a2f6c5c0c50a592994d75e9
parent4340996572a3cab2a4c985710c06ec956832e082 (diff)
parent4907d28967a890628f4dd014be2e7e1fbd8f4d04 (diff)
downloadgo-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.go5
-rw-r--r--eth/backend.go5
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,