Joystream / joystream

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

Set the general, and specific, parameters for each proposal #236

Closed bwhm closed 4 years ago

bwhm commented 4 years ago

See #234

bwhm commented 4 years ago

Assumptions

Using the following ProposalParamemeters, that I interpret as outlined below:

pub struct ProposalParameters<BlockNumber, Balance> {
    /// During this period, votes can be accepted
    pub voting_period: BlockNumber,

    /// A pause before execution of the approved proposal. Zero means approved proposal would be
    /// executed immediately.
    pub grace_period: BlockNumber,

    /// Quorum percentage of approving voters required to pass the proposal.
    pub approval_quorum_percentage: u32,

    /// Approval votes percentage threshold to pass the proposal.
    pub approval_threshold_percentage: u32,

    /// Quorum percentage of voters required to slash the proposal.
    pub slashing_quorum_percentage: u32,

    /// Slashing votes percentage threshold to slash the proposal.
    pub slashing_threshold_percentage: u32,

    /// Proposal stake
    pub required_stake: Option<Balance>,
}

Say we have 50 CMs:

For a proposal to pass, both approval_quorum_percentage and approval_threshold_percentage has to be true at the same time. Again, let:

...the vote passes, and will be active after end of grace_period

Same logic for slashing, so we must ensure both cannot occur simultaneously.

General

"Default" values

As for other values that needs to be correlated with the issuance, I'm setting required_stake as a percentage of issuance. This is probably ideal either, but should be better than a fixed value.

Evict Storage Provider

Proposal Parameters Value
voting_period 43200
grace_period 0
approval_quorum_percentage 50%
approval_threshold_percentage 75%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.1%

Rationale:

Set Storage Role Params

Proposal Parameters Value
voting_period 43200
grace_period 14400
approval_quorum_percentage 75%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.25%

Rationale:

Set Max Validator Count

Proposal Parameters Value
voting_period 43200
grace_period 0
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.25%

Rationale:

Set Lead

Proposal Parameters Value
voting_period 43200
grace_period 0
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.25%

Rationale:

Set WG Mint Capacity

Proposal Parameters Value
voting_period 43200
grace_period 0
approval_quorum_percentage 50%
approval_threshold_percentage 75%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.25%

Rationale:

Set Council Mint Capacity

Dropped Will not be implemented as a proposal.

Runtime Upgrade

Proposal Parameters Value
voting_period 72000
grace_period 72000
approval_quorum_percentage 80%
approval_threshold_percentage 100%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 1%

Rationale:

Set Election Parameters
Proposal Parameters Value
voting_period 72000
grace_period * +1
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.75%

Rationale:

Spending Proposal
Proposal Parameters Value
voting_period 72000
grace_period 14400
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.25%

Rationale:

Text/signal Proposal
Proposal Parameters Value
voting_period 72000
grace_period 0.
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 0.25%

Rationale:

bwhm commented 4 years ago

Instead of updating the comment, I'm making a new comment. Won't elaborate here, just numbers:

Evict Storage Provider

Proposal Parameters Value
voting_period 43200
grace_period 0
approval_quorum_percentage 50%
approval_threshold_percentage 75%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 25000

Set Storage Role Params

Proposal Parameters Value
voting_period 43200
grace_period 14400
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 100000

Set Max Validator Count

Proposal Parameters Value
voting_period 43200
grace_period 14400
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 100000

Set Lead

Proposal Parameters Value
voting_period 43200
grace_period 0
approval_quorum_percentage 60%
approval_threshold_percentage 75%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 50000

Set WG Mint Capacity

Proposal Parameters Value
voting_period 43200
grace_period 0
approval_quorum_percentage 60%
approval_threshold_percentage 75%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 50000

Runtime Upgrade

Proposal Parameters Value
voting_period 72000
grace_period 72000
approval_quorum_percentage 80%
approval_threshold_percentage 100%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 1000000
Set Election Parameters
Proposal Parameters Value
voting_period 72000
grace_period 100800
approval_quorum_percentage 66%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 200000
Spending Proposal
Proposal Parameters Value
voting_period 72000
grace_period 14400
approval_quorum_percentage 60%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 25000
Text/signal Proposal
Proposal Parameters Value
voting_period 72000
grace_period 0
approval_quorum_percentage 60%
approval_threshold_percentage 80%
slashing_quorum_percentage 60%
slashing_threshold_percentage 80%
required_stake 25000
shamil-gadelshin commented 4 years ago

Released.