-
Notifications
You must be signed in to change notification settings - Fork 247
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
Domains: Limit domain's max extrinsic weight to max domain bundle weight #2801
Conversation
I agree, it's correct that extrinsic limit should be <= bundle limit. I still vouch for the bundle limit be in domain config (#2365) and deprecating |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make sense
The hard limit for 1 bundle and 1 big extrinsic would be 250 ms execution time. As per the proof size, this should be more than sufficient to fit that bit extrinsic in the fraud proof. Right now I'm checking with other exisiting para chains for their max POV size to be sure and then will merge once I'm even more confident |
Plz resolve the conflict |
@dariolina the proof size for each extrinsic is also updated to ensure it fits the consensus block during FP. |
…undle slot propability to be 1
601ebbe
to
5d1a0cf
Compare
We introduced a regression while setting the maximum domain block limit where in individual domain extrinsic was equal to max domain block limit. This would lead to excessive extrinsic weight allowance on domain leading to transaction being in txpool forever since this value exceeds the bundle weight limit defined on the consensus chain.
This PR ensures to use max bundle limit as the max domain extrinsic weight with bundle slot probability to always set
1
. The current domain weights post this changeIf the domain bundle slot probability is lower than
1
, the value of the maximum domain block increases but each extrinsic max weight will be limited to250,000,000,000
which is250 ms
execution time.TLDR:
On Consensus Chain:
Max allowed proof size for Normal extrinsics: 3.75 MiB
Max bundle weight:
- Execution: 250 ms
- Proof size: 3.25 MiB to have room for additional storage coming as part of Fraud proof
This is the bundle weight that operator uses while proposing the bundles. So each bundle should include one or more transactions that meet this bundle weight.
On Domains:
Max Domain block weight:
- Execution: u64::MAX, this is set to ensure all the extrinsics from bundles are executed irrespective of execution time
- Proof Size: u64::MAX, total proof size for entire domain block will not be used for FP but rather each extrinsic within the domain block
Max Extrinsic block weight:
This is same as max bundle weight on consensus chain.
- Execution: 250 ms
- Proof Size: 3.25 MiB, Single extrinsic can use this size with consideration for Fraud proof size
Closes: #2387
cc: @dariolina
Code contributor checklist: