Added mining stop and start
This commit is contained in:
		
							parent
							
								
									b902de20c7
								
							
						
					
					
						commit
						01b833146f
					
				| @ -6,6 +6,7 @@ import ( | ||||
| 	"github.com/ethereum/eth-go/ethchain" | ||||
| 	"github.com/ethereum/eth-go/ethpub" | ||||
| 	"github.com/ethereum/eth-go/ethutil" | ||||
| 	"github.com/ethereum/go-ethereum/utils" | ||||
| 	"github.com/obscuren/otto" | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| @ -116,14 +117,26 @@ func (self *JSRE) initStdFuncs() { | ||||
| 	eth.Set("watch", self.watch) | ||||
| 	eth.Set("addPeer", self.addPeer) | ||||
| 	eth.Set("require", self.require) | ||||
| 	eth.Set("stopMining", self.stopMining) | ||||
| 	eth.Set("startMining", self.startMining) | ||||
| } | ||||
| 
 | ||||
| /* | ||||
|  * 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
 | ||||
| func (self JSRE) watch(call otto.FunctionCall) otto.Value { | ||||
| func (self *JSRE) watch(call otto.FunctionCall) otto.Value { | ||||
| 	addr, _ := call.Argument(0).ToString() | ||||
| 	var storageAddr string | ||||
| 	var cb otto.Value | ||||
|  | ||||
							
								
								
									
										38
									
								
								utils/cmd.go
									
									
									
									
									
								
							
							
						
						
									
										38
									
								
								utils/cmd.go
									
									
									
									
									
								
							| @ -19,6 +19,8 @@ func DoRpc(ethereum *eth.Ethereum, RpcPort int) { | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| var miner ethminer.Miner | ||||
| 
 | ||||
| func DoMining(ethereum *eth.Ethereum) { | ||||
| 	// Set Mining status
 | ||||
| 	ethereum.Mining = true | ||||
| @ -31,17 +33,37 @@ func DoMining(ethereum *eth.Ethereum) { | ||||
| 	addr := keyPair.Address() | ||||
| 
 | ||||
| 	go func() { | ||||
| 		ethutil.Config.Log.Infoln("Miner started") | ||||
| 
 | ||||
| 		miner = ethminer.NewDefaultMiner(addr, ethereum) | ||||
| 
 | ||||
| 		// Give it some time to connect with peers
 | ||||
| 		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() | ||||
| 	}() | ||||
| } | ||||
| 
 | ||||
| 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 | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user