Skip to content

Conversation

jannotti
Copy link
Contributor

@jannotti jannotti commented Jul 31, 2025

Currently, congestion is monitored locally, by each algod and is not a part of consensus. So while individual algods may require higher fees, transactions processing is unaware of that requirement. Therefore, the extra fee can end up being "double spent" to execute inner transactions. This PR introduces two header fields, Load which indicates how full a particular block is, and BaseFee which grows when the Load exceeds 50% and returns toward MinFee with less full blocks.

The PR is currently draft and not expected in the next consensus release.

If added as is, we can expect some community dissatisfaction. Today, congestion almost never kicks in, and even when it does, it most affects new transactions that someone tries to add the network. They get rejected by their local algod. But in this model, fees would rise (just a little) the first time we have block that's at least half full. When it does, approximately all of the existing transactions will get dropped, because when they are re-evaluated, they will not have the larger fee needed in the next block.

Two possible solutions: 1) Some how delay the congestion rise, so it still "approximately never happens". 2) Implement "refund semantics" so that transactions can include higher fees, but they won't all be taken if they aren't used.

Summary

Test Plan

@jannotti jannotti self-assigned this Jul 31, 2025
@jannotti jannotti force-pushed the on-chain-congestion branch 2 times, most recently from dd908fe to f17cee2 Compare July 31, 2025 20:02
@jannotti jannotti changed the title Eval: Add, maintain, and validate new Load and BaseFee header fields Eval: Move congestion monitoring and fee escalation on-chain Aug 1, 2025
@jannotti jannotti force-pushed the on-chain-congestion branch 5 times, most recently from 567770d to 1b8ff65 Compare August 5, 2025 20:06
@jannotti jannotti force-pushed the on-chain-congestion branch 4 times, most recently from 15e01ce to b5f1d18 Compare August 5, 2025 22:30
@jannotti jannotti force-pushed the on-chain-congestion branch from b5f1d18 to 68c0b54 Compare August 6, 2025 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant