Fixed issues with stalled remote miner

pull/552/head
obscuren 10 years ago
parent dc3a9379f5
commit 9be7853e34
  1. 2
      miner/remote_agent.go
  2. 11
      miner/worker.go

@ -17,7 +17,6 @@ type RemoteAgent struct {
func NewRemoteAgent() *RemoteAgent { func NewRemoteAgent() *RemoteAgent {
agent := &RemoteAgent{} agent := &RemoteAgent{}
go agent.run()
return agent return agent
} }
@ -33,6 +32,7 @@ func (a *RemoteAgent) SetWorkCh(returnCh chan<- Work) {
func (a *RemoteAgent) Start() { func (a *RemoteAgent) Start() {
a.quit = make(chan struct{}) a.quit = make(chan struct{})
a.workCh = make(chan *types.Block, 1) a.workCh = make(chan *types.Block, 1)
go a.run()
} }
func (a *RemoteAgent) Stop() { func (a *RemoteAgent) Stop() {

@ -213,9 +213,11 @@ func (self *worker) commitNewWork() {
transactions := self.eth.TxPool().GetTransactions() transactions := self.eth.TxPool().GetTransactions()
sort.Sort(types.TxByNonce{transactions}) sort.Sort(types.TxByNonce{transactions})
minerlogger.Infof("committing new work with %d txs\n", len(transactions))
// Keep track of transactions which return errors so they can be removed // Keep track of transactions which return errors so they can be removed
var remove types.Transactions var (
remove types.Transactions
tcount = 0
)
gasLimit: gasLimit:
for i, tx := range transactions { for i, tx := range transactions {
err := self.commitTransaction(tx) err := self.commitTransaction(tx)
@ -233,6 +235,8 @@ gasLimit:
minerlogger.Infof("Gas limit reached for block. %d TXs included in this block\n", i) minerlogger.Infof("Gas limit reached for block. %d TXs included in this block\n", i)
// Break on gas limit // Break on gas limit
break gasLimit break gasLimit
default:
tcount++
} }
} }
self.eth.TxPool().RemoveSet(remove) self.eth.TxPool().RemoveSet(remove)
@ -251,7 +255,8 @@ gasLimit:
uncles = append(uncles, uncle.Header()) uncles = append(uncles, uncle.Header())
} }
} }
minerlogger.Infoln("Included", len(uncles), "uncle(s)") minerlogger.Infof("commit new work with %d txs & %d uncles\n", tcount, len(uncles))
self.current.block.SetUncles(uncles) self.current.block.SetUncles(uncles)
self.current.state.AddBalance(self.coinbase, core.BlockReward) self.current.state.AddBalance(self.coinbase, core.BlockReward)

Loading…
Cancel
Save