Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Olympia Runtime Params #3451

Closed
17 tasks
bwhm opened this issue Mar 18, 2022 · 1 comment
Closed
17 tasks

Olympia Runtime Params #3451

bwhm opened this issue Mar 18, 2022 · 1 comment
Assignees

Comments

@bwhm
Copy link
Member

bwhm commented Mar 18, 2022

Unless noted otherwise, all changes from runtime/src/lib.rs

Proposals General

file

proposalType voting_period grace_period appr_q% appr_t% slash_q% slash_t% required_stake const
set_max_validator_count_proposal 43200 0 66 80 60 80 100000 1
runtime_upgrade_proposal 72000,28800 72000,14400 80 100 60 80 1000000,10000000 1
signal_proposal 72000 0 60 80 60 80 25000 1
funding_request_proposal 72000 14400,0 60 80 60 80 25000 1
create_working_group_lead_opening_proposal 72000 0 60 80 60 80 100000 1
fill_working_group_lead_opening_proposal 43200 0 60 75 60 80 50000 1
update_working_group_budget_proposal 43200 0 60 75 60 80 50000 1
decrease_working_group_lead_stake_proposal 43200 0 60 75 60 80 50000 1
slash_working_group_lead_proposal 43200 0 60 75 60 80 50000 1
set_working_group_lead_reward_proposal 43200 0 60 75 60 80 50000 1
terminate_working_group_lead_proposal 72200 0 66 80 60 80 100000 1
amend_constitution_proposal 72200 72000,14400 80 100 60 80 1000000 2
cancel_working_group_lead_opening_proposal 43200 0 60 75 60 80 50000 1
set_membership_price_proposal 43200 144000 60 75 60 80 50000 1
set_council_budget_increment_proposal 72000 43200100800 66 80 60 80 200000 1
set_councilor_reward_proposal 72000 201600,100800 66 80 60 80 200000 1
set_initial_invitation_balance_proposal 72000 432000 60 75 60 80 50000 1
set_membership_lead_invitation_quota_proposal 72000 432000 60 75 60 80 50000 1
set_referral_cut_proposal 43200 144000 60 75 60 80 50000 1
set_invitation_count_proposal 72000 432000 60 75 60 80 50000 1
create_blog_post_proposal 72000 144000 60 80 60 80 25000 1
edit_blog_post_proposal 72000 144000 60 80 60 80 25000 1
lock_blog_post_proposal 72000 144000 60 80 60 80 25000 1
unlock_blog_post_proposal 72000 144000 60 80 60 80 25000 1
veto_proposal_proposal 72200,100800 0 75 80 60 66 1000000 1

Purpose:

  • runtime_upgrade_proposal - This is for Jsgenesis' convenience. With these values, we can make propose a runtime upgrade, and have it execute >72h later.
  • funding_request_proposal - Although there are arguments for keeping some grace here, the convenience for the users outweigh the risk. In an ideal world, we'd like to have the grace_period be a function of the spending, but hard to get right...
  • amend_constitution_proposal - Let's rather have use the constitutionality than the grace_period to "secure" this.
  • set_membership* - No grace needed.
  • set_council* - Let's make these a council terms worth. Could use constitutionality, but let's rather vary.
  • set_initial_invitation_balance_proposal,set_referral_cut_proposal,set_invitation_count_proposal - No grace needed.
  • *blog_post_proposal - No grace needed.
  • veto_proposal_proposal - The voting_period needs to match the longest grace_period

Working Groups

MinUnstakingPeriodLimit

pub const MinUnstakingPeriodLimit: u32 = 43200;

  • Preferably change the runtime constraint from > to >=43200
    This should be the case already, with small fixes #3370:
    file
    ensure!(
        stake_policy.leaving_unstaking_period >= T::MinUnstakingPeriodLimit::get(),
        Error::<T, I>::UnstakingPeriodLessThanMinimum
    );
  • If there are any possible secondary effects of the above, instead:
    pub const MinUnstakingPeriodLimit: u32 = 43199;

Purpose:
Annoying with an effective 43201 limit :)

Note that for:

pub const MinimumApplicationStake: Balance = 2000;
pub const LeaderOpeningStake: Balance = 2000;

It's already >=2000

LeaderOpeningStake

pub const LeaderOpeningStake: Balance = 2000;

  • Change to 2500000

Purpose:
This should ideally be optimized for each group, but let's instead use a somewhat higher "bad" value, so there is some downside risk for bad actors.
For workers, it's fine to give the Lead lots of wiggle room.

GatewayRewardPeriod/DistributionRewardPeriod

Both are:

    pub const GatewayRewardPeriod: u32 = 14400 + 50;
    pub const DistributionRewardPeriod: u32 = 14400 + 50;
  • Change one of them to 14400+90:
    This should be the case already, with small fixes #3370.

Purpose:
Error?

Council/Referendum

Term Length

pub const VoteStageDuration: BlockNumber = 100;
pub const RevealStageDuration: BlockNumber = 50;
pub const IdlePeriodDuration: BlockNumber = 400;
pub const AnnouncingPeriodDuration: BlockNumber = 200;
  • Change to:
pub const VoteStageDuration: BlockNumber = 14400;
pub const RevealStageDuration: BlockNumber = 14400;
pub const IdlePeriodDuration: BlockNumber = 57600;
pub const AnnouncingPeriodDuration: BlockNumber = 28800;

Purpose:

  • Gives a week Council (57600+14400+14400+14400 = 100800)
  • Avoids a too long "dead" period when we launch the new network.

ElectedMemberRewardPeriod

pub const ElectedMemberRewardPeriod: BlockNumber = 10;
I assume this is the Council Members equivalent to GatewayRewardPeriod etc, although they are in u32.

  • Change to:
    pub const ElectedMemberRewardPeriod: BlockNumber = 14400;

Purpose:

  • A council term will likely always be divisible by 14400, so it seems preferable to not add n blocks at the end.

Council Budget

pub const DefaultBudgetIncrement: u64 = 1000;
pub const BudgetRefillPeriod: BlockNumber = 1000;
  • Change to:
pub const DefaultBudgetIncrement: u64 = 5000000;
pub const BudgetRefillPeriod: BlockNumber = 14400;

Purpose:
Back of the envelope calculations...

Bounties

    pub const ClosedContractSizeLimit: u32 = 50;
    pub const MinCherryLimit: Balance = 10;
    pub const MinFundingLimit: Balance = 10;
    pub const MinWorkEntrantStake: Balance = 100;
  • Change to:
    pub const ClosedContractSizeLimit: u32 = 50;
    pub const MinCherryLimit: Balance = 1000;
    pub const MinFundingLimit: Balance = 1000;
    pub const MinWorkEntrantStake: Balance = 1000;

AND/OR
pub const ExistentialDeposit: u128 = 10;

  • Change to:
    pub const ExistentialDeposit: u128 = 1;

Purpose:
Considering 1JOY is so little, it might not be worth changing this, but the combination of these are pretty bad. I think we'll get a lot of questions if we go directly to 10, so lets leave it at 1.

┆Issue is synchronized with this Asana task by Unito

@mnaamani
Copy link
Member

Updated parameters in #3462

Also set council params to match Giza network values

CouncilSize=12
MinNumberOfExtraCandidates=0
MinCandidateStake=1000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants