From 5caf1e0e52523f46482a3fc87d39a012918990d8 Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Sat, 5 Apr 2025 12:45:39 +0200 Subject: [PATCH 1/3] fix(#298): integration tests for GDev were made with distance evaluation window of 7 blocks --- node/src/chain_spec/g1.rs | 1 + node/src/chain_spec/gdev.rs | 2 ++ node/src/chain_spec/gen_genesis_data.rs | 1 + node/src/chain_spec/gtest.rs | 1 + pallets/duniter-test-parameters/src/lib.rs | 1 + resources/gdev.yaml | 2 ++ runtime/common/src/pallets_config.rs | 3 +-- runtime/g1/src/parameters.rs | 1 + runtime/gdev/src/lib.rs | 2 ++ runtime/gdev/tests/common/mod.rs | 1 + runtime/gtest/src/parameters.rs | 1 + 11 files changed, 14 insertions(+), 2 deletions(-) diff --git a/node/src/chain_spec/g1.rs b/node/src/chain_spec/g1.rs index 78f879a8c..f85e92bd1 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 d6ff6806f..e6dbd0013 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 59717f6cd..c084dd2a8 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 b80ad714f..c5be5db46 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 b2bbc8bcc..b2b97ba34 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 d232831de..74a14ee73 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/runtime/common/src/pallets_config.rs b/runtime/common/src/pallets_config.rs index d7b785dea..e16c563e4 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 d787eb5bf..7e0ee49b1 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 258c2c007..c6a8bb3ae 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 b8d13eaef..db1ed84c6 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 307f59b19..b2f5c78d8 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 -- GitLab From f88eec209d8f65033ce18ee7c0149709badf44e7 Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Sun, 6 Apr 2025 11:15:30 +0200 Subject: [PATCH 2/3] fix: check_metadata.sh + --update --- resources/metadata.scale | Bin 152736 -> 152783 bytes scripts/check_metadata.sh | 4 ++++ 2 files changed, 4 insertions(+) diff --git a/resources/metadata.scale b/resources/metadata.scale index 430bae89f08fbcf6bcf656bfc6f26516d767119b..5a93115f898505af97e56fed1f7070a150a3a52b 100644 GIT binary patch delta 72 zcmV-O0Js03sR_@i34pW#2~7b=mkLb*x({e%X>)X8ZewL%Wp-g~b(ir?0UWo)O#$S6 e0fe`y%K>s10#N~%A>#p2m$1MA2)A<M0WNXw{u|-| delta 51 zcmV-30L=f-sR^K|34pW#2~7b+mkLb*y0`C50pxuFAh*=Z0df}tK>?Rh;{i~Y;J^U| Jx1r+!E^!8c6dM2l diff --git a/scripts/check_metadata.sh b/scripts/check_metadata.sh index 69bd92b6f..98d73921c 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 -- GitLab From cca153824d5df9614104c9bef1b2b64dc5e7155b Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Sun, 6 Apr 2025 15:12:17 +0200 Subject: [PATCH 3/3] fix(#298): cucumber tests --- end2end-tests/cucumber-genesis/bad_distance.json | 1 + end2end-tests/cucumber-genesis/default.json | 1 + end2end-tests/cucumber-genesis/wot.json | 1 + 3 files changed, 3 insertions(+) diff --git a/end2end-tests/cucumber-genesis/bad_distance.json b/end2end-tests/cucumber-genesis/bad_distance.json index cb040ba2c..7016976b7 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 2912937ff..f616d585b 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 0bc2d5457..a19f5f63f 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, -- GitLab