Browse Source

Merge pull request #2307 from bwhm/antioch-params

Antioch params
shamil-gadelshin 3 years ago
parent
commit
eb91c7676c

+ 1 - 1
.github/workflows/run-network-tests.yml

@@ -103,7 +103,7 @@ jobs:
       - name: Ensure tests are runnable
         run: yarn workspace network-tests build
       - name: Execute network tests
-        run: RUNTIME=babylon tests/network-tests/run-tests.sh full
+        run: RUNTIME=antioch tests/network-tests/run-tests.sh full
 
   basic_runtime:
     name: Integration Tests (New Chain)

+ 1 - 1
Cargo.lock

@@ -2393,7 +2393,7 @@ dependencies = [
 
 [[package]]
 name = "joystream-node-runtime"
-version = "9.0.1"
+version = "9.1.0"
 dependencies = [
  "frame-benchmarking",
  "frame-executive",

+ 5 - 5
node/src/chain_spec/mod.rs

@@ -255,7 +255,7 @@ pub fn testnet_genesis(
                 .collect(),
         }),
         pallet_staking: Some(StakingConfig {
-            validator_count: 20,
+            validator_count: 100,
             minimum_validator_count: initial_authorities.len() as u32,
             stakers: initial_authorities
                 .iter()
@@ -294,13 +294,13 @@ pub fn testnet_genesis(
         election: Some(CouncilElectionConfig {
             auto_start: true,
             election_parameters: ElectionParameters {
-                announcing_period: 2 * DAYS,
+                announcing_period: 4 * DAYS,
                 voting_period: 1 * DAYS,
                 revealing_period: 1 * DAYS,
-                council_size: 6,
-                candidacy_limit: 25,
+                council_size: 16,
+                candidacy_limit: 50,
                 min_council_stake: 1_000,
-                new_term_duration: 10 * DAYS,
+                new_term_duration: 1 * DAYS,
                 min_voting_stake: 100,
             },
         }),

+ 7 - 7
pioneer/packages/joy-proposals/src/validationSchema.ts

@@ -40,18 +40,18 @@ const REVEALING_PERIOD_MIN = 14400;
 const REVEALING_PERIOD_MAX = 28800;
 const MIN_COUNCIL_STAKE_MIN = 1;
 const MIN_COUNCIL_STAKE_MAX = 100000;
-const NEW_TERM_DURATION_MIN = 14400;
-const NEW_TERM_DURATION_MAX = 432000;
+const NEW_TERM_DURATION_MIN = 1;
+const NEW_TERM_DURATION_MAX = 144000;
 const CANDIDACY_LIMIT_MIN = 50;
-const CANDIDACY_LIMIT_MAX = 100;
-const COUNCIL_SIZE_MIN = 4;
-const COUNCIL_SIZE_MAX = 20;
+const CANDIDACY_LIMIT_MAX = 200;
+const COUNCIL_SIZE_MIN = 6;
+const COUNCIL_SIZE_MAX = 40;
 const MIN_VOTING_STAKE_MIN = 1;
 const MIN_VOTING_STAKE_MAX = 100000;
 
 // Spending
 const TOKENS_MIN = 0;
-const TOKENS_MAX = 5000000;
+const TOKENS_MAX = 50000000;
 
 // Set Validator Count
 const MAX_VALIDATOR_COUNT_MIN = 4;
@@ -83,7 +83,7 @@ const WG_MINT_CAP_MAX = 5000000;
 // TODO: Discuss the actual values
 const MIN_REWARD_AMOUNT = 1;
 const MAX_REWARD_AMOUNT = 100000;
-const MIN_REWARD_INTERVAL = 1;
+const MIN_REWARD_INTERVAL = 600; // 1 h
 const MAX_REWARD_INTERVAL = 30 * 14400; // 30 days
 // 3 days margin (voting_period) to prevent FillOpeningInvalidNextPaymentBlock
 // Should we worry that much about it though?

+ 6 - 6
runtime-modules/proposals/codex/src/lib.rs

@@ -83,25 +83,25 @@ pub use proposal_types::{ProposalDetails, ProposalDetailsOf, ProposalEncoder};
 // 'Set working group mint capacity' proposal limit
 const WORKING_GROUP_MINT_CAPACITY_MAX_VALUE: u32 = 5_000_000;
 // Max allowed value for 'spending' proposal
-const MAX_SPENDING_PROPOSAL_VALUE: u32 = 5_000_000_u32;
+const MAX_SPENDING_PROPOSAL_VALUE: u32 = 50_000_000_u32;
 // Max validator count for the 'set validator count' proposal
 const MAX_VALIDATOR_COUNT: u32 = 300;
 // council_size min value for the 'set election parameters' proposal
-const ELECTION_PARAMETERS_COUNCIL_SIZE_MIN_VALUE: u32 = 4;
+const ELECTION_PARAMETERS_COUNCIL_SIZE_MIN_VALUE: u32 = 6;
 // council_size max value for the 'set election parameters' proposal
-const ELECTION_PARAMETERS_COUNCIL_SIZE_MAX_VALUE: u32 = 20;
+const ELECTION_PARAMETERS_COUNCIL_SIZE_MAX_VALUE: u32 = 40;
 // candidacy_limit min value for the 'set election parameters' proposal
 const ELECTION_PARAMETERS_CANDIDACY_LIMIT_MIN_VALUE: u32 = 50;
 // candidacy_limit max value for the 'set election parameters' proposal
-const ELECTION_PARAMETERS_CANDIDACY_LIMIT_MAX_VALUE: u32 = 100;
+const ELECTION_PARAMETERS_CANDIDACY_LIMIT_MAX_VALUE: u32 = 200;
 // min_voting_stake min value for the 'set election parameters' proposal
 const ELECTION_PARAMETERS_MIN_STAKE_MIN_VALUE: u32 = 1;
 // min_voting_stake max value for the 'set election parameters' proposal
 const ELECTION_PARAMETERS_MIN_STAKE_MAX_VALUE: u32 = 100_000_u32;
 // new_term_duration min value for the 'set election parameters' proposal
-const ELECTION_PARAMETERS_NEW_TERM_DURATION_MIN_VALUE: u32 = 14400;
+const ELECTION_PARAMETERS_NEW_TERM_DURATION_MIN_VALUE: u32 = 1;
 // new_term_duration max value for the 'set election parameters' proposal
-const ELECTION_PARAMETERS_NEW_TERM_DURATION_MAX_VALUE: u32 = 432_000;
+const ELECTION_PARAMETERS_NEW_TERM_DURATION_MAX_VALUE: u32 = 144_000;
 // revealing_period min value for the 'set election parameters' proposal
 const ELECTION_PARAMETERS_REVEALING_PERIOD_MIN_VALUE: u32 = 14400;
 // revealing_period max value for the 'set election parameters' proposal

+ 5 - 5
runtime-modules/proposals/codex/src/tests/mod.rs

@@ -347,7 +347,7 @@ fn get_valid_election_parameters() -> ElectionParameters<u64, u64> {
         announcing_period: 14400,
         voting_period: 14400,
         revealing_period: 14400,
-        council_size: 4,
+        council_size: 6,
         candidacy_limit: 50,
         new_term_duration: 14400,
         min_council_stake: 1,
@@ -367,7 +367,7 @@ fn create_set_election_parameters_call_fails_with_incorrect_parameters() {
             Error::<Test>::InvalidCouncilElectionParameterCouncilSize.into(),
         );
 
-        election_parameters.council_size = 21;
+        election_parameters.council_size = 41;
         assert_failed_election_parameters_call(
             election_parameters,
             Error::<Test>::InvalidCouncilElectionParameterCouncilSize.into(),
@@ -381,7 +381,7 @@ fn create_set_election_parameters_call_fails_with_incorrect_parameters() {
         );
 
         election_parameters = get_valid_election_parameters();
-        election_parameters.candidacy_limit = 122;
+        election_parameters.candidacy_limit = 222;
         assert_failed_election_parameters_call(
             election_parameters,
             Error::<Test>::InvalidCouncilElectionParameterCandidacyLimit.into(),
@@ -402,7 +402,7 @@ fn create_set_election_parameters_call_fails_with_incorrect_parameters() {
         );
 
         election_parameters = get_valid_election_parameters();
-        election_parameters.new_term_duration = 10000;
+        election_parameters.new_term_duration = 0;
         assert_failed_election_parameters_call(
             election_parameters,
             Error::<Test>::InvalidCouncilElectionParameterNewTermDuration.into(),
@@ -555,7 +555,7 @@ fn create_spending_proposal_call_fails_with_incorrect_balance() {
                 b"title".to_vec(),
                 b"body".to_vec(),
                 Some(<BalanceOf<Test>>::from(1250u32)),
-                5000001,
+                50000001,
                 2,
             ),
             Err(Error::<Test>::InvalidSpendingProposalBalance.into())

+ 1 - 1
runtime/Cargo.toml

@@ -4,7 +4,7 @@ edition = '2018'
 name = 'joystream-node-runtime'
 # Follow convention: https://github.com/Joystream/substrate-runtime-joystream/issues/1
 # {Authoring}.{Spec}.{Impl} of the RuntimeVersion
-version = '9.0.1'
+version = '9.1.0'
 
 [dependencies]
 # Third-party dependencies

+ 3 - 3
runtime/src/lib.rs

@@ -88,8 +88,8 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
     spec_name: create_runtime_str!("joystream-node"),
     impl_name: create_runtime_str!("joystream-node"),
     authoring_version: 9,
-    spec_version: 0,
-    impl_version: 1,
+    spec_version: 1,
+    impl_version: 0,
     apis: crate::runtime_api::EXPORTED_RUNTIME_API_VERSIONS,
     transaction_version: 1,
 };
@@ -345,7 +345,7 @@ pallet_staking_reward_curve::build! {
     const REWARD_CURVE: PiecewiseLinear<'static> = curve!(
         min_inflation: 0_050_000,
         max_inflation: 0_750_000,
-        ideal_stake: 0_250_000,
+        ideal_stake: 0_300_000,
         falloff: 0_050_000,
         max_piece_count: 100,
         test_precision: 0_005_000,

+ 1 - 1
runtime/src/tests/proposals_integration/mod.rs

@@ -609,7 +609,7 @@ fn set_election_parameters_proposal_execution_succeeds() {
             announcing_period: 14400,
             voting_period: 14400,
             revealing_period: 14400,
-            council_size: 4,
+            council_size: 6,
             candidacy_limit: 50,
             new_term_duration: 14400,
             min_council_stake: 1,

+ 16 - 18
tests/network-tests/src/fixtures/proposalsModule.ts

@@ -417,14 +417,14 @@ export class ElectionParametersProposalFixture extends BaseFixture {
     const proposalTitle: string = 'Testing proposal ' + uuid().substring(0, 8)
     const description: string = 'Testing Election Parameters proposal ' + uuid().substring(0, 8)
 
-    const announcingPeriod: BN = new BN(28800)
-    const votingPeriod: BN = new BN(14400)
-    const revealingPeriod: BN = new BN(14400)
-    const councilSize: BN = await this.api.getCouncilSize()
-    const candidacyLimit: BN = await this.api.getCandidacyLimit()
-    const newTermDuration: BN = new BN(144000)
-    const minCouncilStake: BN = await this.api.getMinCouncilStake()
-    const minVotingStake: BN = await this.api.getMinVotingStake()
+    const announcingPeriod: BN = new BN(1)
+    const votingPeriod: BN = new BN(1)
+    const revealingPeriod: BN = new BN(1)
+    const councilSize: BN = new BN(1)
+    const candidacyLimit: BN = new BN(1)
+    const newTermDuration: BN = new BN(1)
+    const minCouncilStake: BN = new BN(1)
+    const minVotingStake: BN = new BN(1)
 
     // Proposal stake calculation
     // Required stake is hardcoded in runtime-module (but not available as const)
@@ -446,16 +446,14 @@ export class ElectionParametersProposalFixture extends BaseFixture {
     this.api.treasuryTransferBalance(this.proposerAccount, proposalFee.add(proposalStake))
 
     // Proposal creation
-    const proposedAnnouncingPeriod: BN = announcingPeriod.subn(1)
-    const proposedVotingPeriod: BN = votingPeriod.addn(1)
-    const proposedRevealingPeriod: BN = revealingPeriod.addn(1)
-    const proposedCouncilSize: BN = councilSize.addn(1)
-    const proposedCandidacyLimit: BN = new BN(51) // candidacyLimit.addn(1)
-    // assert they are different
-    assert(!candidacyLimit.eq(proposedCandidacyLimit))
-    const proposedNewTermDuration: BN = newTermDuration.addn(1)
-    const proposedMinCouncilStake: BN = minCouncilStake.addn(1)
-    const proposedMinVotingStake: BN = minVotingStake.addn(1)
+    const proposedAnnouncingPeriod: BN = new BN(43199)
+    const proposedVotingPeriod: BN = new BN(28799)
+    const proposedRevealingPeriod: BN = new BN(28799)
+    const proposedCouncilSize: BN = new BN(39)
+    const proposedCandidacyLimit: BN = new BN(199)
+    const proposedNewTermDuration: BN = new BN(143999)
+    const proposedMinCouncilStake: BN = new BN(99999)
+    const proposedMinVotingStake: BN = new BN(99999)
 
     const proposalCreationResult = await this.api.proposeElectionParameters(
       this.proposerAccount,