-
Notifications
You must be signed in to change notification settings - Fork 377
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
Committee Gov Module #386
Committee Gov Module #386
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did a first pass and tested the module. Overall, the code is great and doesn't sacrifice robustness or clarity despite the module's complexity. I left some thoughts and a few revisions.
For the open questions:
- Adding no votes/vetos is part of a larger conversation about incentive structures. Until we scope out slashing mechanisms we're already accepting a simplified voting process, so I don't think we need to worry about it until then.
- I like ints but don't have a strong preference. Could also add additional committee field
name
(or put a committee's name in the existingdescription
field). - Does the version upgrade impact our ability to fork Cosmos-sdk code?
- The tests capture the spirit of the module very well. The test suite is light in terms of line count (and maybe lines tested?) but it validates the core functionality.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking very solid. Mostly general/stylistic comments.
Co-Authored-By: Denali Marsh <denali@kava.io> Co-Authored-By: Kevin Davis <karzak@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. I'll review again after the migration to 0.38
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tACK. Last things (for follow-on PRs) are adding spec and updating TessAppImportExport
to include committee module.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK
type Committee struct { | ||
ID uint64 `json:"id" yaml:"id"` | ||
Description string `json:"description" yaml:"description"` | ||
Members []sdk.AccAddress `json:"members" yaml:"members"` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
q: how are members added? through regular param change proposals?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The module has a couple of gov proposals that create/update/delete committees. So its up to the normal gov to add members, change permissions etc.
In theory these proposals could be submitted to committees, allowing them to change themselves or each other, but it's disabled currently.
In case something going wrong, we need a fast governance mechanism. This module creates "committees" that can vote on governance proposals quickly to update params, shutdown msg types, etc.
Disabling msg types will be handled by a different module.
See
x/committee/spec/README.md
for an overview of how committees work.Open Questions