community-repo icon indicating copy to clipboard operation
community-repo copied to clipboard

Process for runtime upgrade

Open mochet opened this issue 3 years ago • 1 comments

On mainnet, there should be a fairly standard process that takes place before a runtime upgrade is approved by the council.

This should include:

  • Testing
  • Agreed backup of the chain at some blockheight in case an emergency rollback is needed
  • Agreed timeframe after which the upgrade is considered to be successful

mochet avatar Mar 29 '21 08:03 mochet

Fully agree with the spirit! However, there are some issues with backups. We need to look into this further, but currently the best (we know) you can do is to export the full state with a snapshot at block n. However, that leads to some obvious issues anyway. eg.

  1. A new Council term is set to start at block n+a
  2. A proposal will be executed at block n+b
  3. Something of interest happened at block n+c

When you take a snapshot, it will provide a new chain spec that allows you to start a new chain at block 0. So you'll find that:

  1. The council sits until n+a - could be years
  2. The proposal executes at n+b - could be years
  3. Any refs will be incorrect

This may be trivial to overcome, but hadn't been looked at before this latest event...

bwhm avatar Apr 10 '21 15:04 bwhm