-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Remove v0 parachains runtime #1501
Conversation
|
@bkchr I'm getting a runtime error: probably because there is no typed differentiator of the dummy instances. I'm also getting "duplicate lang item in crate |
|
Icing until we can test the runtime upgrades. |
|
Registrar, Parachains, and Slots have some keys on chain (in polkadot), I guess they should be removed with some migration code |
I think we can also defer to governance on this, right? But we could also do |
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 did start a kusama and a polkadot testnet with storage datas from kusama and polkadot (except babe, grandpa, session and staking). with the runtime from this PR (except with small session length and era length) and the client from v0.8.19, and it worked fine finalizing and new eras.
still I think we need to adress the origin changing issue otherwise looks good to me
| // Parachains stuff; slots are disabled (no auctions initially). The rest are safe as they | ||
| // have no public dispatchables. Disabled `Call` on all of them, but this should be | ||
| // uncommented once we're ready to start parachains. | ||
| Parachains: parachains::{Module, Call, Storage, Config, Inherent, Origin}, |
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.
This changes the outer origin enum, this requires an upgrade of scheduler::Agenda storage (or a dummy variant in origin, maybe using Dummy)
(scheduler agenda holds the origin since paritytech/substrate#6387 )
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.
Great point. We'll add the parachains origin to this PR
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.
We did some digging, and found that the migration is not really necessary because:
- The council on Polkadot and Kusama has not scheduled anything with a Parachains origin and will not, either
- The Origin enum had the Parachains origin at the end, so no indices of other origins were altered
* master: Make parachain validation wasm executor functional (#1574) Use async test helper to simplify node testing (#1578) guide: validation data refactoring (#1576) Remove v0 parachains runtime (#1501) [CI] Add github token to generate-release-text (#1581) Allow using any polkadot client instead of enum Client (#1575) service/src/lib: Update authority discovery construction (#1563) Update .editorconfig to what we have in practice (#1545) Companion PR for substrate #6672 (#1560) pre-redenomination tockenSymbol change (#1561)
…n-race-condition * master: Companion PR for #6862 (#1564) implement collation generation subsystem (#1557) Add spawn_blocking to SubsystemContext (#1570) Companion PR for #6846 (#1568) overseer: add a test to ensure all subsystem receive msgs (#1590) Implementer's Guide: Flesh out more details for upward messages (#1556) Make parachain validation wasm executor functional (#1574) Use async test helper to simplify node testing (#1578) guide: validation data refactoring (#1576) Remove v0 parachains runtime (#1501) [CI] Add github token to generate-release-text (#1581) Allow using any polkadot client instead of enum Client (#1575) service/src/lib: Update authority discovery construction (#1563)
* master: overseer: fix build (#1596) Companion PR for #6862 (#1564) implement collation generation subsystem (#1557) Add spawn_blocking to SubsystemContext (#1570) Companion PR for #6846 (#1568) overseer: add a test to ensure all subsystem receive msgs (#1590) Implementer's Guide: Flesh out more details for upward messages (#1556) Make parachain validation wasm executor functional (#1574) Use async test helper to simplify node testing (#1578) guide: validation data refactoring (#1576) Remove v0 parachains runtime (#1501) [CI] Add github token to generate-release-text (#1581) Allow using any polkadot client instead of enum Client (#1575) service/src/lib: Update authority discovery construction (#1563) Update .editorconfig to what we have in practice (#1545) Companion PR for substrate #6672 (#1560) pre-redenomination tockenSymbol change (#1561)
All of the functionality except for the
Registrarmodule has been superseded by the v1 runtime modules. I removed theRegistrarregardless, leaving the runtime without parachainsThe Registrar Module
The registrar module previously had these functions:
Function 1 is now mostly provided by the
Parasmodule. This Registrar should provide a small wrapper around theParasfor handling deposits.Function 2 is now handled by the
Schedulermodule.Function 3 should be handled by a separate a
parathread_auctionmodule.So although the
Registraris currently being removed, those relevant pieces of logic can be recovered from the commit history when the new version is created in a follow-on PR.We need to add para swapping (one feature of the old registrar) to the
Parasmodule and make some small tweaks: swapping should only happen at session boundaries.Compatibility with previous runtime
There are two main compatibility concerns:
Callindices andSessionKeylayout. For the former, I replaced each of the existing parachains modules with an instanced dummy module. For the latter, I will ensure that the session key layout remains the same by keeping theParachainssession key around, but where updates are simply discarded for the time being.I also created a dummy implementation of the
v0::ParachainHostruntime API. This can be removed once theBlockBuilderinpolkadot-validationno longer relies on it.