diff --git a/Cargo.lock b/Cargo.lock index 1f53e2c90a5a62e14d1933b46eee29a406fbd848..82a2f51a41cc7cd08ffea96f67c53319a42b9ac5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -319,7 +319,7 @@ checksum = "1cd7fce9ba8c3c042128ce72d8b2ddbf3a05747efb67ea0313c635e10bda47a2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -715,7 +715,7 @@ dependencies = [ "js-sys", "num-integer", "num-traits", - "time", + "time 0.1.45", "wasm-bindgen", "winapi 0.3.9", ] @@ -802,7 +802,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -815,7 +815,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -855,6 +855,17 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "colored" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2674ec482fbc38012cf31e6c42ba0177b431a0cb6f15fe40efa5aab1bda516f6" +dependencies = [ + "is-terminal", + "lazy_static", + "windows-sys 0.48.0", +] + [[package]] name = "combine" version = "3.8.1" @@ -1218,7 +1229,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" dependencies = [ "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1277,7 +1288,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn", + "syn 1.0.107", "synthez", ] @@ -1358,7 +1369,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn", + "syn 1.0.107", ] [[package]] @@ -1375,7 +1386,7 @@ checksum = "81bbeb29798b407ccd82a3324ade1a7286e0d29851475990b612670f6f5124d2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1399,7 +1410,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn", + "syn 1.0.107", ] [[package]] @@ -1410,7 +1421,7 @@ checksum = "7618812407e9402654622dd402b0a89dff9ba93badd6540781526117b92aab7e" dependencies = [ "darling_core", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1436,7 +1447,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" dependencies = [ "data-encoding", - "syn", + "syn 1.0.107", ] [[package]] @@ -1473,7 +1484,7 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1484,7 +1495,7 @@ checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1572,13 +1583,17 @@ dependencies = [ "dubp-wot", "flate2", "fnv", + "log", "num-traits", "parity-scale-codec", "rayon", + "simple_logger", "sp-core", "sp-distance", "sp-runtime", "subxt", + "time 0.1.45", + "time-macros", "tokio", ] @@ -1763,7 +1778,7 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1869,7 +1884,7 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -1968,7 +1983,7 @@ checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "synstructure", ] @@ -2284,7 +2299,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2296,7 +2311,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2306,7 +2321,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2502,7 +2517,7 @@ checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2791,7 +2806,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn", + "syn 1.0.107", "textwrap 0.12.1", "thiserror", "typed-builder", @@ -2805,7 +2820,7 @@ checksum = "41973d4c45f7a35af8753ba3457cc99d406d863941fd7f52663cff54a5ab99b3" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -2905,7 +2920,7 @@ dependencies = [ "quote", "serde", "serde_json", - "syn", + "syn 1.0.107", ] [[package]] @@ -2916,7 +2931,7 @@ checksum = "e56b093bfda71de1da99758b036f4cc811fd2511c8a76f75680e9ffbd2bb4251" dependencies = [ "graphql_client_codegen", "proc-macro2", - "syn", + "syn 1.0.107", ] [[package]] @@ -3360,7 +3375,7 @@ checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -3692,7 +3707,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -4113,7 +4128,7 @@ checksum = "a0eddc4497a8b5a506013c40e8189864f9c3a00db2b25671f428ae9007f3ba32" dependencies = [ "heck 0.4.1", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -4569,7 +4584,7 @@ dependencies = [ "cfg-if 1.0.0", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -4628,7 +4643,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "synstructure", ] @@ -4678,7 +4693,7 @@ checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -4983,7 +4998,16 @@ checksum = "2be1598bf1c313dcdd12092e3f1920f463462525a21b7b4e11b4168353d0123e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", +] + +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", ] [[package]] @@ -5051,7 +5075,7 @@ checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -5295,7 +5319,7 @@ dependencies = [ "num_enum", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -5740,7 +5764,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -5771,7 +5795,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.107", "synstructure", ] @@ -5931,7 +5955,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -5972,7 +5996,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -6121,7 +6145,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.107", ] [[package]] @@ -6156,7 +6180,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "version_check", ] @@ -6173,9 +6197,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.50" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" dependencies = [ "unicode-ident", ] @@ -6214,7 +6238,7 @@ checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -6244,7 +6268,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn", + "syn 1.0.107", "tempfile", "which", ] @@ -6272,7 +6296,7 @@ dependencies = [ "itertools", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -6313,9 +6337,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.23" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -6500,7 +6524,7 @@ checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -6892,7 +6916,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -7794,7 +7818,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -7897,7 +7921,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -7975,7 +7999,7 @@ dependencies = [ "heck 0.3.3", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -7987,7 +8011,7 @@ dependencies = [ "heck 0.3.3", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -8079,22 +8103,22 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.31", ] [[package]] @@ -8238,6 +8262,18 @@ dependencies = [ "paste", ] +[[package]] +name = "simple_logger" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2230cd5c29b815c9b699fb610b49a5ed65588f3509d9f0108be3a885da629333" +dependencies = [ + "colored", + "log", + "time 0.3.23", + "windows-sys 0.42.0", +] + [[package]] name = "slab" version = "0.4.7" @@ -8335,7 +8371,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -8576,7 +8612,7 @@ dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn", + "syn 1.0.107", ] [[package]] @@ -8595,7 +8631,7 @@ source = "git+https://github.com/duniter/substrate?branch=duniter-substrate-v0.9 dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -8811,7 +8847,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -9007,7 +9043,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -9107,7 +9143,7 @@ dependencies = [ "memchr", "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -9148,7 +9184,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 1.0.107", ] [[package]] @@ -9285,7 +9321,7 @@ dependencies = [ "quote", "scale-info", "subxt-metadata", - "syn", + "syn 1.0.107", "tokio", ] @@ -9297,7 +9333,7 @@ dependencies = [ "darling", "proc-macro-error", "subxt-codegen", - "syn", + "syn 1.0.107", ] [[package]] @@ -9322,6 +9358,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -9330,7 +9377,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "unicode-xid", ] @@ -9340,7 +9387,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "033178d0acccffc5490021657006e6a8dd586ee9dc6f7c24e7608b125e568cb1" dependencies = [ - "syn", + "syn 1.0.107", "synthez-codegen", "synthez-core", ] @@ -9351,7 +9398,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69263462a40e46960f070618e20094ce69e783a41f86e54bc75545136afd597a" dependencies = [ - "syn", + "syn 1.0.107", "synthez-core", ] @@ -9364,7 +9411,7 @@ dependencies = [ "proc-macro2", "quote", "sealed 0.3.0", - "syn", + "syn 1.0.107", ] [[package]] @@ -9477,7 +9524,7 @@ checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -9515,6 +9562,35 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "time" +version = "0.3.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59e399c068f43a5d116fedaf73b203fa4f9c519f17e2b34f63221d3792f81446" +dependencies = [ + "itoa", + "libc", + "num_threads", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ba15a897f3c86766b757e5ac7221554c6750054d74d5b28844fce5fb36a6c4" +dependencies = [ + "time-core", +] + [[package]] name = "tiny-bip39" version = "0.8.2" @@ -9577,7 +9653,7 @@ checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -9662,7 +9738,7 @@ checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -9853,7 +9929,7 @@ checksum = "f85f4270f4f449a3f2c0cf2aecc8415e388a597aeacc7d55fc749c5c968c8533" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", ] [[package]] @@ -10142,7 +10218,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.107", "wasm-bindgen-shared", ] @@ -10176,7 +10252,7 @@ checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -10582,6 +10658,15 @@ dependencies = [ "windows-targets 0.42.1", ] +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.1", +] + [[package]] name = "windows-targets" version = "0.42.1" @@ -10855,7 +10940,7 @@ checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.107", "synstructure", ] diff --git a/distance-oracle/Cargo.toml b/distance-oracle/Cargo.toml index 5f0b626ebd1a9eef6f09ee1e1889a7842b272b81..60240d9f20bb33b4802b57cb25b972a6b2a346fb 100644 --- a/distance-oracle/Cargo.toml +++ b/distance-oracle/Cargo.toml @@ -11,11 +11,15 @@ sp-distance = { path = "../primitives/distance" } codec = { package = "parity-scale-codec", version = "3.1.5" } fnv = "1.0.7" +log = "0.4.17" num-traits = "0.2.15" rayon = "1.7.0" +simple_logger = "4.2.0" sp-core = { git = "https://github.com/duniter/substrate.git", branch = "duniter-substrate-v0.9.32" } sp-runtime = { git = "https://github.com/duniter/substrate.git", branch = "duniter-substrate-v0.9.32" } subxt = { git = 'https://github.com/duniter/subxt.git', branch = "duniter-substrate-v0.9.32" } +time = "<=0.3.23"# required for MSRV +time-macros = "=0.2.10" # standalone only clap = { version = "4.0", features = ["derive"], optional = true } diff --git a/distance-oracle/src/api.rs b/distance-oracle/src/api.rs index 0b007090dffb6a637163b88f1f8bca178ead3a4f..3af39b736d557280609b320c0fbb44c709d9277f 100644 --- a/distance-oracle/src/api.rs +++ b/distance-oracle/src/api.rs @@ -35,7 +35,9 @@ pub type EvaluationPool<AccountId, IdtyIndex> = ( ); pub async fn client(rpc_url: String) -> Client { - Client::from_url(rpc_url).await.unwrap() + Client::from_url(rpc_url) + .await + .expect("Cannot create RPC client") } pub async fn parent_hash(client: &Client) -> H256 { @@ -43,8 +45,8 @@ pub async fn parent_hash(client: &Client) -> H256 { .storage() .fetch(&runtime::storage().system().parent_hash(), None) .await - .unwrap() - .unwrap() + .expect("Cannot fetch parent hash") + .expect("Parent hash is None") } pub async fn current_session(client: &Client, parent_hash: H256) -> u32 { @@ -55,7 +57,7 @@ pub async fn current_session(client: &Client, parent_hash: H256) -> u32 { Some(parent_hash), ) .await - .unwrap() + .expect("Cannot fetch current session") .unwrap_or_default() } @@ -76,7 +78,7 @@ pub async fn current_pool( Some(parent_hash), ) .await - .unwrap() + .expect("Cannot fetch current pool") } pub async fn evaluation_block(client: &Client, parent_hash: H256) -> H256 { @@ -87,8 +89,8 @@ pub async fn evaluation_block(client: &Client, parent_hash: H256) -> H256 { Some(parent_hash), ) .await - .unwrap() - .unwrap() + .expect("Cannot fetch evaluation block") + .expect("No evaluation block") } pub async fn member_iter(client: &Client, evaluation_block: H256) -> MemberIter { @@ -101,7 +103,7 @@ pub async fn member_iter(client: &Client, evaluation_block: H256) -> MemberIter Some(evaluation_block), ) .await - .unwrap(), + .expect("Cannot fetch memberships"), ) } @@ -135,7 +137,7 @@ pub async fn cert_iter(client: &Client, evaluation_block: H256) -> CertIter { Some(evaluation_block), ) .await - .unwrap(), + .expect("Cannot fetch certifications"), ) } diff --git a/distance-oracle/src/lib.rs b/distance-oracle/src/lib.rs index dc5c78b95fe42250fd8bead1f1832ad332fc5923..d169c4f7a41b92010b967d7f562797fff70f5707 100644 --- a/distance-oracle/src/lib.rs +++ b/distance-oracle/src/lib.rs @@ -28,6 +28,7 @@ use api::{AccountId, IdtyIndex}; use codec::Encode; use fnv::{FnvHashMap, FnvHashSet}; +use log::{debug, error, warn}; use rayon::iter::IntoParallelRefIterator; use rayon::iter::ParallelIterator; use std::io::Write; @@ -93,8 +94,12 @@ pub async fn run_and_save(client: &api::Client, settings: Settings) { let mut evaluation_result_file = std::fs::OpenOptions::new() .write(true) .create_new(true) - .open(evaluation_result_path) - .unwrap(); + .open(&evaluation_result_path) + .unwrap_or_else(|e| { + panic!( + "Cannot open distance evaluation result file `{evaluation_result_path:?}`: {e:?}" + ) + }); evaluation_result_file .write_all( &sp_distance::ComputationResult { @@ -102,11 +107,25 @@ pub async fn run_and_save(client: &api::Client, settings: Settings) { } .encode(), ) - .unwrap(); + .unwrap_or_else(|e| { + panic!( + "Cannot write distance evaluation result to file `{evaluation_result_path:?}`: {e:?}" + ) + }); // Remove old results let mut files_to_remove = Vec::new(); - for entry in settings.evaluation_result_dir.read_dir().unwrap().flatten() { + for entry in settings + .evaluation_result_dir + .read_dir() + .unwrap_or_else(|e| { + panic!( + "Cannot read distance evaluation result directory `{0:?}`: {e:?}", + settings.evaluation_result_dir + ) + }) + .flatten() + { if let Ok(entry_name) = entry.file_name().into_string() { if let Ok(entry_session) = entry_name.parse::<isize>() { if current_session as isize - entry_session > 3 { @@ -116,13 +135,12 @@ pub async fn run_and_save(client: &api::Client, settings: Settings) { } } files_to_remove.into_iter().for_each(|f| { - std::fs::remove_file(&f).unwrap_or_else(move |e| { - eprintln!("Warning: Cannot remove old result file `{f:?}`: {e:?}") - }); + std::fs::remove_file(&f) + .unwrap_or_else(move |e| warn!("Cannot remove old result file `{f:?}`: {e:?}")); }); } -/// Returns `(evaluation, current_session, evaluation_result_path)` +/// Returns `Option<(evaluation, current_session, evaluation_result_path)>` pub async fn run( client: &api::Client, settings: &Settings, @@ -135,13 +153,13 @@ pub async fn run( // Fetch the pending identities let Some(evaluation_pool) = api::current_pool(client, parent_hash, current_session).await else { - println!("Pool does not exist"); + debug!("Nothing to do: Pool does not exist"); return None }; // Stop if nothing to evaluate if evaluation_pool.0 .0.is_empty() { - println!("Pool is empty"); + debug!("Nothing to do: Pool is empty"); return None; } @@ -152,11 +170,16 @@ pub async fn run( if handle_fs { // Stop if already evaluated if evaluation_result_path.try_exists().unwrap() { - println!("File already exists"); + debug!("Nothing to do: File already exists"); return None; } - std::fs::create_dir_all(&settings.evaluation_result_dir).unwrap(); + std::fs::create_dir_all(&settings.evaluation_result_dir).unwrap_or_else(|e| { + error!( + "Cannot create distance evaluation result directory `{0:?}`: {e:?}", + settings.evaluation_result_dir + ); + }); } let evaluation_block = api::evaluation_block(client, parent_hash).await; @@ -177,7 +200,11 @@ pub async fn run( let mut received_certs = FnvHashMap::<IdtyIndex, Vec<IdtyIndex>>::default(); let mut certs_iter = api::cert_iter(client, evaluation_block).await; - while let Some((receiver, issuers)) = certs_iter.next().await.unwrap() { + while let Some((receiver, issuers)) = certs_iter + .next() + .await + .expect("Cannot fetch next certification") + { if (issuers.len() as u32) < min_certs_for_referee { // This member is not referee members.remove(&receiver); @@ -256,7 +283,7 @@ fn distance_rule_recursive( } } -/// Returns `(nb_accessible_referees, nb_referees)` +/// Returns the fraction `nb_accessible_referees / nb_referees` fn distance_rule( received_certs: &FnvHashMap<IdtyIndex, Vec<IdtyIndex>>, referees: &FnvHashMap<IdtyIndex, u32>, diff --git a/distance-oracle/src/main.rs b/distance-oracle/src/main.rs index 9d1c62340a0b9f13f5c81031970a089f826e2cf0..d60668e87fa145b1da53fcf60d5f38a007eaf8cd 100644 --- a/distance-oracle/src/main.rs +++ b/distance-oracle/src/main.rs @@ -25,12 +25,20 @@ struct Cli { max_depth: u32, #[clap(short = 'u', long, default_value = "ws://127.0.0.1:9944")] rpc_url: String, + /// Log level (off, error, warn, info, debug, trace) + #[clap(short = 'l', long, default_value = "info")] + log: log::LevelFilter, } #[tokio::main] async fn main() { let cli = Cli::parse(); + simple_logger::SimpleLogger::new() + .with_level(cli.log) + .init() + .unwrap(); + distance_oracle::run_and_save( &distance_oracle::api::client(cli.rpc_url.clone()).await, distance_oracle::Settings { diff --git a/pallets/distance/src/lib.rs b/pallets/distance/src/lib.rs index ee67728832a2967ca5897c584e25b826ac7747da..b9720a57f98fd4b9bcfcb81303d7a94134e7a7df 100644 --- a/pallets/distance/src/lib.rs +++ b/pallets/distance/src/lib.rs @@ -74,6 +74,7 @@ pub mod pallet { // STORAGE // + /// Identities queued for distance evaluation #[pallet::storage] #[pallet::getter(fn evaluation_pool_0)] pub type EvaluationPool0<T: Config<I>, I: 'static = ()> = StorageValue< @@ -86,6 +87,7 @@ pub mod pallet { >, ValueQuery, >; + /// Identities queued for distance evaluation #[pallet::storage] #[pallet::getter(fn evaluation_pool_1)] pub type EvaluationPool1<T: Config<I>, I: 'static = ()> = StorageValue< @@ -98,6 +100,7 @@ pub mod pallet { >, ValueQuery, >; + /// Identities queued for distance evaluation #[pallet::storage] #[pallet::getter(fn evaluation_pool_2)] pub type EvaluationPool2<T: Config<I>, I: 'static = ()> = StorageValue< @@ -116,6 +119,7 @@ pub mod pallet { pub type EvaluationBlock<T: Config<I>, I: 'static = ()> = StorageValue<_, <T as frame_system::Config>::Hash, ValueQuery>; + /// Distance evaluation status by identity #[pallet::storage] #[pallet::getter(fn identity_distance_status)] pub type IdentityDistanceStatus<T: Config<I>, I: 'static = ()> = StorageMap< diff --git a/primitives/distance/Cargo.toml b/primitives/distance/Cargo.toml index f8ff3e5f3cfc1a3ef65422f5553517f6cc13ef6a..6ee9db25137aa63893a43fbea10b8746c40c319f 100644 --- a/primitives/distance/Cargo.toml +++ b/primitives/distance/Cargo.toml @@ -1,5 +1,5 @@ [package] -authors = ['librelois <c@elo.tf>'] +authors = ['tuxmain <tuxmain@zettascript.org>'] description = 'primitives for pallet distance.' edition = "2021" homepage = 'https://duniter.org'