Skip to content

Conversation

@janezpodhostnik
Copy link
Contributor

@janezpodhostnik janezpodhostnik commented Oct 8, 2025

Issue: #346

This Flip is the successor to the Flip Variable Transaction Fees - Execution Effort I.

Objective

This FLIP proposes an update to Flow’s execution effort weights, originally introduced in FLIP 660: Variable Transaction Fees. The update reflects changes in the execution environment and expands coverage to a broader set of actions possible within Cadence on Flow.

The goals are to:

  • Improve fee fairness by better aligning costs with actual resource usage.
  • Strengthen network stability and resilience against resource exhaustion attacks.
  • Define a more accurate methodology for future calibrations.

Comment Period

  • 2 weeks (Oct 8th to Oct 22nd)

@bluesign
Copy link
Collaborator

bluesign commented Oct 16, 2025

Any chance to share data? Mainly graph sources and new weights etc.

9999 execution effort being 1 second CPU time feels very wrong to me too. ( Probably misunderstanding something ) I would assume like 0.01 - 0.1 seconds or something.

Comment on lines 103 to 109
By design, Flow defines a maximum transaction execution time of **1 second**, which currently maps to **9,999 computation = 9,999 × 65,536 CU**. However, recalibrated weights change the relative cost of individual operations, and if the conversion factor remained unchanged, the overall throughput of the network (in terms of execution effort per unit time) would shift.

To avoid unintentionally lowering or raising the effective throughput of mainnet, this FLIP proposes to **redefine the conversion factor** such that:

- The **average execution effort throughput** observed on mainnet today is preserved after recalibration.
- Users will see fairer distribution of costs across operations, but the **aggregate capacity of the network remains constant**.
- This ensures alignment with governance objectives to maintain predictable throughput while still improving fee fairness and security.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bluesign regarding your comment/question

9999 execution effort being 1 second CPU time feels very wrong to me

From my perspective, the following two were conventions that we started with 2 or 3 years ago:

  • 9,999 computation is equated with 1 second runtime
  • maximum transaction execution time of 1 second

These conventions were introduced when the network was significantly slower and I think it is worth revisiting. Thanks for commenting in this regard.

In the text following, Janez is arguing that the normalization of 9,999 CU equalling 1 second runtime should be revised ("if the conversion factor remained unchanged, the overall throughput of the network would shift"). While I don't know what the normalization will be, my gut feeling is it should come out to be closer to the magnitude you expect (0.01s to 0.1s).

The maximum run time for a transaction in terms of time also scales proportionally. If the system gets x times as fast, the max transaction runtime should scale anti-proportionally by a factor of 1/x.

Assuming I understood your comment correctly, @bluesign, I think we are aligned on the outcome. Just the test might need some clarification ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed the wording a bit and updated the numbers not that we have more data. please take a look.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks @janezpodhostnik , does 9,999 computation = 333.4 ms mean "1 cpu core can run 3 transactions in a second" or 1 EN ( 128 cores iirc ) can run 3 transactions in a second" ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 full ones yes

Copy link
Member

@joshuahannan joshuahannan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well written! I don't see any issues

Copy link
Contributor

@dete dete left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a few wording suggestions. Great write-up!

@vishalchangrani
Copy link
Contributor

This has been rolled out to mainnet. Merging the PR.

@vishalchangrani vishalchangrani merged commit f1619d9 into main Nov 28, 2025
@vishalchangrani vishalchangrani deleted the janez/execution-effort-calibration-2 branch November 28, 2025 20:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants