Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🔄 Transaction Pool & Sync


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxPoolExponentialIncreaseFactor200

Description:

Sets the increase factor of the Transaction Pool fee threshold. When the transaction pool is full, the priority of a new transaction must be at least TxPoolExponentialIncreaseFactor times greater than the minimum-priority of a transaction already in the pool; otherwise, the new transaction is discarded.

Should be set to 2 on MainNet.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxBacklogServiceRateWindowSeconds102727

Description:

Defines the time window (in seconds) used to determine the service rate of the transaction backlog (txBacklog). It helps to manage how quickly the node processes and serves transactions waiting in the backlog by monitoring the rate over a specific time period.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxBacklogReservedCapacityPerPeer202727

Description:

Determines the dedicated capacity allocated to each peer for serving transactions from the transaction backlog (txBacklog). This ensures each peer has a specific portion of the overall transaction processing capacity, preventing one peer from monopolizing the node’s transaction handling resources.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxBacklogAppTxRateLimiterMaxSize10485763232

Description:

Defines the maximum size for the transaction rate limiter, which is used to regulate the number of transactions that an Application can submit to the node within a given period. This rate limiter prevents individual Applications from overwhelming the network with excessive transactions. The value may be interpreted as the maximum sum of transaction bytes per period.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxBacklogAppTxPerSecondRate1003232

Description:

Determines the target transaction rate per second for an Application’s transactions within the transaction rate limiter. This means the node will aim to allow an Application to submit a specific number of transactions per second. If the Application tries to send more transactions than the rate limit allows, those transactions will be delayed or throttled.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxBacklogRateLimitingCongestionPct503232

Description:

Determines the threshold percentage at which the transaction backlog rate limiter will be activated. When the backlog reaches a certain percentage, the node will start to limit the rate of transactions, either by slowing down incoming transactions or applying throttling measures. This helps prevent the backlog from growing too large and causing congestion on the network. If the backlog falls below this threshold, rate limiting is relaxed.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
EnableTxBacklogAppRateLimitingtrue3232

Description:

Determines whether an Application-specific rate limiter should be applied when adding transactions to the transaction backlog. If enabled, the node enforces rate limits on how many Application transactions can be enqueued, preventing excessive transaction submission from a single app.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxBacklogAppRateLimitingCountERLDropsfalse3535

Description:

Determines whether transaction messages dropped by the ERL (Exponential Rate Limiter) congestion manager and the transaction backlog rate limiter should also be counted by the Application rate limiter. When enabled, all dropped transactions are included in the Application rate limiter’s calculations, making its rate-limiting decisions more accurate. However, this comes at the cost of additional deserialization overhead, as more transactions need to be processed even if they are ultimately dropped.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
EnableTxBacklogRateLimitingtrue27 (default was false)30

Description:

Determines whether a rate limiter and congestion manager should be applied when adding transactions to the transaction backlog. When enabled, the total transaction backlog size increases by MAX_PEERS * TxBacklogReservedCapacityPerPeer, allowing each peer to have a dedicated portion of the backlog. This helps manage network congestion by preventing any single source from overwhelming the queue.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxBacklogSize260002727

Description:

Defines the queue size for storing received transactions before they are processed. The default value (26000) approximates the number of transactions that fit in a single block. However, if EnableTxBacklogRateLimiting is enabled, the total backlog size increases by MAX_PEERS * TxBacklogReservedCapacityPerPeer, allocating additional capacity per peer.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxPoolSize750000 (default was 50000)23

Description:

Defines the maximum number of transactions stored in the Transaction Pool buffer before being processed or discarded.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxSyncTimeoutSeconds3000

Description:

Defines the maximum time a node will wait for responses after attempting to synchronize transactions by gossiping them to peers. After gossiping, the node waits for acknowledgments, such as confirmation that the transaction has been added to a peer’s Transaction Pool or relayed to others. If no acknowledgment is received within the time limit set by TxSyncTimeoutSeconds, the node stops the synchronization attempt and moves on to other tasks. However, the node will retry synchronization in future cycles.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxSyncIntervalSeconds6000

Description:

Defines the number of seconds between transaction synchronizations.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TxSyncServeResponseSize100000033

Description:

Sets the maximum size, in bytes, that the synchronization server will return when serving transaction synchronization requests.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
VerifiedTranscationsCacheSize15000014 (default was 30000)23

Description:

Defines the number of transactions that the verified transactions cache would hold before cycling the cache storage in a round-robin fashion.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
ForceFetchTransactionsfalse1717

Description:

Forces a node to retrieve all transactions observed into its Transaction Pool, regardless of whether the node is participating in consensus or not.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TransactionSyncDataExchangeRate01717

Description:

Overrides the auto-computed data exchange rate between two peers. The unit of the data exchange rate is in bytes per second. Setting the value to 0 implies allowing the transaction sync to calculate the value dynamically.


Parameter NameDefault ValueIntroduced in VersionLast Updated in Version
TransactionSyncSignificantMessageThreshold01717

Description:

Defines the threshold used for a Transaction Sync message before it can be used to calculate the data exchange rate. Setting this to 0 would use the default values. The threshold is defined in bytes as a unit.