gitcoinco / gitcoinco/Alpha-Governor-Upgrade

Determine process to ensure successful alpha upgrade

Open
#19 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Solidity
Stars
14
Forks
6
PR merge metrics
No merged PRs in 30d

Description

Needless to say, there's a ton at stake in the upgrade process. What can/should we do to ensure that there are absolutely no mistakes?

Some ideas we've considered:
* In other complex, high-stakes environments (e.g. aerospace, surgery, construction) checklists are used to make sure important steps don't get missed. Off the cuff, I can think of quite a few things that we definitely don't want to forget to do before running the upgrade script, e.g.:
- [ ] correct ENV is loaded in shell
- [ ] there is a co-pilot to watch and sanity-check everything being done
- [ ] we're using the correct forge version
- [ ] all tests pass locally
- [ ] all tests pass on CI
- [ ] we're on the correct git commit locally
- [ ] dry-run succeeds
- [ ] test run on local fork looks as expected
- [ ] other devs are around to observe/triage any issues
- [ ] we have open channels with important stakeholders
- [ ] then, only after all that is done, run the upgrade script live
* Build a fail-safe into the proposal in some way, e.g. that a certain important function can only be executed if `tx.origin` is an address of our choosing
* Write new fork tests against mainnet at each stage of the process
* Make the transfer a two step process with two separate proposals, e.g. one to the AlphaGovernor to update the Timelock admin, a second to the BravoGovernor to accept the admin, so that the upgrade can't happen unless proposals really can be voted on and executed by Bravo

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.