-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Substrate Point: Forkless upgrades just change the default #966
Comments
I think all you said is true, but if you look at substrate at the meta-blockchain level, the default is still to keep not change the rule, but "rule" here means "do as the WASM blob wishes". |
Ah yeah! I exactly agree with you. That's also a great point to make. At the meta-protocol level the rules don't change we just keep executing the wasm as always. So another also useful and also correct way to frame it is that Substrate provides a mechanism to upgrade the state machine from within the state machine without a consensus fork. If you are dissatisfied with the outcomes of this in-runtime game, you can still perform a regular old consensus fork and change the meta protocol rules from "just follow the wasm" to "follow this other wasm that is the same as the old one and possibly censor upgrade transactions if necessary". |
I actually like the perspective that @JoshOrndorff is proposing. I think we can agree that the idea behind it is correct, we just need a precise description. I'll try and correct me if I am mistaken in any of the fine nuances here. All blockchains (including Polkadot) commonly "follow the consensus rules". But and in contrast to (most?) other blockchains, we form consensus not on static rules but on flexible ones. Concretely, we automatically follow everything that is legitimated by governance and then automatically adopted by all nodes. So, the rule is the same "follow consensus", but it leads to effectively other outcomes. In Polkadot's case, we obtain forkless upgrades while other blockchains are left with hard forks. What is important here is that Polkadot integrates a collective decision-making system into its consensus, something that not many other blockchains have. Ultimately, if we touch the "default effect" in this topic, we should also highlight the social layer. Since Polkadot does this from the very beginning, its governance process (now OpenGov) is considered legitimate by pretty much every participant, creating a social norm where following changes (again, legitimated by governance) are the default. |
I think there is a chance in the Substrate module @kianenigma to really drive home some points that are set up in Game Theory and also in Blockchain. cc @jonasW3F @coax1d
In Game Theory they talk about the default effect. In blockchain we talk about upgrading networks by forking and how the default is to not change the rules at all. If you want to change anything, you can opt in to the change by updating your node.
In Substrate of course you present forkless runtime upgrades which is one of the killer features of Substrate. I think the point to drive home is that Substrate's forkless upgrade feature simply changes the default.
When using Substrate, the default is to follow the onchain governance whereas pre-substrate, the default is to keep the old rules. Even in Substrate you can still have consensus level forks. And if governance decides something you dislike, you still have the ability to "fork off" and keep the old rules. To take such a non-default position, write some new code and update your node. Same as before.
WDYT?
The text was updated successfully, but these errors were encountered: