Allow governance proposals to have native pipelining #9861
Description
Summary
Often we pipeline governance proposals, that are only intended to execute conditioned upon another governance proposal passing. These have been commonly used throughout the cosmos hub's history, and a number of other chains, due to the latency of voting.
To my knowledge there hasn't been a pipeline fault yet, where the base proposal failed, and the propoals later in the pipeline that depended on its success had to have their votes switched to reflect this.
It should be possible to have governance proposals get "native pipelining", so that if the proposal whose success they are conditioned on fails, then the new proposal gets automatically rejected. This way voters no longer have to worry about this pipeline fault risk, and only vote after the conditioned upon proposal has been accepted.
Problem Definition
Its natural to want pipelined proposals so that governance can act in a more timely manner. However, the mechanics of pipelining requires voters to be online in the latter half, and less able to "vote and forget" in the earlier half.
Proposal
Allow all governance proposals to optionally specify a parameter for a proposal whose success they are conditioned upon. E.g. a parameter in the proposal file called depends_on_proposal
. If its set, the new governance proposal can only get accepted / enacted on chain if what it depends on passes.
And then in the governance hooks, whenever a proposal gets decided, and an event is emitted, the governance module checks if there was any proposal conditioned upon it. If there was, and the conditioned upon proposal was rejected, it also rejects the proposal that has this pipeline condition, and immediately closes it.
For Admin Use
- Not duplicate issue
- Appropriate labels applied
- Appropriate contributors tagged
- Contributor assigned/self-assigned
Activity