Description
Summary
Our existing governance proposals are based on the SDK version v1beta1
of the x/gov module. Updating to v1
of the x/gov module requires breaking changes.
Problem Definition
Instead of defining governance proposal handlers and proposal types, v1
of the gov module simply executes a list of messages. This is beneficial for many reasons, but one primary one is the ability to atomically commit multiple messages in a single governance proposal. For us this could help with:
- updating many expired clients at once
- simplifying
UpgradeProposal
(currently wraps calls to x/upgrade), an IBC chain upgrade could simply be combined with a x/upgrade message - delegation of responsibility for IBC related proposals to trusted groups (edit)
The new approach is also cleaner as there is less fragmentation in handlers/types.
Using v1beta1
with a MsgExecLegacyContent
works alright. You can still atomically commit multiple messages with legacy code, but it does not allow for delegation of authority to trusted groups
Proposal
Readjust our proposal handlers into msg_server handler and change our proposal types to message types. The fixes are primarily for code hygiene and keeping up to date with the SDK, so on the lower priority side. This issue should be split up into smaller issues for each proposal type.
The existing governance handlers should be removed (and the registration on the router in simapp should be removed). We should add migration documentation explaining how to use the messages
Approved signers can be a parameter in IBC
Issues and tasks
- Add message and rpc handler to recover clients using v1 governance proposals #3672
- Add message and rpc handler to upgrade clients using v1 governance proposals #3673
- Remove legacy governance v1beta1 proposal handlers #3674
- Support ProposalMsgs interface function #3151
- Update governance proposal section of the docs to indicate from which version of ibc-go we support submitting proposals with the
submit-proposal
command.
For Admin Use
- Not duplicate issue
- Appropriate labels applied
- Appropriate contributors tagged/assigned
Metadata
Assignees
Type
Projects
Status
Done 🥳
Activity