good morning!!!!

Skip to content
Snippets Groups Projects
Commit 01b83314 authored by Jeffrey Wilcke's avatar Jeffrey Wilcke
Browse files

Added mining stop and start

parent b902de20
No related branches found
No related tags found
No related merge requests found
...@@ -6,6 +6,7 @@ import ( ...@@ -6,6 +6,7 @@ import (
"github.com/ethereum/eth-go/ethchain" "github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethpub" "github.com/ethereum/eth-go/ethpub"
"github.com/ethereum/eth-go/ethutil" "github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/go-ethereum/utils"
"github.com/obscuren/otto" "github.com/obscuren/otto"
"io/ioutil" "io/ioutil"
"os" "os"
...@@ -116,14 +117,26 @@ func (self *JSRE) initStdFuncs() { ...@@ -116,14 +117,26 @@ func (self *JSRE) initStdFuncs() {
eth.Set("watch", self.watch) eth.Set("watch", self.watch)
eth.Set("addPeer", self.addPeer) eth.Set("addPeer", self.addPeer)
eth.Set("require", self.require) eth.Set("require", self.require)
eth.Set("stopMining", self.stopMining)
eth.Set("startMining", self.startMining)
} }
/* /*
* The following methods are natively implemented javascript functions * The following methods are natively implemented javascript functions
*/ */
func (self *JSRE) stopMining(call otto.FunctionCall) otto.Value {
v, _ := self.vm.ToValue(utils.StopMining(self.ethereum))
return v
}
func (self *JSRE) startMining(call otto.FunctionCall) otto.Value {
v, _ := self.vm.ToValue(utils.StartMining(self.ethereum))
return v
}
// eth.watch // eth.watch
func (self JSRE) watch(call otto.FunctionCall) otto.Value { func (self *JSRE) watch(call otto.FunctionCall) otto.Value {
addr, _ := call.Argument(0).ToString() addr, _ := call.Argument(0).ToString()
var storageAddr string var storageAddr string
var cb otto.Value var cb otto.Value
......
...@@ -19,6 +19,8 @@ func DoRpc(ethereum *eth.Ethereum, RpcPort int) { ...@@ -19,6 +19,8 @@ func DoRpc(ethereum *eth.Ethereum, RpcPort int) {
} }
} }
var miner ethminer.Miner
func DoMining(ethereum *eth.Ethereum) { func DoMining(ethereum *eth.Ethereum) {
// Set Mining status // Set Mining status
ethereum.Mining = true ethereum.Mining = true
...@@ -31,17 +33,37 @@ func DoMining(ethereum *eth.Ethereum) { ...@@ -31,17 +33,37 @@ func DoMining(ethereum *eth.Ethereum) {
addr := keyPair.Address() addr := keyPair.Address()
go func() { go func() {
ethutil.Config.Log.Infoln("Miner started")
miner = ethminer.NewDefaultMiner(addr, ethereum)
// Give it some time to connect with peers // Give it some time to connect with peers
time.Sleep(3 * time.Second) time.Sleep(3 * time.Second)
/*
for ethereum.IsUpToDate() == false {
time.Sleep(5 * time.Second)
}
*/
ethutil.Config.Log.Infoln("Miner started")
miner := ethminer.NewDefaultMiner(addr, ethereum)
miner.Start() miner.Start()
}() }()
} }
func StopMining(ethereum *eth.Ethereum) bool {
if ethereum.Mining {
miner.Stop()
ethutil.Config.Log.Infoln("Miner stopped")
ethereum.Mining = false
return true
}
return false
}
func StartMining(ethereum *eth.Ethereum) bool {
if !ethereum.Mining {
DoMining(ethereum)
return true
}
return false
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment