-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add some user story / implementation examples
- Loading branch information
Showing
4 changed files
with
41 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,40 @@ | ||
# Chain-wide Governance | ||
|
||
The almost archetypal use case for the new dao system is to obtain feature | ||
parity with the current governance module. | ||
parity with the current governance module. | ||
|
||
# User story | ||
|
||
A community member, Alice, wants to submit an on-chain proposal to change a parameter, the average number of blocks per year, which is used to calculate the inflation rate for the chain. To do this Alice first asks in a chat forum discord for instance whether this is a good idea and something the community would like to see happen. There is some initial discussion to confirm that this is in fact something the community wants. Another community member, Bob, also offers to collaborate on the proposal. | ||
|
||
Alice and Bob have a zoom call and start working in a google doc to draft the proposal synchronously, after which Alice finishes the draft and Bob reviews her work. Alice then opens a pull request on the governance repo that includes the text document as well as the json message required to make the parameter proposal on chain. | ||
|
||
Alice solicits community feedback on the PR, sharing it to the Discord and among validators, and is asked to make some minor changes, which are completed before the PR is finalized and merged by the governance repo owner. | ||
Once the proposal has been finalized an IPFS hash of the README.md is added to the json. | ||
The proposal is then submitted on chain through the CLI and a Cosmos forum post is made to notify the community that the proposal has been submitted. Links to the forum post are then shared in various community channels and on twitter. The merits of the proposal are discussed in these respective channels and validators / ATOM holders vote. | ||
|
||
|
||
## Basic Implementation | ||
|
||
In this situation, the staking account creates and manages a group containing | ||
validators and delegators with weights tracking the amount of tokens staked. The | ||
`dao` module can create a gov `Polity` in which members can make proposals to | ||
change params and spend community funds. Proposals contain abstract messages so | ||
it is up to the other modules, `params` and `distribution` to grant authority | ||
and safely update authority when it changes [NOTE: I'm not sure how the `authz` | ||
comes into this]. | ||
|
||
The `ProposalFilter` is used to ensure a minimum deposit is fulfilled. A | ||
proposal should include a transfer of the deposit back to the proposer. | ||
|
||
The `DecisionPolicy` should use a `ThresholdPolicy` | ||
|
||
## Further Options | ||
|
||
1. **Creating a council** - the chain may want to delegate responsibility for | ||
certain parts of the network to be managed to a subgroup. To do this you | ||
would: | ||
- Create a new proposal with the messages to create a new group with the | ||
members and weights of the council members. Set the admin as the parent | ||
`Polity` so that they can update the member set when needed. Add the create | ||
polity message setting the parent chain as |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Off-Chain Governance |