aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/transaction_pool.go54
1 files changed, 13 insertions, 41 deletions
diff --git a/core/transaction_pool.go b/core/transaction_pool.go
index d8debe1c0..fa2c4fed6 100644
--- a/core/transaction_pool.go
+++ b/core/transaction_pool.go
@@ -14,7 +14,6 @@ import (
"github.com/ethereum/go-ethereum/event"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
- "gopkg.in/fatih/set.v0"
)
var (
@@ -28,58 +27,31 @@ var (
ErrNegativeValue = errors.New("Negative value")
)
-const txPoolQueueSize = 50
-
-type TxPoolHook chan *types.Transaction
-type TxMsg struct{ Tx *types.Transaction }
-
type stateFn func() *state.StateDB
-const (
- minGasPrice = 1000000
-)
-
-type TxProcessor interface {
- ProcessTransaction(tx *types.Transaction)
-}
-
// The tx pool a thread safe transaction pool handler. In order to
// guarantee a non blocking pool we use a queue channel which can be
// independently read without needing access to the actual pool.
type TxPool struct {
- mu sync.RWMutex
- // Queueing channel for reading and writing incoming
- // transactions to
- queueChan chan *types.Transaction
- // Quiting channel
- quit chan bool
- // The state function which will allow us to do some pre checkes
- currentState stateFn
- // The current gas limit function callback
- gasLimit func() *big.Int
- // The actual pool
- txs map[common.Hash]*types.Transaction
- invalidHashes *set.Set
+ quit chan bool // Quiting channel
+ currentState stateFn // The state function which will allow us to do some pre checkes
+ gasLimit func() *big.Int // The current gas limit function callback
+ eventMux *event.TypeMux
+ mu sync.RWMutex
+ txs map[common.Hash]*types.Transaction // The actual pool
queue map[common.Address]map[common.Hash]*types.Transaction
-
- subscribers []chan TxMsg
-
- eventMux *event.TypeMux
}
func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn, gasLimitFn func() *big.Int) *TxPool {
- txPool := &TxPool{
- txs: make(map[common.Hash]*types.Transaction),
- queue: make(map[common.Address]map[common.Hash]*types.Transaction),
- queueChan: make(chan *types.Transaction, txPoolQueueSize),
- quit: make(chan bool),
- eventMux: eventMux,
- invalidHashes: set.New(),
- currentState: currentStateFn,
- gasLimit: gasLimitFn,
+ return &TxPool{
+ txs: make(map[common.Hash]*types.Transaction),
+ queue: make(map[common.Address]map[common.Hash]*types.Transaction),
+ quit: make(chan bool),
+ eventMux: eventMux,
+ currentState: currentStateFn,
+ gasLimit: gasLimitFn,
}
- return txPool
}
func (pool *TxPool) Start() {