From 4249248e596a85d1d07434c6ca95489aac496bc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lo=C3=AFs?= <c@elo.tf> Date: Mon, 15 Aug 2022 22:52:35 +0200 Subject: [PATCH] Resolve "Get ParamsAppliedAtGenesis values from json genesis conf" (nodes/rust/duniter-v2s!96) * fix(binary): get ParamsAppliedAtGenesis values from json genesis conf --- end2end-tests/cucumber-genesis/default.json | 8 ++++++++ end2end-tests/cucumber-genesis/wot.json | 8 ++++++++ node/src/chain_spec/gdev.rs | 16 --------------- node/src/chain_spec/gen_genesis_data.rs | 22 ++++++++++----------- resources/gdev.json | 8 ++++++++ 5 files changed, 35 insertions(+), 27 deletions(-) diff --git a/end2end-tests/cucumber-genesis/default.json b/end2end-tests/cucumber-genesis/default.json index 7eb7b1392..9b59a9153 100644 --- a/end2end-tests/cucumber-genesis/default.json +++ b/end2end-tests/cucumber-genesis/default.json @@ -1,6 +1,14 @@ { "first_ud": 1000, "first_ud_reeval": 100, + "genesis_parameters": { + "genesis_certs_expire_on": 100000, + "genesis_certs_min_received": 2, + "genesis_memberships_expire_on": 100000, + "genesis_smith_certs_expire_on": 100000, + "genesis_smith_certs_min_received": 2, + "genesis_smith_memberships_expire_on": 100000 + }, "identities": { "Alice": { "balance": 1000, diff --git a/end2end-tests/cucumber-genesis/wot.json b/end2end-tests/cucumber-genesis/wot.json index f4048b0b1..ac93ccc96 100644 --- a/end2end-tests/cucumber-genesis/wot.json +++ b/end2end-tests/cucumber-genesis/wot.json @@ -1,6 +1,14 @@ { "first_ud": 1000, "first_ud_reeval": 100, + "genesis_parameters": { + "genesis_certs_expire_on": 100000, + "genesis_certs_min_received": 2, + "genesis_memberships_expire_on": 100000, + "genesis_smith_certs_expire_on": 100000, + "genesis_smith_certs_min_received": 2, + "genesis_smith_memberships_expire_on": 100000 + }, "identities": { "Alice": { "balance": 1000, diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs index 04ede2da9..6836f23d3 100644 --- a/node/src/chain_spec/gdev.rs +++ b/node/src/chain_spec/gdev.rs @@ -96,14 +96,6 @@ pub fn development_chain_spec() -> Result<ChainSpec, String> { ) }, Some(get_authority_keys_from_seed("Alice").encode()), - Some(super::gen_genesis_data::ParamsAppliedAtGenesis { - genesis_certs_expire_on: 100_000, - genesis_certs_min_received: 2, - genesis_memberships_expire_on: 100_000, - genesis_smith_certs_expire_on: 100_000, - genesis_smith_certs_min_received: 2, - genesis_smith_memberships_expire_on: 100_000, - }), ) } else { Ok(ChainSpec::from_genesis( @@ -191,14 +183,6 @@ pub fn gen_live_conf() -> Result<ChainSpec, String> { ) }, None, - Some(super::gen_genesis_data::ParamsAppliedAtGenesis { - genesis_certs_expire_on: 2_102_400, - genesis_certs_min_received: 3, - genesis_memberships_expire_on: 1_051_200, - genesis_smith_certs_expire_on: 2_102_400, - genesis_smith_certs_min_received: 3, - genesis_smith_memberships_expire_on: 1_051_200, - }), ) } diff --git a/node/src/chain_spec/gen_genesis_data.rs b/node/src/chain_spec/gen_genesis_data.rs index fccfe574c..1b47ee55d 100644 --- a/node/src/chain_spec/gen_genesis_data.rs +++ b/node/src/chain_spec/gen_genesis_data.rs @@ -41,7 +41,7 @@ pub struct GenesisData<Parameters: DeserializeOwned, SessionKeys: Decode> { pub technical_committee_members: Vec<AccountId>, } -#[derive(Default)] +#[derive(Default, Deserialize, Serialize)] pub struct ParamsAppliedAtGenesis { pub genesis_certs_expire_on: u32, pub genesis_certs_min_received: u32, @@ -55,6 +55,7 @@ pub struct ParamsAppliedAtGenesis { struct GenesisConfig<Parameters> { first_ud: u64, first_ud_reeval: u32, + genesis_parameters: ParamsAppliedAtGenesis, identities: BTreeMap<String, Idty>, #[serde(default)] parameters: Parameters, @@ -87,22 +88,12 @@ struct SmithData { pub fn generate_genesis_data<CS, P, SK, F>( f: F, maybe_force_authority: Option<Vec<u8>>, - params_applied_at_genesis: Option<ParamsAppliedAtGenesis>, ) -> Result<CS, String> where P: Default + DeserializeOwned, SK: Decode, F: Fn(GenesisData<P, SK>) -> CS, { - let ParamsAppliedAtGenesis { - genesis_certs_expire_on, - genesis_certs_min_received, - genesis_memberships_expire_on, - genesis_smith_certs_expire_on, - genesis_smith_certs_min_received, - genesis_smith_memberships_expire_on, - } = params_applied_at_genesis.unwrap_or_default(); - let genesis_timestamp: u64 = if let Ok(genesis_timestamp) = std::env::var("DUNITER_GENESIS_TIMESTAMP") { genesis_timestamp @@ -137,6 +128,15 @@ where sudo_key, first_ud, first_ud_reeval, + genesis_parameters: + ParamsAppliedAtGenesis { + genesis_certs_expire_on, + genesis_certs_min_received, + genesis_memberships_expire_on, + genesis_smith_certs_expire_on, + genesis_smith_certs_min_received, + genesis_smith_memberships_expire_on, + }, parameters, identities, smith_identities, diff --git a/resources/gdev.json b/resources/gdev.json index ea5d8bb38..aa09f2d51 100644 --- a/resources/gdev.json +++ b/resources/gdev.json @@ -1,6 +1,14 @@ { "first_ud": 10000, "first_ud_reeval": 100800, + "genesis_parameters": { + "genesis_certs_expire_on": 2102400, + "genesis_certs_min_received": 3, + "genesis_memberships_expire_on": 1051200, + "genesis_smith_certs_expire_on": 2102400, + "genesis_smith_certs_min_received": 3, + "genesis_smith_memberships_expire_on": 1051200 + }, "identities": { "Elois": { "balance": 10000, -- GitLab