[Ethereum] the difference between a pending transaction and a queued transaction in the geth mempool

go-ethereumtxpool

I see the following on the wiki but I dont understand the difference

pending: all processable transactions

queued: all non-processable transactions

Best Answer

Look at the answer in What is the max size of transactions can clients like geth keep in txpool?

What is the difference between a pending transaction and a queued transaction?

Pending transactions are transactions that are ready to be processed and included in the block.

Queued transactions are transactions where the transaction nonce is not in sequence. The transaction nonce is an incrementing number for each transaction with the same From address.

For example:

Transaction from account 0xaaaa...aaaa with nonce 0 has been included in the blockchain. Transaction from account 0xaaaa...aaaa with nonce 1 has been included in the blockchain. 10 transactions from account 0xaaaa...aaaa with nonces 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 as sent to an Ethereum node. These are placed in the transaction queue as the transaction from account 0xaaaa...aaaa with nonce 2 has not been seen by the Ethereum node. Once the transaction from account 0xaaaa...aaaa with nonce 2 is added to the transaction pool, the 10 transactions with nonces 3, 4, 5, 6, 7, 8, 9, 10, 11 and 12 will be moved from the queue to the pending transaction pool and all 11 transactions are ready to be processed and inserted into into the blockchain (provided there is enough gas).

Related Topic