forked from cerc-io/plugeth
eth: fix node key persistence
crypto.LoadECDSA has been modified to expect hex data. The key was being saved as raw bytes, causing the file to be rewritten on every start.
This commit is contained in:
parent
86ecdcd5ff
commit
da4a0e0555
@ -3,7 +3,6 @@ package eth
|
|||||||
import (
|
import (
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
|
||||||
"math"
|
"math"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
@ -110,7 +109,7 @@ func (cfg *Config) nodeKey() (*ecdsa.PrivateKey, error) {
|
|||||||
if key, err = crypto.GenerateKey(); err != nil {
|
if key, err = crypto.GenerateKey(); err != nil {
|
||||||
return nil, fmt.Errorf("could not generate server key: %v", err)
|
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)
|
glog.V(logger.Error).Infoln("could not persist nodekey: ", err)
|
||||||
}
|
}
|
||||||
return key, nil
|
return key, nil
|
||||||
@ -223,12 +222,10 @@ func New(config *Config) (*Ethereum, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
protocols := []p2p.Protocol{eth.protocolManager.SubProtocol}
|
protocols := []p2p.Protocol{eth.protocolManager.SubProtocol}
|
||||||
if config.Shh {
|
if config.Shh {
|
||||||
protocols = append(protocols, eth.whisper.Protocol())
|
protocols = append(protocols, eth.whisper.Protocol())
|
||||||
}
|
}
|
||||||
|
|
||||||
eth.net = &p2p.Server{
|
eth.net = &p2p.Server{
|
||||||
PrivateKey: netprv,
|
PrivateKey: netprv,
|
||||||
Name: config.Name,
|
Name: config.Name,
|
||||||
|
Loading…
Reference in New Issue
Block a user