Skip to content
You are reading Hyperledger Besu development version documentation and some displayed features may not be available in the stable release. You can switch to stable version using the version box at screen bottom.
Last update: March 28, 2022

Transaction pool

All nodes maintain a transaction pool to store pending transactions before processing.

Options and methods for configuring and monitoring the transaction pool include:

Important

When submitting private transactions, the privacy marker transaction is submitted to the transaction pool, not the private transaction itself.

Dropping transactions when the transaction pool is full

When the transaction pool is full, it accepts and retains local transactions in preference to remote transactions. If the transaction pool is full of local transactions, Besu drops the oldest local transactions first. That is, a full transaction pool continues to accept new local transactions by first dropping remote transactions and then by dropping the oldest local transactions.

Replacing transactions with the same sender and nonce

You can replace a pending transaction with a transaction that has the same sender and nonce but a higher gas price.

If sending a legacy transaction, the old transaction is replaced if the new transaction has a gas price higher than the existing gas price by the percentage specified by --tx-pool-price-bump.

If sending an EIP1559 transaction, the old transaction is replaced if one of the following is true:

  • The new transaction’s effective gas price is higher than the existing gas price by the percentage specified by --tx-pool-price-bump AND the new effective priority fee is greater than or equal to the existing priority fee.

  • The new transaction’s effective gas price is the equal to the existing gas price AND the new effective priority fee is higher than the existing priority fee by the percentage specified by --tx-pool-price-bump.

The default value for --tx-pool-price-bump is 10%.

Size of the transaction pool

Decreasing the maximum size of the transaction pool reduces memory use. If the network is busy and there is a backlog of transactions, increasing the size of the transaction pool reduces the risk of removing transactions from the transaction pool.

Questions or feedback? You can discuss issues and obtain free support on Hyperledger Besu chat channel.
For Hyperledger Besu community support, contact the mailing list besu@lists.hyperledger.org