KalyChain Documents
  • KalyChain
  • Quick Start
    • Whats is KalyChain
    • Install
    • Start Node
    • How To
    • Genesis File
  • Consensus
    • Proof of Authority (PoA)
    • QBFT
    • Validators
    • Bootnodes
  • Transactions
    • Transaction pool
    • Transaction types
    • Transaction Validation
  • Operate a node
    • Data storage formats
    • Events and logs
    • Backup/restore node instance
    • Add and remove validators without voting
  • JSON RPC Commands
    • Access Logs
    • Authenticate
    • Graphql
    • JSON RPC
    • RPC Pub/Sub
Powered by GitBook
On this page
  • Dropping transactions when the transaction pool is full
  • Replacing transactions with the same sender and nonce
  • Size of the transaction pool
  1. Transactions

Transaction pool

Transaction pool overview

PreviousBootnodesNextTransaction types

Last updated 2 years ago

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

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

  • JSON-RPC API method to list transactions in the transaction pool.

  • command line option to specify the maximum number of transactions in the transaction pool.

  • command line option to specify the price bump percentage to replace an existing transaction.

  • command line option to specify the maximum number of hours to keep pending transactions in the transaction pool.

  • and RPC subscriptions to notify of transactions added to and dropped from the transaction pool.

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, KalyChain 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 , the old transaction is replaced if the new transaction has a gas price higher than the existing gas price by the percentage specified by .

If sending an , 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 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 .

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.

The default value for is 10%.

--tx-pool-price-bump
txpool_kalyTransactions
--tx-pool-max-size
--tx-pool-price-bump
--tx-pool-retention-hours
--tx-pool-price-bump
--tx-pool-price-bump
--tx-pool-price-bump
newPendingTransactions
droppedPendingTransactions
legacy transaction
EIP1559 transaction