Skip to content
This repository has been archived by the owner on Feb 9, 2025. It is now read-only.

Commit

Permalink
Quadratic Voting: Remove maxVoterWeight after discussions with Solana…
Browse files Browse the repository at this point in the history
… Labs about how to track maxVoterWeight.

A summary of the discussion:

This is an issue that also applies to VSR DAOs, but that it is essentially a UX issue, and relates to the decision of "how to set a quorum correctly"?

Essentially - in "normal" DAOs, you set the quorum as a percentage of the total vote power, where vote power = token supply.

With QV DAOs, the total vote power is a function of total supply and distribution.

If the distribution is wide and egalitarian (uniform distribution of tokens), the total power is higher than if the distribution is narrow and centralised in a few whales (long-tail distribution).

So this leads to two facts:
- calculating max weight is complicated and changes over time - we could do it, but it would require changes in the core program as mentioned.
- setting the quorum as a percentage of the max weight is not that useful, since, depending on the distribution, that percentage may be reachable by one or two whales (note, this is even worse in token-voting DAOs.

As a result, we decided it is currently not necessary to calculate an accurate max weight, and quorum will be determined based on the token supply, with potentially some UI help to explain how that is affected by QV.
  • Loading branch information
dankelleher committed Jan 19, 2024
1 parent 6d5c986 commit f966051
Show file tree
Hide file tree
Showing 15 changed files with 49 additions and 819 deletions.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
[workspace]
members = [
"programs/*"
"programs/gateway",
"programs/quadratic",
"programs/realm-voter",
"programs/nft-voter",
]

This file was deleted.

6 changes: 0 additions & 6 deletions programs/quadratic/src/instructions/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,3 @@ mod create_voter_weight_record;

pub use update_voter_weight_record::*;
mod update_voter_weight_record;

pub use create_max_voter_weight_record::*;
mod create_max_voter_weight_record;

pub use update_max_voter_weight_record::*;
mod update_max_voter_weight_record;

This file was deleted.

8 changes: 0 additions & 8 deletions programs/quadratic/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,6 @@ pub mod quadratic {
log_version();
instructions::update_voter_weight_record(ctx)
}
pub fn create_max_voter_weight_record(ctx: Context<CreateMaxVoterWeightRecord>) -> Result<()> {
log_version();
instructions::create_max_voter_weight_record(ctx)
}
pub fn update_max_voter_weight_record(ctx: Context<UpdateMaxVoterWeightRecord>) -> Result<()> {
log_version();
instructions::update_max_voter_weight_record(ctx)
}
}

fn log_version() {
Expand Down
94 changes: 0 additions & 94 deletions programs/quadratic/src/state/max_voter_weight_record.rs

This file was deleted.

3 changes: 0 additions & 3 deletions programs/quadratic/src/state/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,5 @@ pub mod registrar;
pub use voter_weight_record::*;
pub mod voter_weight_record;

pub use max_voter_weight_record::*;
pub mod max_voter_weight_record;

pub use quadratic_coefficients::*;
pub mod quadratic_coefficients;
74 changes: 0 additions & 74 deletions programs/quadratic/tests/create_max_voter_weight_record.rs

This file was deleted.

Loading

0 comments on commit f966051

Please sign in to comment.