diff --git a/end2end-tests/cucumber-genesis/bad_distance.json b/end2end-tests/cucumber-genesis/bad_distance.json index cb040ba2ccf19837a14c8a7d488aeb466d9a0019..7016976b7303f667a136dacc022ea427a6c1cad1 100644 --- a/end2end-tests/cucumber-genesis/bad_distance.json +++ b/end2end-tests/cucumber-genesis/bad_distance.json @@ -118,6 +118,7 @@ }, "parameters": { "babe_epoch_duration": 30, + "distance_evaluation_period": 7, "cert_period": 15, "cert_max_by_issuer": 10, "cert_min_received_cert_to_issue_cert": 2, diff --git a/end2end-tests/cucumber-genesis/default.json b/end2end-tests/cucumber-genesis/default.json index 2912937ff5b82608ade3116bf4fd837bffbe2ea1..f616d585bcb97cd7bd81375dc1d254245a97bfb7 100644 --- a/end2end-tests/cucumber-genesis/default.json +++ b/end2end-tests/cucumber-genesis/default.json @@ -52,6 +52,7 @@ }, "parameters": { "babe_epoch_duration": 30, + "distance_evaluation_period": 7, "cert_period": 15, "cert_max_by_issuer": 10, "cert_min_received_cert_to_issue_cert": 2, diff --git a/end2end-tests/cucumber-genesis/wot.json b/end2end-tests/cucumber-genesis/wot.json index 0bc2d54571b77d96583fcfc0f231576ea5ce33bd..a19f5f63f059fdea3206dfb87f27870b49edcaa2 100644 --- a/end2end-tests/cucumber-genesis/wot.json +++ b/end2end-tests/cucumber-genesis/wot.json @@ -88,6 +88,7 @@ }, "parameters": { "babe_epoch_duration": 30, + "distance_evaluation_period": 7, "cert_period": 2, "cert_max_by_issuer": 10, "cert_min_received_cert_to_issue_cert": 2, diff --git a/node/src/chain_spec/g1.rs b/node/src/chain_spec/g1.rs index 78f879a8c8e75c9c6775634e93b75560c2477c9e..f85e92bd120e87e3e85715ab16f3cfaeefd9bac0 100644 --- a/node/src/chain_spec/g1.rs +++ b/node/src/chain_spec/g1.rs @@ -81,6 +81,7 @@ fn get_parameters(_parameters_from_file: &Option<GenesisParameters>) -> CommonPa cert_min_received_cert_to_be_able_to_issue_cert: parameters::MinReceivedCertToBeAbleToIssueCert::get(), cert_validity_period: parameters::ValidityPeriod::get(), + distance_evaluation_period: gtest_runtime::parameters::DistanceEvaluationPeriod::get(), distance_min_accessible_referees: parameters::MinAccessibleReferees::get(), distance_max_depth: parameters::MaxRefereeDistance::get(), smith_sub_wot_min_cert_for_membership: parameters::SmithWotMinCertForMembership::get(), diff --git a/node/src/chain_spec/gdev.rs b/node/src/chain_spec/gdev.rs index d6ff6806f28d596fb4ef9ce6755dbbc0749668af..e6dbd001336a9382002830ce8badc5bbda6b51f5 100644 --- a/node/src/chain_spec/gdev.rs +++ b/node/src/chain_spec/gdev.rs @@ -86,6 +86,7 @@ fn get_parameters(parameters_from_file: &Option<GenesisParameters>) -> CommonPar cert_min_received_cert_to_be_able_to_issue_cert: parameters_from_file .cert_min_received_cert_to_issue_cert, cert_validity_period: parameters_from_file.cert_validity_period, + distance_evaluation_period: parameters_from_file.distance_evaluation_period, distance_min_accessible_referees: parameters::MinAccessibleReferees::get(), distance_max_depth: parameters::MaxRefereeDistance::get(), smith_sub_wot_min_cert_for_membership: parameters_from_file @@ -332,6 +333,7 @@ fn get_local_chain_parameters() -> Option<GenesisParameters> { cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, cert_validity_period, + distance_evaluation_period: 7, idty_confirm_period: 40, idty_creation_period: 50, membership_period, diff --git a/node/src/chain_spec/gen_genesis_data.rs b/node/src/chain_spec/gen_genesis_data.rs index 59717f6cd970ee6541070b08796b0dcb5705d672..c084dd2a8a544d2707dab104d6f2c522f31f4858 100644 --- a/node/src/chain_spec/gen_genesis_data.rs +++ b/node/src/chain_spec/gen_genesis_data.rs @@ -1933,6 +1933,7 @@ pub struct CommonParameters { pub cert_max_by_issuer: u32, pub cert_min_received_cert_to_be_able_to_issue_cert: u32, pub cert_validity_period: u32, + pub distance_evaluation_period: u32, pub distance_min_accessible_referees: Perbill, pub distance_max_depth: u32, pub smith_sub_wot_min_cert_for_membership: u32, diff --git a/node/src/chain_spec/gtest.rs b/node/src/chain_spec/gtest.rs index b80ad714fd552c675bc9bebe9ef9cd0316b07a41..c5be5db46fa7d90e821504557bfef00fb94f81d8 100644 --- a/node/src/chain_spec/gtest.rs +++ b/node/src/chain_spec/gtest.rs @@ -134,6 +134,7 @@ fn get_parameters(_: &Option<GenesisParameters>) -> CommonParameters { cert_min_received_cert_to_be_able_to_issue_cert: parameters::MinReceivedCertToBeAbleToIssueCert::get(), cert_validity_period: parameters::ValidityPeriod::get(), + distance_evaluation_period: parameters::DistanceEvaluationPeriod::get(), distance_min_accessible_referees: parameters::MinAccessibleReferees::get(), distance_max_depth: parameters::MaxRefereeDistance::get(), smith_sub_wot_min_cert_for_membership: parameters::SmithWotMinCertForMembership::get(), diff --git a/pallets/duniter-test-parameters/src/lib.rs b/pallets/duniter-test-parameters/src/lib.rs index b2bbc8bcc6ca2ae60c792609aabc92ed081da438..b2b97ba34bd25f185694c87cee6137fe925d11a5 100644 --- a/pallets/duniter-test-parameters/src/lib.rs +++ b/pallets/duniter-test-parameters/src/lib.rs @@ -51,6 +51,7 @@ pub mod types { pub cert_max_by_issuer: CertCount, pub cert_min_received_cert_to_issue_cert: CertCount, pub cert_validity_period: BlockNumber, + pub distance_evaluation_period: BlockNumber, pub idty_confirm_period: BlockNumber, pub idty_creation_period: BlockNumber, pub membership_period: BlockNumber, diff --git a/resources/gdev.yaml b/resources/gdev.yaml index d232831de69365ed7507cd299be8ccb3ae974660..74a14ee730ff616a3d65a360b61f90ed6ed5a4cb 100644 --- a/resources/gdev.yaml +++ b/resources/gdev.yaml @@ -17,6 +17,8 @@ parameters: ud_reeval_period: 86400000 # ----- MAIN WOT ----- + # Evaluation window size, 100 blocks = 600s = 10 min. + distance_evaluation_period: 100 # Duration to wait between two emitted certifications 14400 blocks = 24h = 1 day. cert_period: 14400 # Maximum quantity of currently valid certifications emitted by a same issuer. 100 certs. diff --git a/resources/metadata.scale b/resources/metadata.scale index 430bae89f08fbcf6bcf656bfc6f26516d767119b..5a93115f898505af97e56fed1f7070a150a3a52b 100644 Binary files a/resources/metadata.scale and b/resources/metadata.scale differ diff --git a/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs index d7b785dea2fba478f403128e061a5792ef483610..e16c563e428a4ffa07a055641f77e001fd8a0a0d 100644 --- a/runtime/common/src/pallets_config.rs +++ b/runtime/common/src/pallets_config.rs @@ -490,8 +490,7 @@ macro_rules! pallets_config { impl pallet_distance::Config for Runtime { type CheckRequestDistanceEvaluation = Wot; type Currency = Balances; - // 100 blocks - type EvaluationPeriod = frame_support::traits::ConstU32<100>; + type EvaluationPeriod = DistanceEvaluationPeriod; type EvaluationPrice = frame_support::traits::ConstU64<1000>; type MaxRefereeDistance = MaxRefereeDistance; type MinAccessibleReferees = MinAccessibleReferees; diff --git a/runtime/g1/src/parameters.rs b/runtime/g1/src/parameters.rs index d787eb5bf38e58c37ed0bc6d078f449c9617d983..7e0ee49b1b21d41ed29a72ba11545bb619b589ed 100644 --- a/runtime/g1/src/parameters.rs +++ b/runtime/g1/src/parameters.rs @@ -51,6 +51,7 @@ parameter_types! { parameter_types! { pub const MinAccessibleReferees: Perbill = Perbill::from_percent(80); pub const MaxRefereeDistance: u32 = 5; + pub const DistanceEvaluationPeriod: u32 = 100; } // Babe diff --git a/runtime/gdev/src/lib.rs b/runtime/gdev/src/lib.rs index 258c2c0072dbbec41967bf82cfac632ac2cdf223..c6a8bb3ae855967a4020dcfcb34887bf38065830 100644 --- a/runtime/gdev/src/lib.rs +++ b/runtime/gdev/src/lib.rs @@ -204,6 +204,8 @@ impl frame_support::traits::InstanceFilter<RuntimeCall> for ProxyType { // Dynamic parameters pub type EpochDuration = pallet_duniter_test_parameters::BabeEpochDuration<Runtime>; +pub type DistanceEvaluationPeriod = + pallet_duniter_test_parameters::DistanceEvaluationPeriod<Runtime>; pub type CertPeriod = pallet_duniter_test_parameters::CertPeriod<Runtime>; pub type MaxByIssuer = pallet_duniter_test_parameters::CertMaxByIssuer<Runtime>; pub type MinReceivedCertToBeAbleToIssueCert = diff --git a/runtime/gdev/tests/common/mod.rs b/runtime/gdev/tests/common/mod.rs index b8d13eaefae415969b7c4c2f295931f6042966b5..db1ed84c68b92d63fc07980c90ee83f44ce34ab8 100644 --- a/runtime/gdev/tests/common/mod.rs +++ b/runtime/gdev/tests/common/mod.rs @@ -100,6 +100,7 @@ impl ExtBuilder { cert_max_by_issuer: 10, cert_min_received_cert_to_issue_cert: 2, cert_validity_period: 10_000, + distance_evaluation_period: 7, idty_confirm_period: 40, idty_creation_period: 50, membership_period: 100, diff --git a/runtime/gtest/src/parameters.rs b/runtime/gtest/src/parameters.rs index 307f59b19733e1ad99bfb62bb656e9dc51bb70f1..b2f5c78d86e1a5a0500ada0901c13eb93f5277cb 100644 --- a/runtime/gtest/src/parameters.rs +++ b/runtime/gtest/src/parameters.rs @@ -51,6 +51,7 @@ parameter_types! { parameter_types! { pub const MinAccessibleReferees: Perbill = Perbill::from_percent(80); pub const MaxRefereeDistance: u32 = 5; + pub const DistanceEvaluationPeriod: u32 = 100; } // Babe diff --git a/scripts/check_metadata.sh b/scripts/check_metadata.sh index 69bd92b6f755a18b7945df0d1766bd051902352a..98d73921cf64c2a004d5fd0d13cae9ba49bdb2d7 100755 --- a/scripts/check_metadata.sh +++ b/scripts/check_metadata.sh @@ -11,5 +11,9 @@ if cmp -s resources/new_metadata.scale resources/metadata.scale; then exit 0 else echo "Metadata file needs to be generated. How to do it? $HOME/.cargo/bin/subxt metadata -f bytes > resources/metadata.scale" + if [ "$1" = "--update" ]; then + mv resources/new_metadata.scale resources/metadata.scale + echo "Metadata file updated automatically (--update option detected)" + fi exit 1 fi