Roadmap for changing from Sudo pallet to Decentralised Governance

One of our exchange partners is requesting that we remove our Sudo Pallet on our parachain before listing. We had not considered doing this at this point in our upgrade planning as we are aware that this should be handled carefully.

Also we have not began the process of looking at and understanding the transition process and thought perhaps there should be a clear documentation of the steps to follow in order to accomplish this.

For example I am fairly certain that beyond simply adding the democracy pallet and removing sudo pallet there are many steps to consider, perhaps even an overlapping grace periods as there was with Polkadot.

I would like to think this thread could be a “best practices and considerations leading to decentralised governance” thread.

3 Likes

I’d say best practices are to:

  1. check your call filters before removing sudo: make sure that users can actually submit democracy/council/whatever transactions once sudo is gone.
  2. make sure that democracy is privileged to make calls with the Root origin: if not, then you’ll never be able to upgrade the runtime again.
  3. deploy democracy side-by-side with sudo and have democracy upgrade the runtime to remove sudo: this overlapping stage allows final recovery in case there were oversights in (1) and (2).
2 Likes

Rob’s last step is key.

If you can use democracy to upgrade your chain to remove Sudo, then you really should be good to go in terms of sanity checking that things are set up in some way that is at least recoverable or upgradable in the future.

If you wanted to write such a guide as you go through your process, I think we could fund that with Tips or a Treasury Proposal.

2 Likes

Thanks @rphmeier & @shawntabrizi this is a great advice on the steps. We will be documenting the steps as we test on our development environment. I may put a proposal forward, but as we are doing this now, it’s more likely we will fund it ourselves.

I think also we should also include more practical information about the relationship and purpose between the Council and Technical Committee, Treasury etc. In other words How-tos for anyone proposing to take part in governance, the expectations from them and more practically what tools/extrinsics they could use and for what prupose.

I realise this may all change with GovV2 but I think for the time being the community of parachains and substrate chains will be very useful.

There is this Learn Governance which is a good start.

I think it could be broken down and much simplified for non-technical people.

Glad this was helpful. I hope to see a post about this and perhaps it could be upstreamed into the Substrate.dev documentation.

I don’t think it’s currently worth writing more docs for Governance V1 stuff like Council and TC which will be shortly obsolete.

There is this Learn Governance which is a good start.

As far as I can see this is already written for a non-technical audience; I would estimate it’s at a 9th or 10th grade reading level.

I agree this is written clearly, but what is missing are probably some form of training docs to support it. That’s not really what this thread was about though. It was more or less the points you first made.