Removed the need of having a backend for the tx pool

This commit is contained in:
obscuren
2015-01-02 12:26:55 +01:00
parent ae2c90cc28
commit d336e24dce
4 changed files with 14 additions and 17 deletions

View File

@ -43,22 +43,19 @@ type TxPool struct {
subscribers []chan TxMsg
stateQuery StateQuery
eventMux *event.TypeMux
eventMux *event.TypeMux
}
func NewTxPool(stateQuery StateQuery, eventMux *event.TypeMux) *TxPool {
func NewTxPool(eventMux *event.TypeMux) *TxPool {
return &TxPool{
pool: set.New(),
queueChan: make(chan *types.Transaction, txPoolQueueSize),
quit: make(chan bool),
stateQuery: stateQuery,
eventMux: eventMux,
pool: set.New(),
queueChan: make(chan *types.Transaction, txPoolQueueSize),
quit: make(chan bool),
eventMux: eventMux,
}
}
func (pool *TxPool) addTransaction(tx *types.Transaction) {
pool.pool.Add(tx)
// Broadcast the transaction to the rest of the peers
@ -75,6 +72,10 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
return fmt.Errorf("tx.v != (28 || 27) => %v", v)
}
/* XXX this kind of validation needs to happen elsewhere in the gui when sending txs.
Other clients should do their own validation. Value transfer could throw error
but doesn't necessarily invalidate the tx. Gas can still be payed for and miner
can still be rewarded for their inclusion and processing.
// Get the sender
senderAddr := tx.From()
if senderAddr == nil {
@ -82,10 +83,6 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
}
sender := pool.stateQuery.GetAccount(senderAddr)
/* XXX this kind of validation needs to happen elsewhere in the gui when sending txs.
Other clients should do their own validation. Value transfer could be throw error
but doesn't necessarily invalidate the tx. Gas can still be payed for and miner
can still be rewarded for their inclusion and processing.
totAmount := new(big.Int).Set(tx.Value())
// Make sure there's enough in the sender's account. Having insufficient
// funds won't invalidate this transaction but simple ignores it.