Skip to content

Customizing Fee Escalation

Elliot Lee edited this page Jan 8, 2024 · 1 revision

The [transaction_queue] section in rippled.cfg impacts the behavior of Fee Escalation. https://github.com/XRPLF/rippled/blob/350d213ee8a709e0ed417da0f081291ed411480a/cfg/rippled-example.cfg#L528

Example:

[transaction_queue]
minimum_txn_in_ledger = 1000 
target_txn_in_ledger = 1000

An error like Fee of 5211 exceeds the requested tx limit of 100 or "error":"highFee" indicates that you're experiencing fee escalation. You have a few options:

  1. Set the "Fee" in the tx_json to whatever fee you are willing to pay (and make sure it's higher than the open ledger fee).
  2. Set "fee_mult_max" and "fee_div_max" to have the Fee be determined "automatically" https://xrpl.org/submit.html#sign-and-submit-mode
  3. If you're using a private test network, you can disable fee escalation:
[transaction_queue]
minimum_txn_in_ledger = 4294967295
target_txn_in_ledger = 4294967295
normal_consensus_increase_percent = 4294967295

That should be set on the validators and the nodes (client handlers) you're submitting to.

To disable fee escalation in stand-alone mode, also add:

minimum_txn_in_ledger_standalone = 4294967295

Other examples:

[transaction_queue]
ledgers_in_queue=2048
minimum_txn_in_ledger = 64
target_txn_in_ledger = 256
[transaction_queue]
minimum_queue_size=200000
minimum_txn_in_ledger=64
target_txn_in_ledger=256
slow_consensus_decrease_percent=5
minimum_last_ledger_buffer=10

Untested:

[transaction_queue]
# Base escalation on actual fees. If not transactions pay fees, then it won't escalate.
minimum_escalation_multiplier = 0
# Avoid fee escalation at all unless there are a huge number of transactions in the ledger.
minimum_txn_in_ledger = 10000
target_txn_in_ledger = 10000

An alternative way to get the same effect of disabling fee escalation:

minimum_queue_size=0
ledgers_in_queue=0

Note: currently, normal_consensus_increase_percent is clamped to 1000.