core

TxPool

// TxPool contains all currently known transactions. Transactions
// enter the pool when they are received from the network or submitted
// locally. They exit the pool when they are included in the blockchain.
//
// The pool separates processable transactions (which can be applied to the
// current state) and future transactions. Transactions move between those
// two states over time as they are received and processed.
type TxPool struct {
    config       TxPoolConfig
    chainconfig  *params.ChainConfig
    chain        blockChain
    gasPrice     *big.Int
    txFeed       event.Feed
    scope        event.SubscriptionScope
    chainHeadCh  chan ChainHeadEvent
    chainHeadSub event.Subscription
    //abi       types.Signer
    mu sync.RWMutex

    currentState  *state.StateDB      // Current state in the blockchain head
    pendingState  *state.ManagedState // Pending state tracking virtual nonces
    currentMaxGas uint64              // Current gas limit for transaction caps

    locals *accountSet // Set of local transaction to exempt from eviction rules
    //journal *txJournal  // Journal of local transaction to back up to disk

    all        *txLookup     // All transactions to allow lookups
    priced     *txPricedList // All transactions sorted by priced
    newQueue   *txPricedList
    newPending *txPricedList
    beats      map[common.Hash]time.Time

    wg sync.WaitGroup // for shutdown sync

    homestead bool
}

TxPoolConfig

accountSet

txLookup

Last updated

Was this helpful?