aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2014-05-14 20:57:16 +0800
committerobscuren <geffobscura@gmail.com>2014-05-14 20:57:16 +0800
commit278ee3f16c407d18e311d51443e458a286fb3b71 (patch)
tree19365711978cdaa54067e583cc493a30e033c802
parent9a057021c3bb7b73843677b7abefc7763f34e39e (diff)
parenta1dcc5cd1793dc05e2ff38e8a8024690e09aebf5 (diff)
downloaddexon-278ee3f16c407d18e311d51443e458a286fb3b71.tar.gz
dexon-278ee3f16c407d18e311d51443e458a286fb3b71.tar.zst
dexon-278ee3f16c407d18e311d51443e458a286fb3b71.zip
Merge branch 'develop' of github.com-obscure:ethereum/go-ethereum into develop
-rw-r--r--ethereal/ethereum.go9
-rw-r--r--ethereum/ethereum.go9
-rw-r--r--utils/cmd.go32
3 files changed, 28 insertions, 22 deletions
diff --git a/ethereal/ethereum.go b/ethereal/ethereum.go
index 63f907571..98fab18e3 100644
--- a/ethereal/ethereum.go
+++ b/ethereal/ethereum.go
@@ -4,8 +4,6 @@ import (
"fmt"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethchain"
- "github.com/ethereum/eth-go/ethpub"
- "github.com/ethereum/eth-go/ethrpc"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/go-ethereum/ethereal/ui"
"github.com/ethereum/go-ethereum/utils"
@@ -115,12 +113,7 @@ save these words so you can restore your account later: %s
}
if StartRpc {
- ethereum.RpcServer, err = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum), RpcPort)
- if err != nil {
- log.Println("Could not start RPC interface:", err)
- } else {
- go ethereum.RpcServer.Start()
- }
+ utils.DoRpc(ethereum, RpcPort)
}
log.Printf("Starting Ethereum GUI v%s\n", ethutil.Config.Ver)
diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go
index c4d419d70..2abf6da42 100644
--- a/ethereum/ethereum.go
+++ b/ethereum/ethereum.go
@@ -4,8 +4,6 @@ import (
"fmt"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethchain"
- "github.com/ethereum/eth-go/ethpub"
- "github.com/ethereum/eth-go/ethrpc"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/go-ethereum/utils"
"log"
@@ -149,12 +147,7 @@ save these words so you can restore your account later: %s
go console.Start()
}
if StartRpc {
- ethereum.RpcServer, err = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum), RpcPort)
- if err != nil {
- logger.Infoln("Could not start RPC interface:", err)
- } else {
- go ethereum.RpcServer.Start()
- }
+ utils.DoRpc(ethereum, RpcPort)
}
RegisterInterrupts(ethereum)
diff --git a/utils/cmd.go b/utils/cmd.go
index 654014169..8395ac8fc 100644
--- a/utils/cmd.go
+++ b/utils/cmd.go
@@ -3,24 +3,44 @@ package utils
import (
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethminer"
- _ "github.com/ethereum/eth-go/ethrpc"
+ "github.com/ethereum/eth-go/ethpub"
+ "github.com/ethereum/eth-go/ethrpc"
"github.com/ethereum/eth-go/ethutil"
"log"
+ "time"
)
+func DoRpc(ethereum *eth.Ethereum, RpcPort int) {
+ var err error
+ ethereum.RpcServer, err = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum), RpcPort)
+ if err != nil {
+ log.Println("Could not start RPC interface:", err)
+ } else {
+ go ethereum.RpcServer.Start()
+ }
+}
+
func DoMining(ethereum *eth.Ethereum) {
// Set Mining status
ethereum.Mining = true
- log.Println("Miner started")
+ if ethutil.GetKeyRing().Len() == 0 {
+ log.Println("No address found, can't start mining")
+ return
+ }
+ keyPair := ethutil.GetKeyRing().Get(0)
+ addr := keyPair.Address()
- // Fake block mining. It broadcasts a new block every 5 seconds
go func() {
- keyPair := ethutil.GetKeyRing().Get(0)
- addr := keyPair.Address()
+ // Give it some time to connect with peers
+ time.Sleep(3 * time.Second)
+
+ for ethereum.IsUpToDate() == false {
+ time.Sleep(5 * time.Second)
+ }
+ log.Println("Miner started")
miner := ethminer.NewDefaultMiner(addr, ethereum)
miner.Start()
-
}()
}