I'm trying to execute a runtime upgrade on a running parachain. I'm using the cumulus parachainSystem pallet to do, using the authorize -> enact flow.
My parachain have the contracts pallet, with the standard migration.
The steps I'm doing are the following:
- I'm just modifying the spec_version, without adding or removing any pallet.
- Then I run
cargo build --release -p <runtime pkg>to build the new runtime blob.
- To execute the authorize_upgrade, I get the smallest file generated by the command above. Which the file name is something like
- I execute the enact_upgrade call, and here is where the problem starts!
I've got mixed outputs, doing with and without the scheduler pallet.
I've tried using the scheduler already, but I'm probably doing something wrong? How can I properly set the scheduler with the auth -> enact flow, to successfully execute the runtime upgrade in the parachain?
The steps I'm doing:
The upgraded runtime just have the spec_version increased, no pallets removed/addded.
- Scheduled a
authorize_upgradecall, to be executed in n+5 blocks.
- Waited the execution of the n+5 block.
- After, scheduled the
enact_authorizeto be executed in n+10.
When the second scheduled call happens, it keeps starting collation until the
too many siblings error starts popping up.
Is the order right? Do I need to make a set_code call in the Parachain, before or after the auth/enact?