9

Do Ethereum clients have a memory pool which keeps transactions like Bitcoin's mempool? If so, what is the name for it in Ethereum?

9

It's called the Transaction Pool, or TxPool in the code.

From go-ethereum - tx_pool.go, lines 35 to 62:

var (
    // Transaction Pool Errors
   ...
)

const (
    maxQueued = 64 // max limit of queued txs per address
)

...
// 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 {
    quit         chan bool // Quiting channel
    ...

In the Go Ethereum client implementation geth, you can type the following command to display a count of transactions in your pool:

> txpool.status
{
  pending: 0,
  queued: 1
}

The pending result shows the number of transactions ready to be "executed" (included in the next mined block). The Ethereum transaction pool also has a queue to hold transactions that are not quite ready to process, e.g. when the transaction nonce is too high. See What happens when a transaction nonce is too high?.

And for comparison, here is Bitcoin's txmempool.cpp.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.