core: removed nonce resetting from the block processor.
All nonce error handling has been moved to the worker
This commit is contained in:
		
							parent
							
								
									1d6d42919e
								
							
						
					
					
						commit
						093d6d5074
					
				| @ -85,8 +85,8 @@ func (self *BlockProcessor) ApplyTransaction(coinbase *state.StateObject, stated | ||||
| 	_, gas, err := ApplyMessage(NewEnv(statedb, self.bc, tx, block), tx, cb) | ||||
| 	if err != nil && (IsNonceErr(err) || state.IsGasLimitErr(err) || IsInvalidTxErr(err)) { | ||||
| 		// If the account is managed, remove the invalid nonce.
 | ||||
| 		from, _ := tx.From() | ||||
| 		self.bc.TxState().RemoveNonce(from, tx.Nonce()) | ||||
| 		//from, _ := tx.From()
 | ||||
| 		//self.bc.TxState().RemoveNonce(from, tx.Nonce())
 | ||||
| 		return nil, nil, err | ||||
| 	} | ||||
| 
 | ||||
|  | ||||
| @ -62,6 +62,7 @@ func (ms *ManagedState) NewNonce(addr common.Address) uint64 { | ||||
| 		} | ||||
| 	} | ||||
| 	account.nonces = append(account.nonces, true) | ||||
| 
 | ||||
| 	return uint64(len(account.nonces)-1) + account.nstart | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -28,6 +28,8 @@ const txPoolQueueSize = 50 | ||||
| type TxPoolHook chan *types.Transaction | ||||
| type TxMsg struct{ Tx *types.Transaction } | ||||
| 
 | ||||
| type stateFn func() *state.StateDB | ||||
| 
 | ||||
| const ( | ||||
| 	minGasPrice = 1000000 | ||||
| ) | ||||
| @ -47,7 +49,7 @@ type TxPool struct { | ||||
| 	// Quiting channel
 | ||||
| 	quit chan bool | ||||
| 	// The state function which will allow us to do some pre checkes
 | ||||
| 	currentState func() *state.StateDB | ||||
| 	currentState stateFn | ||||
| 	// The actual pool
 | ||||
| 	txs           map[common.Hash]*types.Transaction | ||||
| 	invalidHashes *set.Set | ||||
| @ -57,7 +59,7 @@ type TxPool struct { | ||||
| 	eventMux *event.TypeMux | ||||
| } | ||||
| 
 | ||||
| func NewTxPool(eventMux *event.TypeMux, currentStateFn func() *state.StateDB) *TxPool { | ||||
| func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn) *TxPool { | ||||
| 	return &TxPool{ | ||||
| 		txs:           make(map[common.Hash]*types.Transaction), | ||||
| 		queueChan:     make(chan *types.Transaction, txPoolQueueSize), | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user