diff options
author | Maran <maran.hidskes@gmail.com> | 2014-05-14 18:41:30 +0800 |
---|---|---|
committer | Maran <maran.hidskes@gmail.com> | 2014-05-14 18:41:30 +0800 |
commit | e8147cf7c6f508910698e6743ad347c78010ffe3 (patch) | |
tree | 3783c2631e37291d6cf9ce5d4130f472c7e01cbb | |
parent | 0d9c948b9b2c5eef6f0069f9aa05e9868f939444 (diff) | |
download | dexon-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.go | 4 | ||||
-rw-r--r-- | ethereum/ethereum.go | 25 | ||||
-rw-r--r-- | utils/cmd.go | 31 |
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() + + }() +} |