At Ternoa we are trying to do a long jump from polkadot-v0.9.30 to polkadot-v0.9.43 or the latest. We would like to get some suggestions here if someone or some projects already experienced this much of a upgrade at once.
2 Answers
Loïs from Allfeat.
I advise you to do the updates step by step. Upgrading directly from polkadot-v0.9.30 to the latest versions will be a mess to do regarding all the major changes between these two versions. If you do step by step (e.g polkadot-v0.9.30 to polkadot-v0.9.34), it will be more easier to follow the process and it enable you some checkpoints with git in case something went wrong during the update process.
Usually this is how I proceed:
- Update all the dependencies in Cargo.toml to the desired branch of the desired version (first ur pallets, then the runtimes and the node)
- fix errors with the help of the substrate-node-template to see what need to be changed
-
1I'm afraid this is not a complete answer as it misses migrations completely which is more crucial if OP is planning to upgrade which will include updating frame dependencies. Commented Oct 19, 2023 at 18:30
In my experience this is completely possible but not an easy task. You are looking at upgrading your node client and including storage migrations.
I would suggest making a list of FRAME migrations that occurred between 0.9.30
and 0.9.43
and making a jump in steps, most preferably 30
-> 37
-> 42
-> 43
. These will keep your code changes from becoming too overwhelming. Now for the production part, since you'll be making one big jump, you need to consider the effect of your storage migrations as being the cumulative sum of all storage migrations that may have happened interim.
Once you're done with that, moving on to polkadot-v1.0
should be relatively straightforward.