diff options
author | Maran <maran.hidskes@gmail.com> | 2014-05-21 19:06:42 +0800 |
---|---|---|
committer | Maran <maran.hidskes@gmail.com> | 2014-05-21 19:06:42 +0800 |
commit | 1275e5bdc978d2f22ceb45a61f03d7873f069518 (patch) | |
tree | 5e0c2b4b999a754a195be0987b1e3f589c6f852a /ethminer/miner.go | |
parent | d658a7f4ab7691783157151912f43c177825b0e8 (diff) | |
parent | 86cf69648efc5029abffbf39f1be7308acb1531e (diff) | |
download | go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.gz go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.bz2 go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.lz go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.xz go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.tar.zst go-tangerine-1275e5bdc978d2f22ceb45a61f03d7873f069518.zip |
Merge branch 'develop' of github.com:ethereum/eth-go into develop
Diffstat (limited to 'ethminer/miner.go')
-rw-r--r-- | ethminer/miner.go | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/ethminer/miner.go b/ethminer/miner.go index e052d0207..8d6486e90 100644 --- a/ethminer/miner.go +++ b/ethminer/miner.go @@ -105,14 +105,14 @@ func (miner *Miner) listener() { miner.block.Undo() //log.Infoln("[MINER] We did not know about this transaction, adding") miner.txs = append(miner.txs, tx) - miner.block = miner.ethereum.BlockChain().NewBlock(miner.coinbase, miner.txs) - miner.block.SetTransactions(miner.txs) } else { //log.Infoln("[MINER] We already had this transaction, ignoring") } } default: - ethutil.Config.Log.Infoln("[MINER] Mining on block. Includes", len(miner.txs), "transactions") + stateManager := miner.ethereum.StateManager() + + miner.block = miner.ethereum.BlockChain().NewBlock(miner.coinbase, miner.txs) // Apply uncles if len(miner.uncles) > 0 { @@ -120,8 +120,19 @@ func (miner *Miner) listener() { } // Apply all transactions to the block - miner.ethereum.StateManager().ApplyTransactions(miner.block.State(), miner.block, miner.block.Transactions()) - miner.ethereum.StateManager().AccumelateRewards(miner.block.State(), miner.block) + txs := miner.txs + miner.txs = nil + for _, tx := range txs { + if err := stateManager.ApplyTransaction(miner.block.State(), miner.block, tx); err == nil { + miner.txs = append(miner.txs, tx) + } + } + miner.block.SetTransactions(miner.txs) + stateManager.AccumelateRewards(miner.block.State(), miner.block) + + ethutil.Config.Log.Infoln("[MINER] Mining on block. Includes", len(miner.txs), "transactions") + + //miner.ethereum.StateManager().ApplyTransactions(miner.block.State(), miner.block, miner.block.Transactions()) // Search the nonce miner.block.Nonce = miner.pow.Search(miner.block, miner.quitChan) |