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