diff --git a/Cargo.lock b/Cargo.lock index d6e60c7..b2281a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,45 @@ # It is not intended for manual editing. version = 4 +[[package]] +name = "abscissa_core" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8346a52bf3fb445d5949d144c37360ad2f1d7950cfcc6d4e9e4999b1cd1bd42a" +dependencies = [ + "abscissa_derive", + "arc-swap", + "backtrace", + "canonical-path", + "clap", + "color-eyre", + "fs-err", + "once_cell", + "regex", + "secrecy", + "semver", + "serde", + "termcolor", + "toml 0.5.11", + "tracing", + "tracing-log 0.1.4", + "tracing-subscriber", + "wait-timeout", +] + +[[package]] +name = "abscissa_derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55bfb86e57d13c06e482c570826ddcddcc8f07fab916760e8911141d4fda8b62" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure 0.12.6", +] + [[package]] name = "addr2line" version = "0.24.2" @@ -80,6 +119,56 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" + +[[package]] +name = "anstyle-parse" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.59.0", +] + [[package]] name = "anyhow" version = "1.0.98" @@ -163,6 +252,17 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + [[package]] name = "autocfg" version = "1.4.0" @@ -520,6 +620,44 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "camino" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" +dependencies = [ + "serde", +] + +[[package]] +name = "canonical-path" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e9e01327e6c86e92ec72b1c798d4a94810f147209bbe3ffab6a86954937a6f" + +[[package]] +name = "cargo-platform" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver", + "serde", + "serde_json", + "thiserror 1.0.69", +] + [[package]] name = "cbc" version = "0.1.2" @@ -622,6 +760,46 @@ dependencies = [ "libloading", ] +[[package]] +name = "clap" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "clap_lex" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" + [[package]] name = "cmake" version = "0.1.54" @@ -642,6 +820,26 @@ dependencies = [ "indenter", "once_cell", "owo-colors", + "url", +] + +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "console" +version = "0.15.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width", + "windows-sys 0.59.0", ] [[package]] @@ -1002,6 +1200,12 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "encoding_rs" version = "0.8.35" @@ -1108,6 +1312,19 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "flume" +version = "0.10.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577" +dependencies = [ + "futures-core", + "futures-sink", + "nanorand", + "pin-project", + "spin", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1152,6 +1369,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] + [[package]] name = "fs_extra" version = "1.3.0" @@ -1319,6 +1545,19 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "git2" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" +dependencies = [ + "bitflags", + "libc", + "libgit2-sys", + "log", + "url", +] + [[package]] name = "glob" version = "0.3.2" @@ -1432,12 +1671,31 @@ version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +[[package]] +name = "hdrhistogram" +version = "7.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c9198f173dd59ce26ff9f95ef0aafd0a0fe01fb9d72841bc5066a4c06511d" +dependencies = [ + "byteorder", + "num-traits", +] + [[package]] name = "heck" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + [[package]] name = "hermit-abi" version = "0.3.9" @@ -1486,6 +1744,17 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "howudoin" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f34059280f617a59ee59a0455e93460d67e5c76dec42dd262d38f0f390f437b2" +dependencies = [ + "flume", + "indicatif", + "parking_lot", +] + [[package]] name = "http" version = "1.3.1" @@ -1850,6 +2119,19 @@ dependencies = [ "serde", ] +[[package]] +name = "indicatif" +version = "0.17.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" +dependencies = [ + "console", + "number_prefix", + "portable-atomic", + "unicode-width", + "web-time", +] + [[package]] name = "indoc" version = "2.0.6" @@ -1871,6 +2153,12 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" version = "0.12.1" @@ -2061,6 +2349,18 @@ version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +[[package]] +name = "libgit2-sys" +version = "0.17.0+1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + [[package]] name = "libloading" version = "0.8.7" @@ -2109,6 +2409,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", + "libc", "pkg-config", "vcpkg", ] @@ -2206,6 +2507,15 @@ dependencies = [ "libc", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "matchit" version = "0.7.3" @@ -2288,6 +2598,15 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" +dependencies = [ + "getrandom 0.2.16", +] + [[package]] name = "native-tls" version = "0.2.14" @@ -2383,10 +2702,25 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi", + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ "libc", ] +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + [[package]] name = "object" version = "0.36.7" @@ -2402,6 +2736,12 @@ version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +[[package]] +name = "once_cell_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" + [[package]] name = "opaque-debug" version = "0.3.1" @@ -2845,7 +3185,7 @@ dependencies = [ "rand 0.8.5", "rand_chacha 0.3.1", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", @@ -3207,8 +3547,17 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", ] [[package]] @@ -3219,9 +3568,15 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.5", ] +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.8.5" @@ -3594,6 +3949,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" dependencies = [ + "serde", "zeroize", ] @@ -3638,6 +3994,9 @@ name = "semver" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] [[package]] name = "serde" @@ -3690,6 +4049,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -3880,6 +4248,9 @@ name = "spin" version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] [[package]] name = "spki" @@ -3946,6 +4317,18 @@ dependencies = [ "futures-core", ] +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + [[package]] name = "synstructure" version = "0.13.2" @@ -3997,6 +4380,15 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + [[package]] name = "testvectors" version = "0.1.0" @@ -4073,7 +4465,9 @@ checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", + "libc", "num-conv", + "num_threads", "powerfmt", "serde", "time-core", @@ -4197,23 +4591,56 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" -version = "0.6.9" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.9.0", + "serde", + "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tonic" version = "0.12.3" @@ -4270,6 +4697,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", + "hdrhistogram", "indexmap 1.9.3", "pin-project", "pin-project-lite", @@ -4348,6 +4776,18 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror 1.0.69", + "time", + "tracing-subscriber", +] + [[package]] name = "tracing-attributes" version = "0.1.28" @@ -4389,6 +4829,17 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + [[package]] name = "tracing-log" version = "0.2.0" @@ -4406,12 +4857,16 @@ version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ + "matchers", "nu-ansi-term", + "once_cell", + "regex", "sharded-slab", "smallvec", "thread_local", + "tracing", "tracing-core", - "tracing-log", + "tracing-log 0.2.0", ] [[package]] @@ -4480,6 +4935,12 @@ dependencies = [ "tinyvec", ] +[[package]] +name = "unicode-width" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" + [[package]] name = "unicode-xid" version = "0.2.6" @@ -4534,6 +4995,12 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "valuable" version = "0.1.1" @@ -4546,6 +5013,22 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vergen" +version = "8.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +dependencies = [ + "anyhow", + "cargo_metadata", + "cfg-if", + "git2", + "regex", + "rustc_version", + "rustversion", + "time", +] + [[package]] name = "version_check" version = "0.9.5" @@ -5201,7 +5684,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", - "synstructure", + "synstructure 0.13.2", ] [[package]] @@ -5516,6 +5999,7 @@ dependencies = [ "futures", "futures-util", "halo2_proofs", + "howudoin", "jubjub", "lazy_static", "metrics", @@ -5552,6 +6036,7 @@ dependencies = [ "dirs 6.0.0", "futures", "hex", + "howudoin", "humantime-serde", "indexmap 2.9.0", "itertools 0.14.0", @@ -5647,6 +6132,7 @@ dependencies = [ "futures", "hex", "hex-literal", + "howudoin", "human_bytes", "humantime-serde", "indexmap 2.9.0", @@ -5668,6 +6154,51 @@ dependencies = [ "zebra-chain", ] +[[package]] +name = "zebrad" +version = "2.3.0" +source = "git+https://github.com/ZcashFoundation/zebra.git?tag=v2.3.0#b0e7fd4a9a6159c2b81976452fe368cb06d2dead" +dependencies = [ + "abscissa_core", + "atty", + "chrono", + "clap", + "color-eyre", + "dirs 6.0.0", + "futures", + "howudoin", + "humantime-serde", + "indexmap 2.9.0", + "indicatif", + "lazy_static", + "log", + "metrics", + "num-integer", + "pin-project", + "rand 0.8.5", + "rayon", + "semver", + "serde", + "thiserror 2.0.12", + "tinyvec", + "tokio", + "tokio-stream", + "toml 0.8.23", + "tower 0.4.13", + "tracing", + "tracing-appender", + "tracing-error", + "tracing-futures", + "tracing-subscriber", + "vergen", + "zebra-chain", + "zebra-consensus", + "zebra-network", + "zebra-node-services", + "zebra-rpc", + "zebra-state", +] + [[package]] name = "zerocopy" version = "0.8.25" @@ -5706,7 +6237,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", - "synstructure", + "synstructure 0.13.2", ] [[package]] @@ -5793,6 +6324,7 @@ dependencies = [ "zebra-chain", "zebra-node-services", "zebra-rpc", + "zebrad", "zingo-infra-fetcher-core", ] diff --git a/services/Cargo.toml b/services/Cargo.toml index 5ef4c10..afceaf3 100644 --- a/services/Cargo.toml +++ b/services/Cargo.toml @@ -27,6 +27,7 @@ getset = { workspace = true } json = { workspace = true } serde_json = { workspace = true } hex = { workspace = true } +zebrad = { tag = "v2.3.0", git = "https://github.com/ZcashFoundation/zebra.git" } [build-dependencies] hex = { workspace = true } diff --git a/services/src/config.rs b/services/src/config.rs index 103b71f..aa5e80e 100644 --- a/services/src/config.rs +++ b/services/src/config.rs @@ -91,6 +91,7 @@ pub(crate) fn zebrad( cache_dir: PathBuf, network_listen_port: Port, rpc_listen_port: Port, + indexer_listen_port: Port, activation_heights: &ActivationHeights, miner_address: &str, network: Network, @@ -145,6 +146,7 @@ debug_force_finished_sync = false enable_cookie_auth = false parallel_cpu_threads = 0 listen_addr = \"127.0.0.1:{rpc_listen_port}\" +indexer_listen_addr = \"127.0.0.1:{indexer_listen_port}\" [state] cache_dir = \"{chain_cache}\" @@ -162,6 +164,8 @@ parallel_cpu_threads = 0 buffer_limit = 128000 force_use_color = false use_color = true +#log_file = \"/home/aloe/.zebradtemplogfile\" +filter = \"debug\" use_journald = false" ) .as_bytes(), @@ -172,11 +176,16 @@ use_journald = false" format!( "\n\n\ [mining] -debug_like_zcashd = true miner_address = \"{miner_address}\" [network.testnet_parameters] disable_pow = true +network_name = \"Regtest\" +network_magic = [170, 232, 63, 95] +slow_start_interval = 0 +target_difficulty_limit = \"0f0f0f0000000000000000000000000000000000000000000000000000000000\" +genesis_hash = \"029f11d80ef9765602235e1bc9727e3eb6ba20839319f761fee920d63401e327\" +pre_blossom_halving_interval = 144 [network.testnet_parameters.activation_heights] # Configured activation heights must be greater than or equal to 1, @@ -187,13 +196,6 @@ NU6 = {nu6_activation_height}" .as_bytes(), )?; } else { - config_file.write_all( - "\n\n\ -[mining] -debug_like_zcashd = true" - .to_string() - .as_bytes(), - )?; } Ok(config_file_path) @@ -455,7 +457,7 @@ minetolocalwallet=0 # This is set to false so that we can mine to a wallet, othe fn zainod() { let config_dir = tempfile::tempdir().unwrap(); let cache_dir = tempfile::tempdir().unwrap(); - let zaino_cache_dir = cache_dir.into_path(); + let zaino_cache_dir = cache_dir.keep(); let zaino_test_dir = zaino_cache_dir.join("zaino"); let zaino_test_path = zaino_test_dir.to_str().unwrap(); diff --git a/services/src/lib.rs b/services/src/lib.rs index 288d8cc..1fc6322 100644 --- a/services/src/lib.rs +++ b/services/src/lib.rs @@ -48,7 +48,8 @@ mod logs; use indexer::{ Empty, EmptyConfig, Indexer, Lightwalletd, LightwalletdConfig, Zainod, ZainodConfig, }; -use validator::{Validator, Zcashd, ZcashdConfig, Zebrad, ZebradConfig}; +use validator::{Validator, Zcashd, ZcashdConfig, Zebrad}; +use zebrad::config::ZebradConfig; /// All processes currently supported #[derive(Clone, Copy)] diff --git a/services/src/validator.rs b/services/src/validator.rs index a6428fb..c99c199 100644 --- a/services/src/validator.rs +++ b/services/src/validator.rs @@ -74,8 +74,10 @@ pub struct ZebradConfig { pub zebrad_bin: Option, /// Zebrad network listen port pub network_listen_port: Option, - /// Zebrad RPC listen port + /// Zebrad JSON-RPC listen port pub rpc_listen_port: Option, + /// Zebrad gRPC listen port + pub indexer_listen_port: Option, /// Local network upgrade activation heights pub activation_heights: network::ActivationHeights, /// Miner address @@ -92,6 +94,7 @@ impl Default for ZebradConfig { zebrad_bin: None, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: None, @@ -429,7 +432,7 @@ impl Validator for Zebrad { type Config = ZebradConfig; async fn launch(config: Self::Config) -> Result { - let logs_dir = tempfile::tempdir().unwrap(); + let logs_dir = dbg!(tempfile::tempdir().unwrap()); let data_dir = tempfile::tempdir().unwrap(); if !matches!(config.network, Network::Regtest) && config.chain_cache.is_none() { @@ -445,12 +448,14 @@ impl Validator for Zebrad { let network_listen_port = network::pick_unused_port(config.network_listen_port); let rpc_listen_port = network::pick_unused_port(config.rpc_listen_port); + let indexer_listen_port = network::pick_unused_port(config.indexer_listen_port); let config_dir = tempfile::tempdir().unwrap(); let config_file_path = config::zebrad( config_dir.path().to_path_buf(), cache_dir, network_listen_port, rpc_listen_port, + indexer_listen_port, &config.activation_heights, config.miner_address, config.network, diff --git a/testutils/src/test_fixtures.rs b/testutils/src/test_fixtures.rs index d76ee75..ad498e0 100644 --- a/testutils/src/test_fixtures.rs +++ b/testutils/src/test_fixtures.rs @@ -60,6 +60,7 @@ pub async fn generate_zebrad_large_chain_cache( zebrad_bin, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: None, @@ -2937,6 +2938,7 @@ pub async fn get_subtree_roots_sapling( zebrad_bin, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: Some(utils::chain_cache_dir().join("get_subtree_roots_sapling")), @@ -3040,6 +3042,7 @@ pub async fn get_subtree_roots_orchard( zebrad_bin, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: Some(utils::chain_cache_dir().join("get_subtree_roots_orchard")), diff --git a/testutils/tests/integration.rs b/testutils/tests/integration.rs index 5f95cfc..73200a1 100644 --- a/testutils/tests/integration.rs +++ b/testutils/tests/integration.rs @@ -46,6 +46,7 @@ async fn launch_zebrad() { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: None, @@ -66,6 +67,7 @@ async fn launch_zebrad_with_cache() { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: Some(utils::chain_cache_dir().join("client_rpc_tests_large")), @@ -124,6 +126,7 @@ async fn launch_localnet_zainod_zebrad() { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: None, @@ -180,6 +183,7 @@ async fn launch_localnet_lightwalletd_zebrad() { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: None, @@ -271,6 +275,7 @@ async fn zainod_zebrad_basic_send() { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: None, @@ -394,6 +399,7 @@ async fn lightwalletd_zebrad_basic_send() { zebrad_bin: ZEBRAD_BIN, network_listen_port: None, rpc_listen_port: None, + indexer_listen_port: None, activation_heights: network::ActivationHeights::default(), miner_address: ZEBRAD_DEFAULT_MINER, chain_cache: None,