Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiply tx len and base fee component by max number of remarks per block, in the fees calculation of congested_chain_simulation test #536

Merged
merged 3 commits into from
May 18, 2022

Conversation

ghzlatarev
Copy link
Contributor

@ghzlatarev ghzlatarev commented May 6, 2022

Signed-off-by: ghzlatarev ghzlatarev@gmail.com

Description

closes: #530

  • Ad the tx len component to the fees calculation of congested_chain_simulation because when Apply WeightToFeePolynomials to pallet_transaction_payment's length fee paritytech/substrate#10785 lands in 0.9.18 it might not be so negligible to ignore. It adds $500 to the result cost.
  • Calculate a rough amount for maximum remarks in a TX and multiply the len and base_weight components by that amount.
  • The base component being multiplied by the number of extrinsics makes about 10x difference to the result cost, so we're still over our target cost of $250k. Currently costs ~$550k to congest the network on day 1

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

  • Linked to Github issue with discussion and accepted design OR have an explanation in the PR that describes this work.
  • Wrote unit tests.
  • Updated relevant documentation in the code.
  • Added one line describing your change in <branch>/CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer.
  • If runtime changes, need to update the version numbers properly:
    • authoring_version: The version of the authorship interface. An authoring node will not attempt to author blocks unless this is equal to its native runtime.
    • spec_version: The version of the runtime specification. A full node will not attempt to use its native runtime in substitute for the on-chain Wasm runtime unless all of spec_name, spec_version, and authoring_version are the same between Wasm and native.
    • impl_version: The version of the implementation of the specification. Nodes are free to ignore this; it serves only as an indication that the code is different; as long as the other two versions are the same then while the actual code may be different, it is nonetheless required to do the same thing. Non-consensus-breaking optimizations are about the only changes that could be made which would result in only the impl_version changing.
    • transaction_version: The version of the extrinsics interface. This number must be updated in the following circumstances: extrinsic parameters (number, order, or types) have been changed; extrinsics or pallets have been removed; or the pallet order in the construct_runtime! macro or extrinsic order in a pallet has been changed. You can run the metadata_diff.yml workflow for help. If this number is updated, then the spec_version must also be updated
  • Verify benchmarks & weights have been updated for any modified runtime logics
  • If importing a new pallet, choose a proper module index for it, and allow it in BaseFilter. Ensure every extrinsic works from front-end. If there's corresponding tool, ensure both work for each other.
  • If needed, update our Javascript/Typescript APIs. These APIs are officially used by exchanges or community developers.
  • If modifying existing runtime storage items, make sure to implement storage migrations for the runtime and test them with try-runtime. This includes migrations inherited from upstream changes, and you can search the diffs for modifications of #[pallet::storage] items to check for any.

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
@ghzlatarev ghzlatarev changed the title Add len fee to the test Add the tx len component to the fees calculation of congested_chain_simulation test May 11, 2022
@ghzlatarev ghzlatarev marked this pull request as ready for review May 11, 2022 11:55
@ghzlatarev ghzlatarev self-assigned this May 11, 2022
Copy link
Contributor

@Garandor Garandor left a comment

Choose a reason for hiding this comment

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

LGTM!

runtime/calamari/src/fee.rs Show resolved Hide resolved
Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
runtime/calamari/src/fee.rs Outdated Show resolved Hide resolved
runtime/calamari/src/fee.rs Outdated Show resolved Hide resolved
@Dengjianping
Copy link
Contributor

Does it affect the congestion? Worse or better?

@ghzlatarev
Copy link
Contributor Author

Does it affect the congestion? Worse or better?

The length component doesn't add much. Around $500 at the end of the day.
But the base fee being calculated for each extrinsic makes a big difference. Around 10x to the daily cost, which is ok because we're still over the target $250k.
Right now the cost to congest the network is ~$550k

@ghzlatarev ghzlatarev changed the title Add the tx len component to the fees calculation of congested_chain_simulation test Multiply tx len and base fee component by max number of remarks per block, in the fees calculation of congested_chain_simulation test May 17, 2022
Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
@ghzlatarev ghzlatarev requested a review from stechu May 17, 2022 12:03
Copy link
Contributor

@Dengjianping Dengjianping left a comment

Choose a reason for hiding this comment

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

LGTM!

@ghzlatarev ghzlatarev merged commit 4caaa7b into manta May 18, 2022
@ghzlatarev ghzlatarev deleted the ghzlatarev/apply-weight2fee-to-len branch May 18, 2022 15:42
bhgomes pushed a commit that referenced this pull request May 20, 2022
…lock, in the fees calculation of `congested_chain_simulation` test (#536)

* Add len fee to the test

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Comment

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Consistent use of safe math

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
bhgomes pushed a commit that referenced this pull request May 20, 2022
…lock, in the fees calculation of `congested_chain_simulation` test (#536)

* Add len fee to the test

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Comment

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>

* Consistent use of safe math

Signed-off-by: ghzlatarev <ghzlatarev@gmail.com>
Signed-off-by: Brandon H. Gomes <bhgomes@pm.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants