-
Notifications
You must be signed in to change notification settings - Fork 97
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
Remove im-online
pallet from Kusama and Polkadot runtimes
#178
Remove im-online
pallet from Kusama and Polkadot runtimes
#178
Conversation
@bkchr @ordian I think it's ready for review now. @bkchr WDYT about adding offchain storage cleanup into the same PR? Seems unsound to me, as some previous offchain workers may still be there, but I'm not sure if there's any synchronization of their access to the offchain db. Could it make sense? |
Yeah good question, probably better to do this the next release. |
Address discussions; Get beefy keys back
/// Upgrade Session keys to exclude `ImOnline` key. | ||
/// When this is removed, should also remove `OldSessionKeys`. | ||
pub struct UpgradeSessionKeys; | ||
const UPGRADE_SESSION_KEYS_FROM_SPEC: u32 = 1001002; |
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.
let's hope we include it in the next release 🤞
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.
I'll keep an eye on it. If it's not in the next release somehow, I'll update the version.
@bkchr okay, I bumped the Kusama spec version in this PR to let it pass the idempotent try-runtime check, and now the only thing failing is the encointer runtime migrations that IIUC have nothing to do with this PR. So it's good to go, but I'm not sure how to sort out those encointer problems, and that CI job is required 🤷♂️ |
@s0me0ne-unkn0wn Encointer is known issue, please check comment: #159 (comment) @bkchr I think we should temporary skip |
Yes, I also already thought of disabling the try runtime check for encointer. Can you please make this happen? |
/merge |
Enabled Available commands
For more information see the documentation |
/merge cancel |
There was a problem running the action.❌😵❌ Please find more information in the logs. |
@s0me0ne-unkn0wn I have thought again about this pr, in the context of: paritytech/polkadot-sdk#64 I think we need to revert this PR for now or do some other manual work. The problem being that when we call So, the problem could be that we miss backed candidates (not such a big issue I think). However when we miss the candidate included events we could run into a finality stall until the training wheels force approve the candidates. Given this, we should fix this. A possible fix could be that we filter out these broken events in |
@bkchr Hmmm 🤔 |
You need to be "lucky". The problem only appears when the block we enact the runtime upgrade, also contains one of these events. As they don't appear that often, triggering this bug is quite unlikely, but it can happen. At least from my understanding. I didn't looked that deep into the approval voting and if this is maybe also triggered in a different way than using the candidate events it should be fine as is. |
Looking at that closer, the code you're pointing to is executed in |
We don't schedule the upgrade on a specific block. It depends on OpenGov voting etc when the upgrade is enacted. |
Then I probably don't fully understand what's going on here: https://polkadot.polkassembly.io/referenda/458 |
You got me :P I also didn't know of this :D However, if a block number is a session change or not is still something that is not 100% predictable. Sessions end based on time. Thus, skipped blocks let a session end at an earlier block number. |
This is a follow-up to #178, which aims to keep the `im-online` pallet events decodable after the pallet itself is removed. As [discussed](#178 (comment)), the inability to decode events may result in missing a candidate in approval voting and a parachain finality stall. Although the circumstances of such an event are unlikely, it's better to safeguard them. The transient code introduced in this PR should be removed after the upgrade is enacted. - [x] Does not require a CHANGELOG entry
Summary
This PR aims to remove
im-online
pallet, its session keys, and its on-chain storage from both Kusama and Polkadot relay chain runtimes, thus giving up liveness slashing.Motivation
See also
paritytech/polkadot-sdk#1964
paritytech/polkadot-sdk#784