community-repo
community-repo copied to clipboard
Process for runtime upgrade
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
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.
- A new Council term is set to start at block
n+a
- A proposal will be executed at block
n+b
- 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:
- The council sits until
n+a
- could be years - The proposal executes at
n+b
- could be years - Any refs will be incorrect
This may be trivial to overcome, but hadn't been looked at before this latest event...