Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
### Description <!-- Describe what change this PR is implementing --> This PR introduces the Cluster Governance feature. Previously, only the SUDO account was authorized to create an active cluster in the Cere Network. Now, anyone can create an inactive cluster, bond tokens for that cluster, add genesis nodes, invite external nodes, and later initiate a proposal to the network to activate the cluster with certain protocol parameters that impact economics and distribution of rewards between Cere token holders. In sake for the overview, I'll list the high-level changes the current PR contains: - Bonding for clusters is introduced - Cluster Node Kind type is introduced (`Genesis`, `External`) - Cluster Node Status is introduced (`AwaitsValidation`, `ValidationSucceeded`, `ValidationFailed`) - Cluster Local Referendum is introduced where cluster members can agree on an initial set of protocol parameters before propagating the proposal to the network - Cluster Public Referendum (integrated with the OpenGov) is introduced where the network participants can accept or reject changes in a cluster protocol parameters proposed by its members. - `ClusterGovParams` type was renamed to `ClusterProtocolParams` to ensure ubiquitous naming and better reflect the type purpose. Also, internal some traits such as `ClusterVisitor` were split and renamed to more domain-specific types. - Tests and benchmarks for new and changed functions are added - Migrations for old data structures are provided ### Types of Changes <!--- What types of changes does your code introduce? --> - [ ] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds functionality) - [x] Breaking change (fix or feature that would cause existing functionality to change) - [ ] Dependency upgrade (A change in substrate or any 3rd party crate version) ### Migrations and Hooks <!--- Check the following box with an x if the following applies: --> - [x] This change requires a runtime migration. - [ ] Modifies `on_initialize` - [ ] Modifies `on_finalize` ### Checklist <!--- All boxes need to be checked. Follow this checklist before requiring PR review --> - [x] Change has been tested locally. - [x] Change adds / updates tests. - [x] Changelog doc updated.
- Loading branch information