aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-02-22 20:28:24 +0800
committerobscuren <geffobscura@gmail.com>2015-02-22 20:28:24 +0800
commit20aa6dde067a0c8d28fdafd43e41f996f014e8b0 (patch)
tree065fdd0eebd9f81a3f797b34f736bad3ae83fc81
parent8cc6647ebfd3e76a7d75e1d6961a8451fa5d702a (diff)
parenteec4345a7c23e137f3cc332b7367b8046d19819b (diff)
downloaddexon-20aa6dde067a0c8d28fdafd43e41f996f014e8b0.tar.gz
dexon-20aa6dde067a0c8d28fdafd43e41f996f014e8b0.tar.zst
dexon-20aa6dde067a0c8d28fdafd43e41f996f014e8b0.zip
Merge branch 'develop'
-rw-r--r--.travis.yml5
-rw-r--r--eth/backend.go36
-rwxr-xr-xgocoverage.sh3
3 files changed, 35 insertions, 9 deletions
diff --git a/.travis.yml b/.travis.yml
index 1b3104826..5499cf257 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,10 +6,15 @@ before_install:
- sudo apt-get update -qq
- sudo apt-get install -yqq libgmp3-dev libreadline6-dev qt54quickcontrols qt54webengine
install:
+ # - go get code.google.com/p/go.tools/cmd/goimports
+ # - go get github.com/golang/lint/golint
# - go get golang.org/x/tools/cmd/vet
- if ! go get code.google.com/p/go.tools/cmd/cover; then go get golang.org/x/tools/cmd/cover; fi
- go get github.com/mattn/goveralls
before_script:
+ # - gofmt -l -w .
+ # - goimports -l -w .
+ # - golint .
# - go vet ./...
# - go test -race ./...
script:
diff --git a/eth/backend.go b/eth/backend.go
index b57e9fd69..0e5d24429 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -3,6 +3,8 @@ package eth
import (
"crypto/ecdsa"
"fmt"
+ "io/ioutil"
+ "path"
"strings"
"github.com/ethereum/go-ethereum/core"
@@ -25,7 +27,10 @@ var (
jsonlogger = ethlogger.NewJsonLogger()
defaultBootNodes = []*discover.Node{
+ // ETH/DEV cmd/bootnode
discover.MustParseNode("enode://6cdd090303f394a1cac34ecc9f7cda18127eafa2a3a06de39f6d920b0e583e062a7362097c7c65ee490a758b442acd5c80c6fce4b148c6a391e946b45131365b@54.169.166.226:30303"),
+ // ETH/DEV cpp-ethereum (poc-8.ethdev.com)
+ discover.MustParseNode("enode://4a44599974518ea5b0f14c31c4463692ac0329cb84851f3435e6d1b18ee4eae4aa495f846a0fa1219bd58035671881d44423876e57db2abd57254d0197da0ebe@5.1.83.226:30303"),
}
)
@@ -77,6 +82,27 @@ func (cfg *Config) parseBootNodes() []*discover.Node {
return ns
}
+func (cfg *Config) nodeKey() (*ecdsa.PrivateKey, error) {
+ // use explicit key from command line args if set
+ if cfg.NodeKey != nil {
+ return cfg.NodeKey, nil
+ }
+ // use persistent key if present
+ keyfile := path.Join(cfg.DataDir, "nodekey")
+ key, err := crypto.LoadECDSA(keyfile)
+ if err == nil {
+ return key, nil
+ }
+ // no persistent key, generate and store a new one
+ 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 {
+ logger.Errorln("could not persist nodekey: ", err)
+ }
+ return key, nil
+}
+
type Ethereum struct {
// Channel for shutting down the ethereum
shutdownChan chan bool
@@ -161,18 +187,16 @@ func New(config *Config) (*Ethereum, error) {
insertChain := eth.chainManager.InsertChain
eth.blockPool = NewBlockPool(hasBlock, insertChain, ezp.Verify)
+ netprv, err := config.nodeKey()
+ if err != nil {
+ return nil, err
+ }
ethProto := EthProtocol(eth.txPool, eth.chainManager, eth.blockPool)
protocols := []p2p.Protocol{ethProto}
if config.Shh {
protocols = append(protocols, eth.whisper.Protocol())
}
- netprv := config.NodeKey
- if netprv == nil {
- if netprv, err = crypto.GenerateKey(); err != nil {
- return nil, fmt.Errorf("could not generate server key: %v", err)
- }
- }
eth.net = &p2p.Server{
PrivateKey: netprv,
Name: config.Name,
diff --git a/gocoverage.sh b/gocoverage.sh
index e54a5cab0..5479d8d3b 100755
--- a/gocoverage.sh
+++ b/gocoverage.sh
@@ -29,6 +29,3 @@ if ls $dir/*.go &> /dev/null; then
fi
fi
done
-
-go tool cover -func profile.cov
-