Joystream / joystream

Joystream Monorepo
http://www.joystream.org
GNU General Public License v3.0
1.42k stars 115 forks source link

runtime: proposal author should be able to withdraw/cancel proposals after votes have been cast #4967

Open mochet opened 10 months ago

mochet commented 10 months ago

Problem

Currently, when a proposal has 1 or more votes on it, the proposal author cannot cancel it. This means that if they need to issue an updated version of the proposal, the outdated/incorrect proposal must wait until council members to proactively reject it--until this is done, 2 proposals for the same thing will actively exist. This can lead to confusion/inadvertently having 2 proposals be approved for the same thing (such as budget double spends) Forum thread discussing this a bit: https://pioneerapp.xyz/#/forum/thread/701

This is not a major issue, but the Joystream DAO generates many hundreds of proposals and through gaps in communication and coordination there can be situations in which "outdated" proposals may inadvertently be approved and this may cause issues.

Generally speaking, even if a "double spent" even happens via 2 competing proposals both being approved it is assumed the WG lead would act honestly to return funds, but this issue should still be noted.

Solution

  1. Expensive solution: change the runtime so that after a vote has been cast but before the proposal enters a gracing period it can be cancelled/withdrawn by the original proposal author at any time
  2. Cheaper solution (maybe): have some sort of a way for the proposal author to signal via metaprotocol that the proposal is "outdated" which would trigger Pioneer to disallow any further voting on it (thereby preventing it from possibly being passed).
  3. Much cheaper solution: Since we are already getting proposal labels in a future metaprotocol/Pioneer upgrade, a specific label could be created which functions the same as number 2 (there is some room for abuse here, but it seems unlikely to be an issue)