aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaran <maran.hidskes@gmail.com>2014-05-14 18:41:30 +0800
committerMaran <maran.hidskes@gmail.com>2014-05-14 18:41:30 +0800
commite8147cf7c6f508910698e6743ad347c78010ffe3 (patch)
tree3783c2631e37291d6cf9ce5d4130f472c7e01cbb
parent0d9c948b9b2c5eef6f0069f9aa05e9868f939444 (diff)
downloaddexon-e8147cf7c6f508910698e6743ad347c78010ffe3.tar.gz
dexon-e8147cf7c6f508910698e6743ad347c78010ffe3.tar.zst
dexon-e8147cf7c6f508910698e6743ad347c78010ffe3.zip
Refactored mining into utils and exposed it to ethereal. Partly fixes #43
-rw-r--r--ethereal/ethereum.go4
-rw-r--r--ethereum/ethereum.go25
-rw-r--r--utils/cmd.go31
3 files changed, 36 insertions, 24 deletions
diff --git a/ethereal/ethereum.go b/ethereal/ethereum.go
index 15a454bdf..32c16f64f 100644
--- a/ethereal/ethereum.go
+++ b/ethereal/ethereum.go
@@ -99,6 +99,10 @@ func main() {
os.Exit(0)
}
+ if StartMining {
+ utils.DoMining(ethereum)
+ }
+
if StartRpc {
ethereum.RpcServer, err = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum), RpcPort)
if err != nil {
diff --git a/ethereum/ethereum.go b/ethereum/ethereum.go
index 055cc0bc4..207e61c88 100644
--- a/ethereum/ethereum.go
+++ b/ethereum/ethereum.go
@@ -1,11 +1,9 @@
package main
import (
- "encoding/hex"
"fmt"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethchain"
- "github.com/ethereum/eth-go/ethminer"
"github.com/ethereum/eth-go/ethpub"
"github.com/ethereum/eth-go/ethrpc"
"github.com/ethereum/eth-go/ethutil"
@@ -127,28 +125,7 @@ func main() {
ethereum.Mining = StartMining
if StartMining {
- logger.Infoln("Miner started")
-
- // Fake block mining. It broadcasts a new block every 5 seconds
- go func() {
-
- if StartMining {
- logger.Infoln("Miner started")
-
- go func() {
- data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
- keyRing := ethutil.NewValueFromBytes(data)
- addr := keyRing.Get(0).Bytes()
-
- pair, _ := ethchain.NewKeyPairFromSec(ethutil.FromHex(hex.EncodeToString(addr)))
-
- miner := ethminer.NewDefaultMiner(pair.Address(), ethereum)
- miner.Start()
-
- }()
- }
- }()
-
+ utils.DoMining(ethereum)
}
if StartConsole {
diff --git a/utils/cmd.go b/utils/cmd.go
new file mode 100644
index 000000000..a99fd9eed
--- /dev/null
+++ b/utils/cmd.go
@@ -0,0 +1,31 @@
+package utils
+
+import (
+ "encoding/hex"
+ "github.com/ethereum/eth-go"
+ "github.com/ethereum/eth-go/ethchain"
+ "github.com/ethereum/eth-go/ethminer"
+ _ "github.com/ethereum/eth-go/ethrpc"
+ "github.com/ethereum/eth-go/ethutil"
+ "log"
+)
+
+func DoMining(ethereum *eth.Ethereum) {
+ // Set Mining status
+ ethereum.Mining = true
+
+ log.Println("Miner started")
+
+ // Fake block mining. It broadcasts a new block every 5 seconds
+ go func() {
+ data, _ := ethutil.Config.Db.Get([]byte("KeyRing"))
+ keyRing := ethutil.NewValueFromBytes(data)
+ addr := keyRing.Get(0).Bytes()
+
+ pair, _ := ethchain.NewKeyPairFromSec(ethutil.FromHex(hex.EncodeToString(addr)))
+
+ miner := ethminer.NewDefaultMiner(pair.Address(), ethereum)
+ miner.Start()
+
+ }()
+}