aragon / client

(Aragon 1) Create and manage decentralized organizations on Ethereum.
https://client.aragon.org
GNU Affero General Public License v3.0
831 stars 274 forks source link

Voting App should have option to disable execution until duration elapses #590

Closed lkngtn closed 5 years ago

lkngtn commented 5 years ago

Is your feature request related to a problem? Please describe. There are instances where it is important for a vote to stay open and not execute until the full duration has passed. In some cases this is critical for the security assumptions of a governance processes, EG a proposal cannot be executed regardless of support until Y time has passed (and potentially those impacted by the proposal have had time to act). Similarly, but significantly less of an issue, is the use of an existing voting instance to perform a non-binding poll (new vote option), which can be useful in collecting sentiment--in these cases the execution of the vote doesn't matter and but if the vote is executed early, some participants who would have otherwise been able to cast a vote would not be able to.

Describe the solution you'd like The voting app instance should have a role for execute action before duration. Votes should not automatically execute when they reach full support unless someone with the role sends a transaction to execute the vote. This would give organizations the flexibility to execute actions early or not, and can set up governance processes which depend on votes never executing before the duration has elapsed.

Describe alternatives you've considered This could also be made a parameter for voting app installation, but this would be less flexible and not offer any other benefits.

izqui commented 5 years ago

I think we should also add a setting to schedule votes to start at a future timestamp, if the time interval is lower than a global voting app setting

lkngtn commented 5 years ago

I think we should also add a setting to schedule votes to start at a future timestamp, if the time interval is lower than a global voting app setting

Agree, but that feels like a separate issue so I created it. https://github.com/aragon/aragon/issues/591

sohkai commented 5 years ago

Was thinking about letting users choose if they'd like "optimistic" execution during vote creation, but I like the role better because it allows users to set up more reliable governance structures without having to remember to tick (or untick) a checkbox each time they create a vote.

Our templates can also give this role to the creator of the org, so that they don't have to manually execute everything at the start with a separate transaction.

facuspagnuolo commented 5 years ago

Related to this issue, I proposed here a global setting managed by a role to allow/disallow early execution in the whole voting app. It is a bit simpler and it is backwards compatible as is. OTOH, the approach you propose allows to control the early execution per vote and per voter, which could be held in a separate governance process for sure.

sohkai commented 5 years ago

Done in https://github.com/aragon/aragon-apps/pull/886.