Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Redesign Democracy pallet #5294

Merged
merged 23 commits into from
Mar 21, 2020
Merged

Redesign Democracy pallet #5294

merged 23 commits into from
Mar 21, 2020

Conversation

gavofyork
Copy link
Member

@gavofyork gavofyork commented Mar 18, 2020

Closes #5248

  • Lazy locking and progressive tallying:
    • Avoids large calculation/i/o access at the end of a vote.
    • Avoids unbounded storage.
  • Repots various bits of code.
  • Makes vote delegation efficient and safe.
  • Introduces proxy delegating.
  • Introduces non-locked split voting, good for when parachains want to vote.
  • Introduces instant-scheduling, allowing a safe-guarded way for a proposal to make it through almost immediately.

TODO:

  • Update tests
  • Tests for new functionality
    • locking/unlocking/consolidation & moving between voting/delegating
    • proxy delegation & proxy unvoting
    • vote-reaping (third-party)
    • split-voting
    • instant scheduling
    • delegation/undelegation
    • over-voting should fail
  • Update runtimes
  • Rejig turnouts
    • Delegated capital should count
    • Should use full capital even when there's no conviction

CC @jacogr @shawntabrizi

@gavofyork gavofyork added the A3-in_progress Pull request is in progress. No review needed at this stage. label Mar 18, 2020
@gavofyork gavofyork added this to the 2.0 milestone Mar 18, 2020
@gavofyork gavofyork changed the title Progressive Democracy tallying Redesign Democracy pallet Mar 19, 2020
@gavofyork gavofyork added A0-please_review Pull request needs code review. and removed A3-in_progress Pull request is in progress. No review needed at this stage. labels Mar 19, 2020
@gavofyork gavofyork marked this pull request as ready for review March 19, 2020 22:57
frame/democracy/src/lib.rs Outdated Show resolved Hide resolved
frame/democracy/src/lib.rs Outdated Show resolved Hide resolved
frame/democracy/src/vote_threshold.rs Show resolved Hide resolved
frame/democracy/src/vote_threshold.rs Show resolved Hide resolved
frame/democracy/src/lib.rs Outdated Show resolved Hide resolved
Copy link
Member

@shawntabrizi shawntabrizi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@gavofyork gavofyork merged commit 2eb9c26 into master Mar 21, 2020
@gavofyork gavofyork deleted the gav-progressive-democracy branch March 21, 2020 15:08
bkchr pushed a commit that referenced this pull request Mar 24, 2020
* Repot a bit of democracy code

* Basic logic is drafted

* Lazy democracy builds.

* Add non-locked split-voting and instant-scheduling.

* Introduce delegation that works.

* Builds again.

* Indentation

* Building.

* Docs and migration

* Fix half of the tests

* Fix up & repot tests

* Fix runtime build

* Update docs

* Docs

* Nits.

* Turnout counts full capital

* Delegations could towards capital

* proxy delegation & proxy unvoting

* Fix

* Tests for split-voting

* Add missing file

* Persistent locking.
romanb pushed a commit to romanb/substrate that referenced this pull request Apr 2, 2020
* Repot a bit of democracy code

* Basic logic is drafted

* Lazy democracy builds.

* Add non-locked split-voting and instant-scheduling.

* Introduce delegation that works.

* Builds again.

* Indentation

* Building.

* Docs and migration

* Fix half of the tests

* Fix up & repot tests

* Fix runtime build

* Update docs

* Docs

* Nits.

* Turnout counts full capital

* Delegations could towards capital

* proxy delegation & proxy unvoting

* Fix

* Tests for split-voting

* Add missing file

* Persistent locking.
@apopiak apopiak added runtime-migration and removed A0-please_review Pull request needs code review. labels Jun 5, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refactor Democracy
5 participants