core: removed nonce resetting from the block processor.

All nonce error handling has been moved to the worker
This commit is contained in:
obscuren 2015-04-21 11:27:12 +02:00
parent 1d6d42919e
commit 093d6d5074
3 changed files with 7 additions and 4 deletions

View File

@ -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
} }

View File

@ -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
} }

View File

@ -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),