5

If I'm running a chain in production and I've upgraded some pallets in my runtime, what steps do I need to take to make sure my runtime will run without fail when it is included in my live chain?

1 Answer 1

4

Peeking at the release checklist of Polkadot (or any other professional substrate-based chain) is a good insight into what components you need to look out for. Here's an example from the 0.9.17 version. I would summarize the most important ones as:

  1. Update spec_version and impl_version accordingly. If you are not sure when to bump them, read here.
  2. Update transaction_version accordingly. Read more about here.
  3. If you added new calls, and you are using pallet-proxy, you probably need to check your proxy ProxyType, most notable, how it implements to InstanceCallFilter.
  4. Finally, if your pallets have altered their storage in any way that could cause storage to be un-decoable, you need to have some storage migrations, and you need to make sure they are executed, and you better test them since you only get one shot at doing it in production. There are lots of resources about this, and as mentioned earlier, try-runtime has a bunch of commands that help with this. There are also some tutorials about it in the substrate developer hub.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.