aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/block_manager.go23
-rw-r--r--core/chain_manager.go2
2 files changed, 10 insertions, 15 deletions
diff --git a/core/block_manager.go b/core/block_manager.go
index 7227c6f95..f6c73bc2c 100644
--- a/core/block_manager.go
+++ b/core/block_manager.go
@@ -60,14 +60,6 @@ type BlockManager struct {
Pow pow.PoW
// The ethereum manager interface
eth EthManager
- // The managed states
- // Transiently state. The trans state isn't ever saved, validated and
- // it could be used for setting account nonces without effecting
- // the main states.
- transState *state.StateDB
- // Mining state. The mining state is used purely and solely by the mining
- // operation.
- miningState *state.StateDB
// The last attempted block is mainly used for debugging purposes
// This does not have to be a valid block and will be set during
@@ -75,14 +67,17 @@ type BlockManager struct {
lastAttemptedBlock *types.Block
events event.Subscription
+
+ eventMux *event.TypeMux
}
func NewBlockManager(ethereum EthManager) *BlockManager {
sm := &BlockManager{
- mem: make(map[string]*big.Int),
- Pow: ezp.New(),
- eth: ethereum,
- bc: ethereum.ChainManager(),
+ mem: make(map[string]*big.Int),
+ Pow: ezp.New(),
+ eth: ethereum,
+ bc: ethereum.ChainManager(),
+ eventMux: ethereum.EventMux(),
}
return sm
@@ -151,7 +146,7 @@ done:
// Notify all subscribers
if !transientProcess {
- go self.eth.EventMux().Post(TxPostEvent{tx})
+ go self.eventMux.Post(TxPostEvent{tx})
}
receipts = append(receipts, receipt)
@@ -245,8 +240,6 @@ func (sm *BlockManager) ProcessWithParent(block, parent *types.Block) (td *big.I
chainlogger.Infof("Processed block #%d (%x...)\n", block.Number, block.Hash()[0:4])
- sm.transState = state.Copy()
-
sm.eth.TxPool().RemoveSet(block.Transactions())
return td, messages, nil
diff --git a/core/chain_manager.go b/core/chain_manager.go
index 0322edaa5..edf50e715 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -288,6 +288,8 @@ func (self *ChainManager) InsertChain(chain types.Blocks) error {
self.SetTotalDifficulty(td)
self.insert(block)
+ self.transState = self.State().Copy()
+ //sm.eth.TxPool().RemoveSet(block.Transactions())
}
self.eventMux.Post(NewBlockEvent{block})