-
Notifications
You must be signed in to change notification settings - Fork 769
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
elastic scaling: rework core selector handling #6939
base: master
Are you sure you want to change the base?
elastic scaling: rework core selector handling #6939
Conversation
All GitHub workflows were cancelled due to failure one of the required jobs. |
…erimental-ump-signals-feature
I'm having second thoughts about whether or not removing the If you have a parachain runtime and update to this version, make sure that you use a
If they don't, they will run into core index mismatches if they have multiple cores assigned. (leading to skipped slots and potentially parachain stall). If we keep the functionality of sending ump signals guarded under |
Yes, this is sub-optimal, but it only applies to parachains that have multiple cores assigned. I think the default implementation |
/// allowed. | ||
#[cfg_attr( | ||
feature = "std", | ||
error("Candidate contains core selector but descriptor version is v1") |
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.
error("Candidate contains core selector but descriptor version is v1") | |
error("Version 1 receipt does not support core selectors") |
@@ -391,9 +402,7 @@ pub mod pallet { | |||
UpwardMessages::<T>::put(&up[..num as usize]); | |||
*up = up.split_off(num as usize); | |||
|
|||
// Send the core selector UMP signal. This is experimental until relay chain | |||
// validators are upgraded to handle ump signals. | |||
#[cfg(feature = "experimental-ump-signals")] |
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.
Didn't we also used this to guard until enabling RFC103 on the relay chain?
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.
it's important that they know at least to ignore the signals if the feature is disabled (which I'm pretty sure was included in a node release already, will check)
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.
hmm, I think you're right. the feature needs to be enabled on the relay chain, this was another reason I chose a compile time feature back then..
So I'll leave the core selector config for later and cherry-pick the changes to only refuse candidates that output UMP signals but use v1 descriptor into its own PR that can be merged and also backported
Also, to make it more clear we can rename the implementations of
|
So if parachains upgrade their chain, they should use However, does anything speak against adjusting the lookahead too to prevent this mismatch? If we already see this footgun lets remove it. |
…erimental-ump-signals-feature
This would basically mean making lookahead work with elastic scaling. Do we want to support that? |
I set the |
Prior to the PR, the parachain runtimes were prevented from sending the core selector ump signal by the
experimental-ump-signals
compile-time feature. This was needed because the validators were not yet upgraded to be able to decode the new signals.This PR removes the
experimental-ump-signals
feature and makes the runtime send the UMP signal if theSelectCore
impl (part of the runtime config trait) returnsSome(...)
. This is a breaking change on the SelectCore trait so cannot be backported.It also adds an impl for
()
, which returnsNone
.Instructions on how to configure the parachain runtime for elastic scaling will be included in #6739