-
Notifications
You must be signed in to change notification settings - Fork 169
Description
The go-filecoin were planning to write code for handling protocol upgrades real soon now. Our motivation for doing so is that this is a complex and high-risk item, and the more experience and less time pressure we gain by doing it sooner will help us reach the best result.
However, this is an area that is complex, critical to long term network health, has broad reach, and also has prior art in other blockchains, of which the implementation team may not be especially familiar. If we proceed, the process would likely involve us completing some tech designs, and then proposing the results for the spec. I fear this has a reasonably high chance of a poor result because the resulting ideas and concepts may (a) not be the best informed, leading to a poor end result, and (b) diverge significantly from those already thought about, discussed etc but not yet documented, leading to significant churn and disagreement as we attempt to converge.
I'm therefore raising the possibility that we should wait for the protocol development and spec teams to go deep and establish a foundation. Involvement and interaction with the implementation team will still be critical, but we may be better off with the spec leadership coming from, say, @whyrusleeping. The go-filecoin team can still do some work in anticipation of clear upgrade protocols, but without a shared understanding of the eventual spec, such work is risky.
Some existing spec issues in this domain include #132, #197, #198, #199, but the scope is much greater than just those issues, including handling changes to encoding, block and message structures or semantics, consensus rules, existing actors, new actors, state encoding. @ZenGround0 is currently gathering an understanding of the full problem.
If this idea gains acceptance as a preferable path, I would request that protocol upgrades be a high priority item for speccing, for the reasons in the opening paragraph.