Blockchain Tales: Nodle Arcadia governance model
At Nodle, we recently announced the launch of our Arcadia Testnet. I’m happy to share that it is up and running with success after a few network-wide changes and bug fixes. Today I’m going to cover how we proceed with such upgrades and who has control over it.
Arcadia as a Self Amending Ledger
Arcadia has the possibility to modify its own code and is able to evolve by itself over time; this is often referred to as “self-amending”. I like to compare it to a kid picking up new skills. This is useful when fixing bugs or introducing new features without having to hard fork the network, or raise months-long debates among the community.
This capability is controlled according to the rules that are written into the chain logic itself, this is what we call our network governance model.
How it Works
The blockchain validates and executes incoming transactions (and also produces and settles on blocks) through what’s called runtime. Think of the runtime as the chain’s contract: it defines what can and can not be done on the network, and how it has to be executed.
With Parity Substrate, the runtime is executed inside a Web Assembly Virtual Machine. Because this is decoupled and kept isolated from actual node code (which typically contains the networking and consensus stack), we have the ability to change its code. This is as simple as replacing the Web Assembly binary to be executed, which can be done through a simple specially crafted transaction.
With Great Power Comes Great Responsibility
Of course this is a very sensitive feature and it can’t be left open for anyone to play with. On Arcadia (and eventually on Nodle’s main network when it is deployed) we have a Technical Committee that is granted a mandate (through a custom module) to execute privileged operations on the blockchain. As of now, 4 members of our team have a seat at the committee with one voice each. 50% + 1 vote is needed to use the mandate granted to the committee; this allows us to iterate and push upgrades quickly as we develop the network.
The Prime Member
One may have noted the existence of a prime member in the previous image. This member of the committee is very important if the other members forget to vote or are taking a long time to do so. When a proposal is more than 2 days old and is still missing votes to be discarded or executed the votes of the non-voting members will be in support of the prime member’s decision.
For instance, if the prime member submitted a network upgrade proposal, but after two days nobody else voted, the proposal will still be executed unless the other members vote for its refusal. This allows us to have a more liquid and light governance model where we do not need to stop everything we are doing every time we want to do an upgrade that we are already in agreement with, which will happen a lot in the upcoming months!
Toward More Decentralization
At a later stage, or for our main network, we may explore alternative models.
Selecting More Members
In order to add more members to the Committee, we could start by adding people from our surrounding community. For example, some of our partners may be interested in participating in such an initiative. This could also include technical people from the blockchain ecosystem that are able to understand the inner workings of the protocol and would like to be involved with Nodle and its development.
Selecting Members Based on a Token Curated Registry
Another alternative could be to select members based on a Token Curated Registry. This means that token holders can choose who would represent them at the Committee. We would then impose a maximum size to the Committee in order to keep it manageable. But of course, this could be changed through a network-wide upgrade, which is all the beauty of the system.
Side note: we actually developed a Token Curated Registry module as part of our Public Key Infrastructure grant from the Web 3 Foundation.
This post is part of a series we are making to explain the inner workings of our chain and our efforts in this direction. Next up: how we are approaching interoperability between our chain and Stellar. Stay tuned!