diff --git a/.cargo-deny.toml b/.cargo-deny.toml index ab01959..3d760c1 100644 --- a/.cargo-deny.toml +++ b/.cargo-deny.toml @@ -15,8 +15,8 @@ ignore = [ "RUSTSEC-2025-0012", # backoff unmaintained; upstream workspace still relies on it "RUSTSEC-2025-0055", # tracing-subscriber ansi escape issue; upstream dependency "RUSTSEC-2025-0134", # rustls-pemfile unmaintained; transitive via rustls stack - "RUSTSEC-2025-0141", # bincode unmaintained; no safe upgrade available - "RUSTSEC-2026-0002", # lru IterMut soundness issue; pending upstream upgrade + "RUSTSEC-2025-0141", # bincode unmaintained; upstream dependency + "RUSTSEC-2026-0002", # lru unsound; upstream dependency until upgrade available ] yanked = "deny" @@ -31,6 +31,7 @@ allow = [ "BSD-2-Clause", "BSD-3-Clause", "BSL-1.0", + "BlueOak-1.0.0", "CC0-1.0", "CDLA-Permissive-2.0", "ISC", diff --git a/Cargo.lock b/Cargo.lock index 08b6e48..d364e53 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -54,12 +54,56 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + [[package]] name = "anstyle" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +[[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.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + [[package]] name = "anyhow" version = "1.0.100" @@ -833,6 +877,22 @@ dependencies = [ "zeroize", ] +[[package]] +name = "broadcast-service" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "derivative", + "futures", + "nomos-core", + "overwatch", + "serde", + "tokio", + "tokio-stream", + "tracing", +] + [[package]] name = "bs58" version = "0.5.1" @@ -858,6 +918,12 @@ version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +[[package]] +name = "bytecount" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175812e0be2bccb6abe50bb8d566126198344f707e304f45c648fd8f2cc0365e" + [[package]] name = "bytemuck" version = "1.24.0" @@ -946,23 +1012,22 @@ dependencies = [ ] [[package]] -name = "cfgsync_tf" +name = "cfgsync" version = "0.1.0" dependencies = [ "anyhow", "axum", "clap", + "groth16", "hex", - "logos-blockchain-core", - "logos-blockchain-da-network-core", - "logos-blockchain-executor", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-service", - "logos-blockchain-libp2p", - "logos-blockchain-node", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-tracing-service", - "logos-blockchain-utils", + "key-management-system-service", + "nomos-core", + "nomos-da-network-core", + "nomos-executor", + "nomos-libp2p", + "nomos-node", + "nomos-tracing-service", + "nomos-utils", "rand 0.8.5", "reqwest", "serde", @@ -970,6 +1035,7 @@ dependencies = [ "serde_path_to_error", "serde_with", "serde_yaml", + "subnetworks-assignations", "testing-framework-config", "testing-framework-core", "thiserror 2.0.17", @@ -977,6 +1043,100 @@ dependencies = [ "tracing", ] +[[package]] +name = "chain-common" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "nomos-core", + "serde", +] + +[[package]] +name = "chain-leader" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "chain-common", + "chain-service", + "cryptarchia-engine", + "futures", + "key-management-system-keys", + "nomos-blend-service", + "nomos-core", + "nomos-da-sampling", + "nomos-ledger", + "nomos-time", + "nomos-wallet", + "overwatch", + "serde", + "services-utils", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-futures", + "tx-service", +] + +[[package]] +name = "chain-network" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "chain-common", + "chain-service", + "cryptarchia-engine", + "cryptarchia-sync", + "futures", + "nomos-core", + "nomos-da-sampling", + "nomos-ledger", + "nomos-network", + "nomos-time", + "overwatch", + "rand 0.8.5", + "serde", + "serde_with", + "services-utils", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "tracing-futures", + "tx-service", +] + +[[package]] +name = "chain-service" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "broadcast-service", + "bytes", + "cryptarchia-engine", + "cryptarchia-sync", + "futures", + "groth16", + "nomos-core", + "nomos-ledger", + "nomos-network", + "nomos-storage", + "nomos-utils", + "num-bigint", + "overwatch", + "serde", + "serde_with", + "services-utils", + "strum", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-futures", +] + [[package]] name = "chrono" version = "0.4.42" @@ -1021,6 +1181,23 @@ dependencies = [ "inout", ] +[[package]] +name = "circuits-prover" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "circuits-utils", + "tempfile", +] + +[[package]] +name = "circuits-utils" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "dirs", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -1048,8 +1225,11 @@ version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ + "anstream", "anstyle", "clap_lex", + "strsim", + "terminal_size", ] [[package]] @@ -1083,6 +1263,29 @@ dependencies = [ "owo-colors", ] +[[package]] +name = "colorchoice" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" + +[[package]] +name = "common-http-client" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "broadcast-service", + "futures", + "nomos-core", + "nomos-da-messages", + "nomos-http-api-common", + "reqwest", + "serde", + "serde_json", + "thiserror 1.0.69", + "url", +] + [[package]] name = "concurrent-queue" version = "2.5.0" @@ -1092,6 +1295,19 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "console" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4" +dependencies = [ + "encode_unicode", + "libc", + "once_cell", + "unicode-width", + "windows-sys 0.61.2", +] + [[package]] name = "const-hex" version = "1.17.0" @@ -1125,6 +1341,15 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "convert_case" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -1217,6 +1442,40 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "cryptarchia-engine" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "cfg_eval", + "nomos-utils", + "serde", + "serde_with", + "thiserror 1.0.69", + "time", + "tokio", + "tracing", +] + +[[package]] +name = "cryptarchia-sync" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "bytes", + "cryptarchia-engine", + "futures", + "libp2p", + "libp2p-stream", + "nomos-core", + "rand 0.8.5", + "serde", + "serde_with", + "thiserror 1.0.69", + "tokio", + "tracing", +] + [[package]] name = "crypto-bigint" version = "0.5.5" @@ -1250,6 +1509,76 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "cucumber" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18c09939b8de21501b829a3839fa8a01ef6cc226e6bc1f5f163f7104bd5e847d" +dependencies = [ + "anyhow", + "clap", + "console", + "cucumber-codegen", + "cucumber-expressions", + "derive_more", + "either", + "futures", + "gherkin", + "globwalk", + "humantime", + "inventory", + "itertools 0.14.0", + "junit-report", + "linked-hash-map", + "pin-project", + "ref-cast", + "regex", + "sealed", + "smart-default", +] + +[[package]] +name = "cucumber-codegen" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f5afe541b5147a7b986816153ccfd502622bb37789420cfff412685f27c0a95" +dependencies = [ + "cucumber-expressions", + "inflections", + "itertools 0.14.0", + "proc-macro2", + "quote", + "regex", + "syn 2.0.111", + "synthez", +] + +[[package]] +name = "cucumber-expressions" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6401038de3af44fe74e6fccdb8a5b7db7ba418f480c8e9ad584c6f65c05a27a6" +dependencies = [ + "derive_more", + "either", + "nom 8.0.0", + "nom_locate", + "regex", + "regex-syntax", +] + +[[package]] +name = "cucumber_ext" +version = "0.1.0" +dependencies = [ + "cucumber", + "testing-framework-core", + "testing-framework-runner-compose", + "testing-framework-runner-local", + "testing-framework-workflows", + "thiserror 2.0.17", +] + [[package]] name = "curve25519-dalek" version = "4.1.3" @@ -1414,6 +1743,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-getters" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2c35ab6e03642397cdda1dd58abbc05d418aef8e36297f336d5aba060fe8df" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "derive_arbitrary" version = "1.4.2" @@ -1425,6 +1765,29 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "derive_more" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10b768e943bed7bf2cab53df09f4bc34bfd217cdb57d971e769874c9a6710618" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d286bfdaf75e988b4a78e013ecd79c581e06399ab53fbacd2d916c2f904f30b" +dependencies = [ + "convert_case 0.10.0", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.111", + "unicode-xid", +] + [[package]] name = "deunicode" version = "1.6.2" @@ -1617,6 +1980,12 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "enum-as-inner" version = "0.6.1" @@ -1686,6 +2055,21 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "executor-http-client" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "common-http-client", + "futures", + "nomos-core", + "nomos-http-api-common", + "reqwest", + "serde", + "serde_json", + "tracing", +] + [[package]] name = "eyre" version = "0.6.12" @@ -1985,6 +2369,23 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "gherkin" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70197ce7751bfe8bc828e3a855502d3a869a1e9416b58b10c4bde5cf8a0a3cb3" +dependencies = [ + "heck", + "peg", + "quote", + "serde", + "serde_json", + "syn 2.0.111", + "textwrap", + "thiserror 2.0.17", + "typed-builder", +] + [[package]] name = "gimli" version = "0.32.3" @@ -2053,6 +2454,24 @@ dependencies = [ "spinning_top", ] +[[package]] +name = "groth16" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-groth16", + "ark-serialize 0.4.2", + "generic-array 1.3.5", + "hex", + "num-bigint", + "serde", + "serde_json", + "thiserror 2.0.17", +] + [[package]] name = "group" version = "0.13.0" @@ -2737,6 +3156,12 @@ dependencies = [ "serde_core", ] +[[package]] +name = "inflections" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a" + [[package]] name = "inout" version = "0.1.4" @@ -2755,6 +3180,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "inventory" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc61209c082fbeb19919bee74b176221b27223e27b65d781eb91af24eb1fb46e" +dependencies = [ + "rustversion", +] + [[package]] name = "ipconfig" version = "0.3.2" @@ -2783,6 +3217,12 @@ dependencies = [ "serde", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + [[package]] name = "itertools" version = "0.10.5" @@ -2894,6 +3334,18 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "junit-report" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06c3a3342e6720a82d7d179f380e9841b73a1dd49344e33959fdfe571ce56b55" +dependencies = [ + "derive-getters", + "quick-xml", + "strip-ansi-escapes", + "time", +] + [[package]] name = "k256" version = "0.13.4" @@ -2931,6 +3383,56 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "key-management-system-keys" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "bytes", + "ed25519-dalek", + "generic-array 1.3.5", + "groth16", + "key-management-system-macros", + "nomos-blend-proofs", + "nomos-utils", + "num-bigint", + "poseidon2", + "rand_core 0.6.4", + "serde", + "subtle", + "thiserror 2.0.17", + "tokio", + "tracing", + "zeroize", + "zksign", +] + +[[package]] +name = "key-management-system-macros" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "key-management-system-service" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "key-management-system-keys", + "log", + "overwatch", + "serde", + "thiserror 2.0.17", + "tokio", + "tracing", +] + [[package]] name = "kube" version = "0.87.2" @@ -3022,6 +3524,41 @@ dependencies = [ "tracing", ] +[[package]] +name = "kzgrs" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ark-bls12-381", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-poly-commit", + "ark-serialize 0.4.2", + "blake2", + "blst", + "num-bigint", + "num-traits", + "rand 0.8.5", + "thiserror 1.0.69", +] + +[[package]] +name = "kzgrs-backend" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "blake2", + "itertools 0.12.1", + "kzgrs", + "nomos-core", + "rand 0.8.5", + "serde", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -3491,6 +4028,12 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + [[package]] name = "linux-raw-sys" version = "0.11.0" @@ -3518,1215 +4061,6 @@ version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" -[[package]] -name = "logos-blockchain-api-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "bytes", - "futures", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-chain-service", - "logos-blockchain-core", - "logos-blockchain-da-dispersal-service", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-da-sampling-service", - "logos-blockchain-da-verifier-service", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-libp2p", - "logos-blockchain-network-service", - "logos-blockchain-sdp-service", - "logos-blockchain-storage-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-time-service", - "logos-blockchain-tx-service", - "overwatch", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tracing", - "utoipa", - "utoipa-swagger-ui", -] - -[[package]] -name = "logos-blockchain-blend" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-blend-crypto", - "logos-blockchain-blend-message", - "logos-blockchain-blend-network", - "logos-blockchain-blend-proofs", - "logos-blockchain-blend-scheduling", -] - -[[package]] -name = "logos-blockchain-blend-crypto" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "blake2", - "logos-blockchain-groth16", - "logos-blockchain-poq", - "logos-blockchain-poseidon2", - "logos-blockchain-utils", - "rs-merkle-tree", - "thiserror 1.0.69", -] - -[[package]] -name = "logos-blockchain-blend-message" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "blake2", - "derivative", - "itertools 0.14.0", - "logos-blockchain-blend-crypto", - "logos-blockchain-blend-proofs", - "logos-blockchain-core", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-utils", - "serde", - "serde-big-array", - "serde_with", - "thiserror 1.0.69", - "tracing", - "zeroize", -] - -[[package]] -name = "logos-blockchain-blend-network" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "either", - "futures", - "futures-timer", - "libp2p", - "logos-blockchain-blend-message", - "logos-blockchain-blend-proofs", - "logos-blockchain-blend-scheduling", - "logos-blockchain-core", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-libp2p", - "tracing", -] - -[[package]] -name = "logos-blockchain-blend-proofs" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ed25519-dalek", - "generic-array 1.3.5", - "logos-blockchain-blend-crypto", - "logos-blockchain-groth16", - "logos-blockchain-poq", - "num-bigint", - "serde", - "thiserror 1.0.69", -] - -[[package]] -name = "logos-blockchain-blend-scheduling" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "derivative", - "fork_stream", - "futures", - "logos-blockchain-blend-message", - "logos-blockchain-blend-proofs", - "logos-blockchain-core", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-utils", - "multiaddr", - "rand 0.8.5", - "serde", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-blend-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "fork_stream", - "futures", - "libp2p", - "libp2p-stream", - "logos-blockchain-blend", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-chain-service", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-service", - "logos-blockchain-ledger", - "logos-blockchain-libp2p", - "logos-blockchain-network-service", - "logos-blockchain-poq", - "logos-blockchain-sdp-service", - "logos-blockchain-services-utils", - "logos-blockchain-time-service", - "logos-blockchain-utils", - "overwatch", - "rand 0.8.5", - "serde", - "serde_with", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-chain-broadcast-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "derivative", - "futures", - "logos-blockchain-core", - "overwatch", - "serde", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-chain-leader-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "logos-blockchain-blend-service", - "logos-blockchain-chain-service", - "logos-blockchain-chain-service-common", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-da-sampling-service", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-ledger", - "logos-blockchain-services-utils", - "logos-blockchain-time-service", - "logos-blockchain-tx-service", - "logos-blockchain-wallet-service", - "overwatch", - "serde", - "thiserror 1.0.69", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "logos-blockchain-chain-network-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "logos-blockchain-chain-service", - "logos-blockchain-chain-service-common", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-cryptarchia-sync", - "logos-blockchain-da-sampling-service", - "logos-blockchain-ledger", - "logos-blockchain-network-service", - "logos-blockchain-services-utils", - "logos-blockchain-time-service", - "logos-blockchain-tx-service", - "overwatch", - "rand 0.8.5", - "serde", - "serde_with", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", - "tracing-futures", -] - -[[package]] -name = "logos-blockchain-chain-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "bytes", - "futures", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-cryptarchia-sync", - "logos-blockchain-groth16", - "logos-blockchain-ledger", - "logos-blockchain-network-service", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "logos-blockchain-time-service", - "logos-blockchain-utils", - "num-bigint", - "overwatch", - "serde", - "serde_with", - "strum", - "thiserror 1.0.69", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "logos-blockchain-chain-service-common" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-core", - "serde", -] - -[[package]] -name = "logos-blockchain-circuits-prover" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-circuits-utils", - "tempfile", -] - -[[package]] -name = "logos-blockchain-circuits-utils" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "dirs", -] - -[[package]] -name = "logos-blockchain-common-http-client" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "futures", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-chain-service", - "logos-blockchain-core", - "logos-blockchain-da-messages", - "logos-blockchain-http-api-common", - "reqwest", - "serde", - "serde_json", - "thiserror 1.0.69", - "url", -] - -[[package]] -name = "logos-blockchain-core" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ark-ff 0.4.2", - "async-trait", - "bincode", - "blake2", - "bytes", - "const-hex", - "futures", - "generic-array 1.3.5", - "hex", - "logos-blockchain-blend-proofs", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-pol", - "logos-blockchain-poseidon2", - "logos-blockchain-utils", - "multiaddr", - "nom 8.0.0", - "num-bigint", - "serde", - "strum", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "logos-blockchain-cryptarchia-engine" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "cfg_eval", - "logos-blockchain-utils", - "serde", - "serde_with", - "thiserror 1.0.69", - "time", - "tokio", - "tracing", -] - -[[package]] -name = "logos-blockchain-cryptarchia-sync" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "bytes", - "futures", - "libp2p", - "libp2p-stream", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "rand 0.8.5", - "serde", - "serde_with", - "thiserror 1.0.69", - "tokio", - "tracing", -] - -[[package]] -name = "logos-blockchain-da-dispersal-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-core", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-services-utils", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-tracing", - "logos-blockchain-utils", - "overwatch", - "serde", - "serde_with", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-da-messages" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "blake2", - "futures", - "logos-blockchain-core", - "logos-blockchain-kzgrs-backend", - "serde", - "tokio", -] - -[[package]] -name = "logos-blockchain-da-network-core" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "cached", - "fixed", - "futures", - "indexmap 2.12.1", - "libp2p", - "libp2p-stream", - "log", - "logos-blockchain-core", - "logos-blockchain-da-messages", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-utils", - "rand 0.9.2", - "serde", - "serde_with", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", - "tracing-subscriber 0.3.22", -] - -[[package]] -name = "logos-blockchain-da-network-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "arc-swap", - "async-trait", - "bitvec", - "blake2", - "futures", - "libp2p", - "libp2p-identity", - "log", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-common-http-client", - "logos-blockchain-core", - "logos-blockchain-da-messages", - "logos-blockchain-da-network-core", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-libp2p", - "logos-blockchain-sdp-service", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-tracing", - "logos-blockchain-utils", - "multiaddr", - "overwatch", - "rand 0.8.5", - "serde", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", - "url", -] - -[[package]] -name = "logos-blockchain-da-sampling-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "bytes", - "either", - "futures", - "hex", - "libp2p-identity", - "logos-blockchain-core", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-tracing", - "logos-blockchain-tx-service", - "overwatch", - "rand 0.8.5", - "serde", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-da-verifier-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "libp2p", - "logos-blockchain-core", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-tracing", - "logos-blockchain-tx-service", - "logos-blockchain-utils", - "overwatch", - "serde", - "serde_with", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-executor" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "axum", - "clap", - "color-eyre", - "futures", - "logos-blockchain-api-service", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-core", - "logos-blockchain-da-dispersal-service", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-da-sampling-service", - "logos-blockchain-da-verifier-service", - "logos-blockchain-http-api-common", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-libp2p", - "logos-blockchain-network-service", - "logos-blockchain-node", - "logos-blockchain-sdp-service", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-time-service", - "logos-blockchain-tx-service", - "overwatch", - "serde", - "tokio", - "tower 0.4.13", - "tower-http 0.5.2", - "tracing", - "utoipa", - "utoipa-swagger-ui", -] - -[[package]] -name = "logos-blockchain-executor-http-client" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "futures", - "logos-blockchain-common-http-client", - "logos-blockchain-core", - "logos-blockchain-http-api-common", - "reqwest", - "serde", -] - -[[package]] -name = "logos-blockchain-groth16" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ark-bn254 0.4.0", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-groth16", - "ark-serialize 0.4.2", - "generic-array 1.3.5", - "hex", - "num-bigint", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "logos-blockchain-http-api-common" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "axum", - "governor", - "logos-blockchain-core", - "logos-blockchain-key-management-system-keys", - "serde", - "serde_json", - "serde_with", - "tower_governor", -] - -[[package]] -name = "logos-blockchain-key-management-system-keys" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "bytes", - "ed25519-dalek", - "generic-array 1.3.5", - "logos-blockchain-blend-proofs", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-macros", - "logos-blockchain-poseidon2", - "logos-blockchain-utils", - "logos-blockchain-zksign", - "num-bigint", - "rand_core 0.6.4", - "serde", - "subtle", - "thiserror 2.0.17", - "tokio", - "tracing", - "x25519-dalek", - "zeroize", -] - -[[package]] -name = "logos-blockchain-key-management-system-macros" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.111", -] - -[[package]] -name = "logos-blockchain-key-management-system-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "log", - "logos-blockchain-key-management-system-keys", - "overwatch", - "serde", - "thiserror 2.0.17", - "tokio", - "tracing", -] - -[[package]] -name = "logos-blockchain-kzgrs" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ark-bls12-381", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-poly-commit", - "ark-serialize 0.4.2", - "blake2", - "blst", - "num-bigint", - "num-traits", - "rand 0.8.5", - "thiserror 1.0.69", -] - -[[package]] -name = "logos-blockchain-kzgrs-backend" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "blake2", - "itertools 0.12.1", - "logos-blockchain-core", - "logos-blockchain-kzgrs", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "logos-blockchain-ledger" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-blend-crypto", - "logos-blockchain-blend-message", - "logos-blockchain-blend-proofs", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-mmr", - "logos-blockchain-utils", - "logos-blockchain-utxotree", - "num-bigint", - "rand 0.8.5", - "rpds", - "serde", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "logos-blockchain-libp2p" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "backon", - "blake2", - "default-net", - "either", - "futures", - "hex", - "igd-next 0.16.2", - "libp2p", - "logos-blockchain-cryptarchia-sync", - "logos-blockchain-utils", - "multiaddr", - "natpmp", - "netdev", - "num_enum", - "rand 0.8.5", - "serde", - "serde_with", - "thiserror 1.0.69", - "tokio", - "tracing", - "zerocopy", -] - -[[package]] -name = "logos-blockchain-mmr" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ark-ff 0.4.2", - "logos-blockchain-groth16", - "logos-blockchain-poseidon2", - "rpds", - "serde", -] - -[[package]] -name = "logos-blockchain-network-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-sync", - "logos-blockchain-libp2p", - "overwatch", - "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-node" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "axum", - "clap", - "color-eyre", - "futures", - "hex", - "http 1.4.0", - "logos-blockchain-api-service", - "logos-blockchain-blend", - "logos-blockchain-blend-service", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-chain-leader-service", - "logos-blockchain-chain-network-service", - "logos-blockchain-chain-service", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-da-messages", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-da-sampling-service", - "logos-blockchain-da-verifier-service", - "logos-blockchain-groth16", - "logos-blockchain-http-api-common", - "logos-blockchain-key-management-system-service", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-ledger", - "logos-blockchain-libp2p", - "logos-blockchain-network-service", - "logos-blockchain-pol", - "logos-blockchain-poq", - "logos-blockchain-sdp-service", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-system-sig-service", - "logos-blockchain-time-service", - "logos-blockchain-tracing", - "logos-blockchain-tracing-service", - "logos-blockchain-tx-service", - "logos-blockchain-utils", - "logos-blockchain-wallet-service", - "num-bigint", - "overwatch", - "serde", - "serde_ignored", - "serde_json", - "serde_with", - "serde_yaml", - "thiserror 2.0.17", - "time", - "tokio", - "tokio-stream", - "tower 0.4.13", - "tower-http 0.5.2", - "tracing", - "utoipa", - "utoipa-swagger-ui", -] - -[[package]] -name = "logos-blockchain-pol" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-circuits-prover", - "logos-blockchain-circuits-utils", - "logos-blockchain-groth16", - "logos-blockchain-witness-generator", - "num-bigint", - "num-traits", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "logos-blockchain-poq" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-circuits-prover", - "logos-blockchain-circuits-utils", - "logos-blockchain-groth16", - "logos-blockchain-pol", - "logos-blockchain-witness-generator", - "num-bigint", - "serde", - "serde_json", - "thiserror 2.0.17", -] - -[[package]] -name = "logos-blockchain-poseidon2" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ark-bn254 0.4.0", - "ark-ff 0.4.2", - "jf-poseidon2", - "num-bigint", -] - -[[package]] -name = "logos-blockchain-sdp-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "logos-blockchain-core", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-tx-service", - "overwatch", - "serde", - "thiserror 2.0.17", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-services-utils" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "log", - "overwatch", - "serde", - "serde_json", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "logos-blockchain-storage-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "bytes", - "futures", - "libp2p-identity", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "multiaddr", - "overwatch", - "rocksdb", - "serde", - "thiserror 1.0.69", - "tokio", - "tracing", -] - -[[package]] -name = "logos-blockchain-subnetworks-assignations" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "counter", - "libp2p-identity", - "logos-blockchain-core", - "logos-blockchain-utils", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "logos-blockchain-system-sig-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-ctrlc", - "async-trait", - "overwatch", - "tracing", -] - -[[package]] -name = "logos-blockchain-tests" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "blst", - "futures", - "futures-util", - "hex", - "logos-blockchain-api-service", - "logos-blockchain-blend-service", - "logos-blockchain-chain-broadcast-service", - "logos-blockchain-chain-leader-service", - "logos-blockchain-chain-network-service", - "logos-blockchain-chain-service", - "logos-blockchain-common-http-client", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-cryptarchia-sync", - "logos-blockchain-da-dispersal-service", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-da-sampling-service", - "logos-blockchain-da-verifier-service", - "logos-blockchain-executor", - "logos-blockchain-executor-http-client", - "logos-blockchain-groth16", - "logos-blockchain-http-api-common", - "logos-blockchain-key-management-system-service", - "logos-blockchain-kzgrs-backend", - "logos-blockchain-libp2p", - "logos-blockchain-network-service", - "logos-blockchain-node", - "logos-blockchain-sdp-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-time-service", - "logos-blockchain-tracing", - "logos-blockchain-tracing-service", - "logos-blockchain-tx-service", - "logos-blockchain-utils", - "logos-blockchain-wallet-service", - "num-bigint", - "rand 0.8.5", - "reqwest", - "serde_json", - "serde_yaml", - "serial_test", - "tempfile", - "time", - "tokio", - "tracing", -] - -[[package]] -name = "logos-blockchain-time-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "cfg_eval", - "futures", - "log", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-utils", - "overwatch", - "serde", - "serde_with", - "sntpc", - "thiserror 2.0.17", - "time", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "logos-blockchain-tracing" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "opentelemetry", - "opentelemetry-http", - "opentelemetry-otlp", - "opentelemetry-semantic-conventions", - "opentelemetry_sdk", - "rand 0.8.5", - "reqwest", - "serde", - "tokio", - "tracing", - "tracing-appender", - "tracing-gelf", - "tracing-loki", - "tracing-opentelemetry", - "tracing-subscriber 0.3.22", - "url", -] - -[[package]] -name = "logos-blockchain-tracing-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "logos-blockchain-tracing", - "overwatch", - "serde", - "tracing", - "tracing-appender", - "tracing-subscriber 0.3.22", -] - -[[package]] -name = "logos-blockchain-tx-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "futures", - "logos-blockchain-core", - "logos-blockchain-network-service", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "overwatch", - "rand 0.8.5", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-stream", - "tracing", - "utoipa", -] - -[[package]] -name = "logos-blockchain-utils" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "blake2", - "cipher", - "const-hex", - "humantime", - "overwatch", - "rand 0.8.5", - "serde", - "serde_with", - "time", -] - -[[package]] -name = "logos-blockchain-utxotree" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "ark-ff 0.4.2", - "logos-blockchain-core", - "logos-blockchain-groth16", - "logos-blockchain-poseidon2", - "num-bigint", - "rpds", - "serde", - "thiserror 1.0.69", -] - -[[package]] -name = "logos-blockchain-wallet" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-core", - "logos-blockchain-key-management-system-keys", - "logos-blockchain-ledger", - "num-bigint", - "rpds", - "thiserror 2.0.17", - "tracing", -] - -[[package]] -name = "logos-blockchain-wallet-service" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "async-trait", - "bytes", - "futures", - "hex", - "logos-blockchain-chain-service", - "logos-blockchain-core", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-service", - "logos-blockchain-ledger", - "logos-blockchain-services-utils", - "logos-blockchain-storage-service", - "logos-blockchain-wallet", - "overwatch", - "serde", - "thiserror 1.0.69", - "tokio", - "tracing", -] - -[[package]] -name = "logos-blockchain-witness-generator" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "tempfile", -] - -[[package]] -name = "logos-blockchain-zksign" -version = "0.1.0" -source = "git+https://github.com/logos-co/nomos-node.git?rev=97b411ed0ce269e72a6253c8cd48eea41db5ab71#97b411ed0ce269e72a6253c8cd48eea41db5ab71" -dependencies = [ - "logos-blockchain-circuits-prover", - "logos-blockchain-circuits-utils", - "logos-blockchain-groth16", - "logos-blockchain-poseidon2", - "logos-blockchain-witness-generator", - "num-bigint", - "serde", - "serde_json", - "thiserror 2.0.17", -] - [[package]] name = "loki-api" version = "0.1.3" @@ -4839,6 +4173,18 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "mmr" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ark-ff 0.4.2", + "groth16", + "poseidon2", + "rpds", + "serde", +] + [[package]] name = "moka" version = "0.12.11" @@ -5114,6 +4460,722 @@ dependencies = [ "memchr", ] +[[package]] +name = "nom_locate" +version = "5.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b577e2d69827c4740cba2b52efaad1c4cc7c73042860b199710b3575c68438d" +dependencies = [ + "bytecount", + "memchr", + "nom 8.0.0", +] + +[[package]] +name = "nomos-api" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "broadcast-service", + "bytes", + "chain-service", + "futures", + "kzgrs-backend", + "nomos-core", + "nomos-da-dispersal", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-da-sampling", + "nomos-da-verifier", + "nomos-libp2p", + "nomos-network", + "nomos-sdp", + "nomos-storage", + "overwatch", + "serde", + "serde_json", + "subnetworks-assignations", + "tokio", + "tokio-stream", + "tracing", + "tx-service", + "utoipa", + "utoipa-swagger-ui", +] + +[[package]] +name = "nomos-blend" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "nomos-blend-crypto", + "nomos-blend-message", + "nomos-blend-network", + "nomos-blend-proofs", + "nomos-blend-scheduling", +] + +[[package]] +name = "nomos-blend-crypto" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "blake2", + "groth16", + "nomos-utils", + "poq", + "poseidon2", + "rs-merkle-tree", + "serde", + "subtle", + "thiserror 1.0.69", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "nomos-blend-message" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "blake2", + "derivative", + "groth16", + "itertools 0.14.0", + "key-management-system-keys", + "nomos-blend-crypto", + "nomos-blend-proofs", + "nomos-core", + "nomos-utils", + "serde", + "serde-big-array", + "serde_with", + "thiserror 1.0.69", + "tracing", + "zeroize", +] + +[[package]] +name = "nomos-blend-network" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "either", + "futures", + "futures-timer", + "key-management-system-keys", + "libp2p", + "nomos-blend-message", + "nomos-blend-proofs", + "nomos-blend-scheduling", + "nomos-core", + "nomos-libp2p", + "tracing", +] + +[[package]] +name = "nomos-blend-proofs" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ed25519-dalek", + "generic-array 1.3.5", + "groth16", + "nomos-blend-crypto", + "num-bigint", + "poq", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "nomos-blend-scheduling" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "derivative", + "fork_stream", + "futures", + "key-management-system-keys", + "multiaddr", + "nomos-blend-crypto", + "nomos-blend-message", + "nomos-blend-proofs", + "nomos-core", + "nomos-utils", + "rand 0.8.5", + "serde", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "nomos-blend-service" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "broadcast-service", + "chain-service", + "cryptarchia-engine", + "fork_stream", + "futures", + "groth16", + "key-management-system-service", + "libp2p", + "libp2p-stream", + "nomos-blend", + "nomos-core", + "nomos-ledger", + "nomos-libp2p", + "nomos-network", + "nomos-sdp", + "nomos-time", + "nomos-utils", + "overwatch", + "poq", + "rand 0.8.5", + "serde", + "serde_with", + "services-utils", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "nomos-core" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ark-ff 0.4.2", + "async-trait", + "bincode", + "blake2", + "bytes", + "const-hex", + "cryptarchia-engine", + "futures", + "generic-array 1.3.5", + "groth16", + "hex", + "key-management-system-keys", + "multiaddr", + "nom 8.0.0", + "nomos-blend-proofs", + "nomos-utils", + "num-bigint", + "pol", + "poseidon2", + "serde", + "strum", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "nomos-da-dispersal" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "broadcast-service", + "futures", + "key-management-system-keys", + "kzgrs-backend", + "nomos-core", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-tracing", + "nomos-utils", + "overwatch", + "serde", + "serde_with", + "services-utils", + "subnetworks-assignations", + "thiserror 2.0.17", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "nomos-da-messages" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "blake2", + "futures", + "kzgrs-backend", + "nomos-core", + "serde", + "tokio", +] + +[[package]] +name = "nomos-da-network-core" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "cached", + "fixed", + "futures", + "indexmap 2.12.1", + "kzgrs-backend", + "libp2p", + "libp2p-stream", + "log", + "nomos-core", + "nomos-da-messages", + "nomos-utils", + "rand 0.9.2", + "serde", + "serde_with", + "subnetworks-assignations", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber 0.3.22", +] + +[[package]] +name = "nomos-da-network-service" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "arc-swap", + "async-trait", + "bitvec", + "blake2", + "broadcast-service", + "common-http-client", + "futures", + "kzgrs-backend", + "libp2p", + "libp2p-identity", + "log", + "multiaddr", + "nomos-core", + "nomos-da-messages", + "nomos-da-network-core", + "nomos-libp2p", + "nomos-sdp", + "nomos-storage", + "nomos-tracing", + "nomos-utils", + "overwatch", + "rand 0.8.5", + "serde", + "services-utils", + "subnetworks-assignations", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "url", +] + +[[package]] +name = "nomos-da-sampling" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "bytes", + "futures", + "hex", + "kzgrs-backend", + "libp2p-identity", + "nomos-core", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-storage", + "nomos-tracing", + "overwatch", + "rand 0.8.5", + "serde", + "services-utils", + "subnetworks-assignations", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "tx-service", +] + +[[package]] +name = "nomos-da-verifier" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "futures", + "kzgrs-backend", + "libp2p", + "nomos-core", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-storage", + "nomos-tracing", + "nomos-utils", + "overwatch", + "serde", + "serde_with", + "services-utils", + "subnetworks-assignations", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "tx-service", +] + +[[package]] +name = "nomos-executor" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "axum", + "broadcast-service", + "clap", + "color-eyre", + "futures", + "kzgrs-backend", + "nomos-api", + "nomos-core", + "nomos-da-dispersal", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-da-sampling", + "nomos-da-verifier", + "nomos-http-api-common", + "nomos-libp2p", + "nomos-network", + "nomos-node", + "nomos-sdp", + "nomos-storage", + "nomos-time", + "overwatch", + "serde", + "services-utils", + "subnetworks-assignations", + "tokio", + "tower 0.4.13", + "tower-http 0.5.2", + "tracing", + "tx-service", + "utoipa", + "utoipa-swagger-ui", +] + +[[package]] +name = "nomos-http-api-common" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "axum", + "governor", + "key-management-system-keys", + "nomos-core", + "serde", + "serde_json", + "serde_with", + "tower_governor", + "tracing", +] + +[[package]] +name = "nomos-ledger" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "cryptarchia-engine", + "groth16", + "key-management-system-keys", + "mmr", + "nomos-blend-crypto", + "nomos-blend-message", + "nomos-blend-proofs", + "nomos-core", + "nomos-utils", + "num-bigint", + "rand 0.8.5", + "rpds", + "serde", + "thiserror 1.0.69", + "tracing", + "utxotree", +] + +[[package]] +name = "nomos-libp2p" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "backon", + "blake2", + "cryptarchia-sync", + "default-net", + "either", + "futures", + "hex", + "igd-next 0.16.2", + "libp2p", + "multiaddr", + "natpmp", + "netdev", + "nomos-utils", + "num_enum", + "rand 0.8.5", + "serde", + "serde_with", + "thiserror 1.0.69", + "tokio", + "tracing", + "zerocopy", +] + +[[package]] +name = "nomos-network" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "cryptarchia-sync", + "futures", + "nomos-core", + "nomos-libp2p", + "overwatch", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "nomos-node" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "axum", + "broadcast-service", + "chain-leader", + "chain-network", + "chain-service", + "clap", + "color-eyre", + "cryptarchia-engine", + "derivative", + "futures", + "groth16", + "hex", + "http 1.4.0", + "key-management-system-service", + "kzgrs-backend", + "nomos-api", + "nomos-blend", + "nomos-blend-service", + "nomos-core", + "nomos-da-messages", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-da-sampling", + "nomos-da-verifier", + "nomos-http-api-common", + "nomos-ledger", + "nomos-libp2p", + "nomos-network", + "nomos-sdp", + "nomos-storage", + "nomos-system-sig", + "nomos-time", + "nomos-tracing", + "nomos-tracing-service", + "nomos-utils", + "nomos-wallet", + "num-bigint", + "overwatch", + "pol", + "poq", + "serde", + "serde_ignored", + "serde_json", + "serde_with", + "serde_yaml", + "services-utils", + "subnetworks-assignations", + "thiserror 2.0.17", + "time", + "tokio", + "tokio-stream", + "tower 0.4.13", + "tower-http 0.5.2", + "tracing", + "tx-service", + "utoipa", + "utoipa-swagger-ui", +] + +[[package]] +name = "nomos-sdp" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "futures", + "key-management-system-keys", + "nomos-core", + "overwatch", + "serde", + "thiserror 2.0.17", + "tokio", + "tokio-stream", + "tracing", + "tx-service", +] + +[[package]] +name = "nomos-storage" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "bytes", + "cryptarchia-engine", + "futures", + "libp2p-identity", + "multiaddr", + "nomos-core", + "overwatch", + "rocksdb", + "serde", + "thiserror 1.0.69", + "tokio", + "tracing", +] + +[[package]] +name = "nomos-system-sig" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-ctrlc", + "async-trait", + "overwatch", + "tracing", +] + +[[package]] +name = "nomos-time" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "cfg_eval", + "cryptarchia-engine", + "futures", + "log", + "nomos-utils", + "overwatch", + "serde", + "serde_with", + "sntpc", + "thiserror 2.0.17", + "time", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "nomos-tracing" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "opentelemetry", + "opentelemetry-http", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", + "opentelemetry_sdk", + "rand 0.8.5", + "reqwest", + "serde", + "tokio", + "tracing", + "tracing-appender", + "tracing-gelf", + "tracing-loki", + "tracing-opentelemetry", + "tracing-subscriber 0.3.22", + "url", +] + +[[package]] +name = "nomos-tracing-service" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "nomos-tracing", + "overwatch", + "serde", + "tracing", + "tracing-appender", + "tracing-subscriber 0.3.22", +] + +[[package]] +name = "nomos-utils" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "blake2", + "cipher", + "const-hex", + "humantime", + "overwatch", + "rand 0.8.5", + "serde", + "serde_with", + "time", +] + +[[package]] +name = "nomos-wallet" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "bytes", + "chain-service", + "futures", + "groth16", + "hex", + "key-management-system-service", + "nomos-core", + "nomos-ledger", + "nomos-storage", + "overwatch", + "serde", + "services-utils", + "thiserror 1.0.69", + "tokio", + "tracing", + "wallet", +] + [[package]] name = "nonempty" version = "0.7.0" @@ -5240,6 +5302,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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + [[package]] name = "openssl" version = "0.10.75" @@ -5403,7 +5471,7 @@ name = "overwatch-derive" version = "0.1.0" source = "git+https://github.com/logos-co/Overwatch?rev=f5a9902#f5a99022f389d65adbd55e51f1e3f9eead62432a" dependencies = [ - "convert_case", + "convert_case 0.8.0", "proc-macro-error2", "proc-macro2", "quote", @@ -5460,6 +5528,33 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "peg" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f76678828272f177ac33b7e2ac2e3e73cc6c1cd1e3e387928aa69562fa51367" +dependencies = [ + "peg-macros", + "peg-runtime", +] + +[[package]] +name = "peg-macros" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "636d60acf97633e48d266d7415a9355d4389cea327a193f87df395d88cd2b14d" +dependencies = [ + "peg-runtime", + "proc-macro2", + "quote", +] + +[[package]] +name = "peg-runtime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9555b1514d2d99d78150d3c799d4c357a3e2c2a8062cd108e93a06d9057629c5" + [[package]] name = "pem" version = "3.0.6" @@ -5605,6 +5700,22 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "pol" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "circuits-prover", + "circuits-utils", + "groth16", + "num-bigint", + "num-traits", + "serde", + "serde_json", + "thiserror 2.0.17", + "witness-generator", +] + [[package]] name = "polling" version = "3.11.0" @@ -5619,12 +5730,39 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "poq" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "circuits-prover", + "circuits-utils", + "groth16", + "num-bigint", + "pol", + "serde", + "serde_json", + "thiserror 2.0.17", + "witness-generator", +] + [[package]] name = "portable-atomic" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +[[package]] +name = "poseidon2" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "jf-poseidon2", + "num-bigint", +] + [[package]] name = "potential_utf" version = "0.1.4" @@ -5833,6 +5971,15 @@ dependencies = [ "unsigned-varint 0.8.0", ] +[[package]] +name = "quick-xml" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" +dependencies = [ + "memchr", +] + [[package]] name = "quinn" version = "0.11.9" @@ -6020,6 +6167,26 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "regex" version = "1.12.2" @@ -6186,7 +6353,8 @@ name = "runner-examples" version = "0.1.0" dependencies = [ "anyhow", - "async-trait", + "cucumber", + "cucumber_ext", "testing-framework-core", "testing-framework-runner-compose", "testing-framework-runner-k8s", @@ -6424,6 +6592,17 @@ version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" +[[package]] +name = "sealed" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22f968c5ea23d555e670b449c1c5e7b2fc399fdaec1d304a17cd48e288abc107" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "sec1" version = "0.7.3" @@ -6637,6 +6816,21 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "services-utils" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "futures", + "log", + "overwatch", + "serde", + "serde_json", + "thiserror 1.0.69", + "tracing", +] + [[package]] name = "sha2" version = "0.10.9" @@ -6716,6 +6910,23 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +[[package]] +name = "smart-default" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eb01866308440fc64d6c44d9e86c5cc17adfe33c4d6eed55da9145044d0ffc1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + +[[package]] +name = "smawk" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c" + [[package]] name = "snap" version = "1.1.1" @@ -6783,6 +6994,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strip-ansi-escapes" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8f8038e7e7969abb3f1b7c2a811225e9296da208539e0f79c5251d6cac0025" +dependencies = [ + "vte", +] + [[package]] name = "strsim" version = "0.11.1" @@ -6810,6 +7030,19 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "subnetworks-assignations" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "counter", + "libp2p-identity", + "nomos-core", + "nomos-utils", + "rand 0.8.5", + "serde", +] + [[package]] name = "subtle" version = "2.6.1" @@ -6858,6 +7091,39 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "synthez" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d8a928f38f1bc873f28e0d2ba8298ad65374a6ac2241dabd297271531a736cd" +dependencies = [ + "syn 2.0.111", + "synthez-codegen", + "synthez-core", +] + +[[package]] +name = "synthez-codegen" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fb83b8df4238e11746984dfb3819b155cd270de0e25847f45abad56b3671047" +dependencies = [ + "syn 2.0.111", + "synthez-core", +] + +[[package]] +name = "synthez-core" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "906fba967105d822e7c7ed60477b5e76116724d33de68a585681fb253fc30d5c" +dependencies = [ + "proc-macro2", + "quote", + "sealed", + "syn 2.0.111", +] + [[package]] name = "system-configuration" version = "0.5.1" @@ -6947,41 +7213,51 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "terminal_size" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +dependencies = [ + "rustix", + "windows-sys 0.60.2", +] + [[package]] name = "testing-framework-config" version = "0.1.0" dependencies = [ "blst", + "chain-leader", + "chain-network", + "chain-service", + "cryptarchia-engine", + "cryptarchia-sync", + "groth16", "hex", - "logos-blockchain-api-service", - "logos-blockchain-blend-service", - "logos-blockchain-chain-leader-service", - "logos-blockchain-chain-network-service", - "logos-blockchain-chain-service", - "logos-blockchain-core", - "logos-blockchain-cryptarchia-engine", - "logos-blockchain-cryptarchia-sync", - "logos-blockchain-da-dispersal-service", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-da-sampling-service", - "logos-blockchain-da-verifier-service", - "logos-blockchain-executor", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-service", - "logos-blockchain-ledger", - "logos-blockchain-libp2p", - "logos-blockchain-node", - "logos-blockchain-sdp-service", - "logos-blockchain-subnetworks-assignations", - "logos-blockchain-time-service", - "logos-blockchain-tracing", - "logos-blockchain-tracing-service", - "logos-blockchain-utils", - "logos-blockchain-wallet-service", + "key-management-system-service", + "nomos-api", + "nomos-blend-service", + "nomos-core", + "nomos-da-dispersal", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-da-sampling", + "nomos-da-verifier", + "nomos-executor", + "nomos-ledger", + "nomos-libp2p", + "nomos-node", + "nomos-sdp", + "nomos-time", + "nomos-tracing", + "nomos-tracing-service", + "nomos-utils", + "nomos-wallet", "num-bigint", "rand 0.8.5", "serde", + "subnetworks-assignations", "testing-framework-env", "thiserror 2.0.17", "time", @@ -6994,23 +7270,23 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", + "chain-service", + "common-http-client", "futures", + "groth16", "hex", - "logos-blockchain-chain-service", - "logos-blockchain-common-http-client", - "logos-blockchain-core", - "logos-blockchain-da-network-core", - "logos-blockchain-da-network-service", - "logos-blockchain-executor", - "logos-blockchain-groth16", - "logos-blockchain-http-api-common", - "logos-blockchain-key-management-system-service", - "logos-blockchain-libp2p", - "logos-blockchain-network-service", - "logos-blockchain-node", - "logos-blockchain-tracing", - "logos-blockchain-tracing-service", - "logos-blockchain-utils", + "key-management-system-service", + "nomos-core", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-executor", + "nomos-http-api-common", + "nomos-libp2p", + "nomos-network", + "nomos-node", + "nomos-tracing", + "nomos-tracing-service", + "nomos-utils", "prometheus-http-query", "rand 0.8.5", "reqwest", @@ -7036,27 +7312,26 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "cfgsync_tf", - "logos-blockchain-core", - "logos-blockchain-groth16", - "logos-blockchain-key-management-system-service", - "logos-blockchain-ledger", - "logos-blockchain-tests", - "logos-blockchain-tracing", - "logos-blockchain-tracing-service", - "logos-blockchain-zksign", + "cfgsync", + "groth16", + "key-management-system-service", + "nomos-core", + "nomos-ledger", + "nomos-tracing", + "nomos-tracing-service", "reqwest", "serde", "tempfile", "tera", - "testing-framework-config", "testing-framework-core", "testing-framework-env", + "tests", "thiserror 2.0.17", "tokio", "tracing", "url", "uuid", + "zksign", ] [[package]] @@ -7067,13 +7342,12 @@ dependencies = [ "async-trait", "k8s-openapi", "kube", - "logos-blockchain-tracing", - "logos-blockchain-tracing-service", + "nomos-tracing", + "nomos-tracing-service", "reqwest", "serde", "serde_yaml", "tempfile", - "testing-framework-config", "testing-framework-core", "testing-framework-env", "thiserror 2.0.17", @@ -7088,16 +7362,8 @@ name = "testing-framework-runner-local" version = "0.1.0" dependencies = [ "async-trait", - "logos-blockchain-executor", - "logos-blockchain-libp2p", - "logos-blockchain-network-service", - "logos-blockchain-node", - "logos-blockchain-utils", - "rand 0.8.5", - "testing-framework-config", "testing-framework-core", "thiserror 2.0.17", - "tokio", "tracing", ] @@ -7106,9 +7372,9 @@ name = "testing-framework-workflows" version = "0.1.0" dependencies = [ "async-trait", - "logos-blockchain-chain-service", - "logos-blockchain-core", - "logos-blockchain-key-management-system-service", + "chain-service", + "key-management-system-service", + "nomos-core", "rand 0.8.5", "reqwest", "testing-framework-config", @@ -7118,6 +7384,71 @@ dependencies = [ "tracing", ] +[[package]] +name = "tests" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "blst", + "broadcast-service", + "chain-leader", + "chain-network", + "chain-service", + "common-http-client", + "cryptarchia-engine", + "cryptarchia-sync", + "executor-http-client", + "futures", + "futures-util", + "groth16", + "hex", + "key-management-system-service", + "kzgrs-backend", + "nomos-api", + "nomos-blend-service", + "nomos-core", + "nomos-da-dispersal", + "nomos-da-network-core", + "nomos-da-network-service", + "nomos-da-sampling", + "nomos-da-verifier", + "nomos-executor", + "nomos-http-api-common", + "nomos-libp2p", + "nomos-network", + "nomos-node", + "nomos-sdp", + "nomos-time", + "nomos-tracing", + "nomos-tracing-service", + "nomos-utils", + "nomos-wallet", + "num-bigint", + "rand 0.8.5", + "reqwest", + "serde_json", + "serde_yaml", + "serial_test", + "subnetworks-assignations", + "tempfile", + "time", + "tokio", + "tracing", + "tx-service", +] + +[[package]] +name = "textwrap" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" +dependencies = [ + "smawk", + "unicode-linebreak", + "unicode-width", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -7688,6 +8019,48 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tx-service" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "async-trait", + "futures", + "nomos-core", + "nomos-network", + "nomos-storage", + "overwatch", + "rand 0.8.5", + "serde", + "serde_json", + "services-utils", + "thiserror 1.0.69", + "tokio", + "tokio-stream", + "tracing", + "utoipa", +] + +[[package]] +name = "typed-builder" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31aa81521b70f94402501d848ccc0ecaa8f93c8eb6999eb9747e72287757ffda" +dependencies = [ + "typed-builder-macro", +] + +[[package]] +name = "typed-builder-macro" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076a02dc54dd46795c2e9c8282ed40bcfb1e22747e955de9389a1de28190fb26" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "typenum" version = "1.19.0" @@ -7730,12 +8103,30 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +[[package]] +name = "unicode-linebreak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f" + [[package]] name = "unicode-segmentation" version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +[[package]] +name = "unicode-width" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -7778,6 +8169,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 = "utoipa" version = "4.2.3" @@ -7826,6 +8223,20 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2eebbbfe4093922c2b6734d7c679ebfebd704a0d7e56dfcb0d05818ce28977d" +[[package]] +name = "utxotree" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "ark-ff 0.4.2", + "groth16", + "num-bigint", + "poseidon2", + "rpds", + "serde", + "thiserror 1.0.69", +] + [[package]] name = "uuid" version = "1.19.0" @@ -7855,6 +8266,15 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vte" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "231fdcd7ef3037e8330d8e17e61011a2c244126acc0a982f4040ac3f9f0bc077" +dependencies = [ + "memchr", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -7865,6 +8285,20 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "wallet" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "key-management-system-keys", + "nomos-core", + "nomos-ledger", + "num-bigint", + "rpds", + "thiserror 2.0.17", + "tracing", +] + [[package]] name = "want" version = "0.3.1" @@ -8404,6 +8838,15 @@ version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +[[package]] +name = "witness-generator" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "circuits-utils", + "tempfile", +] + [[package]] name = "writeable" version = "0.6.2" @@ -8604,3 +9047,19 @@ dependencies = [ "num_enum", "thiserror 1.0.69", ] + +[[package]] +name = "zksign" +version = "0.1.0" +source = "git+https://github.com/logos-co/nomos-node.git?rev=1fce2dc3f482c16361316eb2a1b6ccd1206aa917#1fce2dc3f482c16361316eb2a1b6ccd1206aa917" +dependencies = [ + "circuits-prover", + "circuits-utils", + "groth16", + "num-bigint", + "poseidon2", + "serde", + "serde_json", + "thiserror 2.0.17", + "witness-generator", +] diff --git a/examples/cucumber/features/auto_deployer_smoke.feature b/examples/cucumber/features/auto_deployer_smoke.feature index e69de29..7658e0c 100644 --- a/examples/cucumber/features/auto_deployer_smoke.feature +++ b/examples/cucumber/features/auto_deployer_smoke.feature @@ -0,0 +1,31 @@ +Feature: Testing Framework - Auto Local/Compose Deployer + + Scenario: Run auto deployer smoke scenario (tx + liveness) + Given we have a CLI deployer specified + And topology has 1 validators and 1 executors + And run duration is 60 seconds + And wallets total funds is 1000000000 split across 50 users + And transactions rate is 1 per block + And expect consensus liveness + When run scenario + Then scenario should succeed + + # Note: This test may fail on slow computers + Scenario: Run auto deployer stress smoke scenario (tx + liveness) + Given we have a CLI deployer specified + And topology has 3 validators and 3 executors + And run duration is 120 seconds + And wallets total funds is 1000000000 split across 500 users + And transactions rate is 10 per block + And expect consensus liveness + When run scenario + Then scenario should succeed + + Scenario: Run auto deployer stress smoke scenario no liveness (tx) + Given we have a CLI deployer specified + And topology has 3 validators and 3 executors + And run duration is 120 seconds + And wallets total funds is 1000000000 split across 500 users + And transactions rate is 10 per block + When run scenario + Then scenario should succeed diff --git a/examples/cucumber/features/compose_smoke.feature b/examples/cucumber/features/compose_smoke.feature index e69de29..02c8805 100644 --- a/examples/cucumber/features/compose_smoke.feature +++ b/examples/cucumber/features/compose_smoke.feature @@ -0,0 +1,12 @@ +@compose +Feature: Testing Framework - Compose Runner + + Scenario: Run a compose smoke scenario (tx + liveness) + Given deployer is "compose" + And topology has 1 validators and 1 executors + And wallets total funds is 1000 split across 10 users + And run duration is 60 seconds + And transactions rate is 1 per block + And expect consensus liveness + When run scenario + Then scenario should succeed diff --git a/examples/cucumber/features/local_smoke.feature b/examples/cucumber/features/local_smoke.feature index e69de29..2bab5d4 100644 --- a/examples/cucumber/features/local_smoke.feature +++ b/examples/cucumber/features/local_smoke.feature @@ -0,0 +1,12 @@ +@local +Feature: Testing Framework - Local Runner + + Scenario: Run a local smoke scenario (tx + liveness) + Given deployer is "local" + And topology has 1 validators and 1 executors + And run duration is 60 seconds + And wallets total funds is 1000000000 split across 50 users + And transactions rate is 1 per block + And expect consensus liveness + When run scenario + Then scenario should succeed diff --git a/testing-framework/cucumber/src/steps/run.rs b/testing-framework/cucumber/src/steps/run.rs index e69de29..df1722e 100644 --- a/testing-framework/cucumber/src/steps/run.rs +++ b/testing-framework/cucumber/src/steps/run.rs @@ -0,0 +1,72 @@ +use cucumber::{then, when}; +use testing_framework_core::scenario::Deployer as _; +use testing_framework_runner_compose::ComposeDeployer; +use testing_framework_runner_local::LocalDeployer; + +use crate::world::{DeployerKind, StepError, StepResult, TestingFrameworkWorld}; + +#[when(expr = "run scenario")] +async fn run_scenario(world: &mut TestingFrameworkWorld) -> StepResult { + let deployer = world.deployer.ok_or(StepError::MissingDeployer)?; + world.run.result = Some(match deployer { + DeployerKind::Local => { + let mut scenario = world.build_local_scenario()?; + let deployer = LocalDeployer::default(); + let result = async { + let runner = + deployer + .deploy(&scenario) + .await + .map_err(|e| StepError::RunFailed { + message: format!("local deploy failed: {e}"), + })?; + runner + .run(&mut scenario) + .await + .map_err(|e| StepError::RunFailed { + message: format!("scenario run failed: {e}"), + })?; + Ok::<(), StepError>(()) + } + .await; + + result.map_err(|e| e.to_string()) + } + DeployerKind::Compose => { + let mut scenario = world.build_compose_scenario()?; + let deployer = ComposeDeployer::default().with_readiness(world.readiness_checks); + let result = async { + let runner = + deployer + .deploy(&scenario) + .await + .map_err(|e| StepError::RunFailed { + message: format!("compose deploy failed: {e}"), + })?; + runner + .run(&mut scenario) + .await + .map_err(|e| StepError::RunFailed { + message: format!("scenario run failed: {e}"), + })?; + Ok::<(), StepError>(()) + } + .await; + + result.map_err(|e| e.to_string()) + } + }); + + Ok(()) +} + +#[then(expr = "scenario should succeed")] +async fn scenario_should_succeed(world: &mut TestingFrameworkWorld) -> StepResult { + match world.run.result.take() { + Some(Ok(())) => Ok(()), + Some(Err(message)) => Err(StepError::RunFailed { message }), + None => Err(StepError::RunFailed { + message: "scenario was not run".to_owned(), + }), + } +} diff --git a/testing-framework/cucumber/src/steps/workloads.rs b/testing-framework/cucumber/src/steps/workloads.rs index e69de29..2b687e6 100644 --- a/testing-framework/cucumber/src/steps/workloads.rs +++ b/testing-framework/cucumber/src/steps/workloads.rs @@ -0,0 +1,41 @@ +use cucumber::given; + +use crate::world::{StepResult, TestingFrameworkWorld}; + +#[given(expr = "wallets total funds is {int} split across {int} users")] +async fn wallets_total_funds( + world: &mut TestingFrameworkWorld, + total_funds: u64, + users: usize, +) -> StepResult { + world.set_wallets(total_funds, users) +} + +#[given(expr = "run duration is {int} seconds")] +async fn run_duration(world: &mut TestingFrameworkWorld, seconds: u64) -> StepResult { + world.set_run_duration(seconds) +} + +#[given(expr = "transactions rate is {int} per block")] +async fn tx_rate(world: &mut TestingFrameworkWorld, rate: u64) -> StepResult { + world.set_transactions_rate(rate, None) +} + +#[given(expr = "transactions rate is {int} per block using {int} users")] +async fn tx_rate_with_users( + world: &mut TestingFrameworkWorld, + rate: u64, + users: usize, +) -> StepResult { + world.set_transactions_rate(rate, Some(users)) +} + +#[given(expr = "expect consensus liveness")] +async fn expect_consensus_liveness(world: &mut TestingFrameworkWorld) -> StepResult { + world.enable_consensus_liveness() +} + +#[given(expr = "consensus liveness lag allowance is {int}")] +async fn liveness_lag_allowance(world: &mut TestingFrameworkWorld, blocks: u64) -> StepResult { + world.set_consensus_liveness_lag_allowance(blocks) +} diff --git a/testing-framework/cucumber/src/world.rs b/testing-framework/cucumber/src/world.rs index e69de29..911b2f8 100644 --- a/testing-framework/cucumber/src/world.rs +++ b/testing-framework/cucumber/src/world.rs @@ -0,0 +1,331 @@ +use std::{env, path::PathBuf, time::Duration}; + +use cucumber::World; +use testing_framework_core::scenario::{ + Builder, NodeControlCapability, Scenario, ScenarioBuildError, ScenarioBuilder, +}; +use testing_framework_workflows::{ScenarioBuilderExt as _, expectations::ConsensusLiveness}; +use thiserror::Error; + +#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] +pub enum DeployerKind { + #[default] + Local, + Compose, +} + +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub enum NetworkKind { + Star, +} + +#[derive(Debug, Default, Clone)] +pub struct RunState { + pub result: Option>, +} + +#[derive(Debug, Default, Clone, Copy)] +pub struct ScenarioSpec { + pub topology: Option, + pub duration_secs: Option, + pub wallets: Option, + pub transactions: Option, + pub consensus_liveness: Option, +} + +#[derive(Debug, Clone, Copy)] +pub struct TopologySpec { + pub validators: usize, + pub executors: usize, + pub network: NetworkKind, +} + +#[derive(Debug, Clone, Copy)] +pub struct WalletSpec { + pub total_funds: u64, + pub users: usize, +} + +#[derive(Debug, Clone, Copy)] +pub struct TransactionSpec { + pub rate_per_block: u64, + pub users: Option, +} + +#[derive(Debug, Clone, Copy)] +pub struct ConsensusLivenessSpec { + pub lag_allowance: Option, +} + +#[derive(Debug, Error)] +pub enum StepError { + #[error("deployer is not selected; set it first (e.g. `Given deployer is \"local\"`)")] + MissingDeployer, + #[error("scenario topology is not configured")] + MissingTopology, + #[error("scenario run duration is not configured")] + MissingRunDuration, + #[error("unsupported deployer kind: {value}")] + UnsupportedDeployer { value: String }, + #[error("step requires deployer {expected:?}, but current deployer is {actual:?}")] + DeployerMismatch { + expected: DeployerKind, + actual: DeployerKind, + }, + #[error("invalid argument: {message}")] + InvalidArgument { message: String }, + #[error("{message}")] + Preflight { message: String }, + #[error("failed to build scenario: {source}")] + ScenarioBuild { + #[source] + source: ScenarioBuildError, + }, + #[error("{message}")] + RunFailed { message: String }, +} + +pub type StepResult = Result<(), StepError>; + +#[derive(World, Debug, Default)] +pub struct TestingFrameworkWorld { + pub deployer: Option, + pub spec: ScenarioSpec, + pub run: RunState, + pub readiness_checks: bool, +} + +impl TestingFrameworkWorld { + pub fn set_deployer(&mut self, kind: DeployerKind) -> StepResult { + self.deployer = Some(kind); + Ok(()) + } + + pub fn set_topology( + &mut self, + validators: usize, + executors: usize, + network: NetworkKind, + ) -> StepResult { + self.spec.topology = Some(TopologySpec { + validators: positive_usize("validators", validators)?, + executors, + network, + }); + Ok(()) + } + + pub fn set_run_duration(&mut self, seconds: u64) -> StepResult { + self.spec.duration_secs = Some(positive_u64("duration", seconds)?); + Ok(()) + } + + pub fn set_wallets(&mut self, total_funds: u64, users: usize) -> StepResult { + self.spec.wallets = Some(WalletSpec { + total_funds, + users: positive_usize("wallet users", users)?, + }); + Ok(()) + } + + pub fn set_transactions_rate( + &mut self, + rate_per_block: u64, + users: Option, + ) -> StepResult { + if self.spec.transactions.is_some() { + return Err(StepError::InvalidArgument { + message: "transactions workload already configured".to_owned(), + }); + } + + if users.is_some_and(|u| u == 0) { + return Err(StepError::InvalidArgument { + message: "transactions users must be > 0".to_owned(), + }); + } + + self.spec.transactions = Some(TransactionSpec { + rate_per_block: positive_u64("transactions rate", rate_per_block)?, + users, + }); + Ok(()) + } + + pub fn enable_consensus_liveness(&mut self) -> StepResult { + if self.spec.consensus_liveness.is_none() { + self.spec.consensus_liveness = Some(ConsensusLivenessSpec { + lag_allowance: None, + }); + } + + Ok(()) + } + + pub fn set_consensus_liveness_lag_allowance(&mut self, blocks: u64) -> StepResult { + let blocks = positive_u64("lag allowance", blocks)?; + + self.spec.consensus_liveness = Some(ConsensusLivenessSpec { + lag_allowance: Some(blocks), + }); + + Ok(()) + } + + pub fn build_local_scenario(&self) -> Result, StepError> { + self.preflight(DeployerKind::Local)?; + let builder = self.make_builder_for_deployer::<()>(DeployerKind::Local)?; + builder + .build() + .map_err(|source| StepError::ScenarioBuild { source }) + } + + pub fn build_compose_scenario(&self) -> Result, StepError> { + self.preflight(DeployerKind::Compose)?; + let builder = + self.make_builder_for_deployer::(DeployerKind::Compose)?; + builder + .build() + .map_err(|source| StepError::ScenarioBuild { source }) + } + + pub fn preflight(&self, expected: DeployerKind) -> Result<(), StepError> { + let actual = self.deployer.ok_or(StepError::MissingDeployer)?; + if actual != expected { + return Err(StepError::DeployerMismatch { expected, actual }); + } + + if !is_truthy_env("POL_PROOF_DEV_MODE") { + return Err(StepError::Preflight { + message: + "POL_PROOF_DEV_MODE must be set to \"true\" (or \"1\") for practical test runs." + .to_owned(), + }); + } + + if expected == DeployerKind::Local { + let node_ok = env::var_os("NOMOS_NODE_BIN") + .map(PathBuf::from) + .is_some_and(|p| p.is_file()) + || shared_host_bin_path("nomos-node").is_file(); + + let requires_executor_bin = self + .spec + .topology + .is_some_and(|topology| topology.executors > 0); + + let exec_ok = if requires_executor_bin { + env::var_os("NOMOS_EXECUTOR_BIN") + .map(PathBuf::from) + .is_some_and(|p| p.is_file()) + || shared_host_bin_path("nomos-executor").is_file() + } else { + true + }; + + if !(node_ok && exec_ok) { + return Err(StepError::Preflight { + message: "Missing Logos host binaries. Set NOMOS_NODE_BIN (and NOMOS_EXECUTOR_BIN if your scenario uses executors), or run `scripts/run/run-examples.sh host` to restore them into `testing-framework/assets/stack/bin`.".to_owned(), + }); + } + } + + Ok(()) + } + + fn make_builder_for_deployer( + &self, + expected: DeployerKind, + ) -> Result, StepError> { + let actual = self.deployer.ok_or(StepError::MissingDeployer)?; + if actual != expected { + return Err(StepError::DeployerMismatch { expected, actual }); + } + + let topology = self.spec.topology.ok_or(StepError::MissingTopology)?; + let duration_secs = self + .spec + .duration_secs + .ok_or(StepError::MissingRunDuration)?; + + let mut builder: Builder = make_builder(topology).with_capabilities(Caps::default()); + + builder = builder.with_run_duration(Duration::from_secs(duration_secs)); + + if let Some(wallets) = self.spec.wallets { + builder = builder.initialize_wallet(wallets.total_funds, wallets.users); + } + + if let Some(tx) = self.spec.transactions { + builder = builder.transactions_with(|flow| { + let mut flow = flow.rate(tx.rate_per_block); + if let Some(users) = tx.users { + flow = flow.users(users); + } + flow + }); + } + + if let Some(liveness) = self.spec.consensus_liveness { + if let Some(lag) = liveness.lag_allowance { + builder = + builder.with_expectation(ConsensusLiveness::default().with_lag_allowance(lag)); + } else { + builder = builder.expect_consensus_liveness(); + } + } + + Ok(builder) + } +} + +fn make_builder(topology: TopologySpec) -> Builder<()> { + ScenarioBuilder::topology_with(|t| { + let base = match topology.network { + NetworkKind::Star => t.network_star(), + }; + base.validators(topology.validators) + .executors(topology.executors) + }) +} + +fn is_truthy_env(key: &str) -> bool { + env::var(key) + .ok() + .is_some_and(|value| matches!(value.as_str(), "1" | "true" | "TRUE" | "yes" | "YES")) +} + +fn positive_usize(label: &str, value: usize) -> Result { + if value == 0 { + Err(StepError::InvalidArgument { + message: format!("{label} must be > 0"), + }) + } else { + Ok(value) + } +} + +fn positive_u64(label: &str, value: u64) -> Result { + if value == 0 { + Err(StepError::InvalidArgument { + message: format!("{label} must be > 0"), + }) + } else { + Ok(value) + } +} + +pub fn parse_deployer(value: &str) -> Result { + match value.trim().to_ascii_lowercase().as_str() { + "local" | "host" => Ok(DeployerKind::Local), + "compose" | "docker" => Ok(DeployerKind::Compose), + other => Err(StepError::UnsupportedDeployer { + value: other.to_owned(), + }), + } +} + +pub fn shared_host_bin_path(binary_name: &str) -> PathBuf { + let cucumber_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + cucumber_dir.join("../assets/stack/bin").join(binary_name) +} diff --git a/testing-framework/deployers/local/src/runner.rs b/testing-framework/deployers/local/src/runner.rs index a89ae9c..4e08aaa 100644 --- a/testing-framework/deployers/local/src/runner.rs +++ b/testing-framework/deployers/local/src/runner.rs @@ -1,13 +1,10 @@ -use std::sync::Arc; - use async_trait::async_trait; use testing_framework_core::{ scenario::{ - BlockFeed, BlockFeedTask, Deployer, DynError, Metrics, NodeClients, NodeControlCapability, - RunContext, Runner, Scenario, ScenarioError, spawn_block_feed, + BlockFeed, BlockFeedTask, Deployer, DynError, Metrics, NodeClients, RunContext, Runner, + Scenario, ScenarioError, spawn_block_feed, }, topology::{ - config::TopologyConfig, deployment::{SpawnTopologyError, Topology}, readiness::ReadinessError, }, @@ -15,10 +12,6 @@ use testing_framework_core::{ use thiserror::Error; use tracing::{debug, info}; -use crate::{ - manual::{LocalManualCluster, ManualClusterError}, - node_control::{LocalDynamicNodes, LocalDynamicSeed}, -}; /// Spawns validators and executors as local processes, reusing the existing /// integration harness. #[derive(Clone)] @@ -89,44 +82,6 @@ impl Deployer<()> for LocalDeployer { } } -#[async_trait] -impl Deployer for LocalDeployer { - type Error = LocalDeployerError; - - async fn deploy( - &self, - scenario: &Scenario, - ) -> Result { - info!( - validators = scenario.topology().validators().len(), - executors = scenario.topology().executors().len(), - "starting local deployment with node control" - ); - - let topology = Self::prepare_topology(scenario).await?; - let node_clients = NodeClients::from_topology(scenario.topology(), &topology); - let node_control = Arc::new(LocalDynamicNodes::new_with_seed( - scenario.topology().clone(), - node_clients.clone(), - LocalDynamicSeed::from_topology(scenario.topology()), - )); - - let (block_feed, block_feed_guard) = spawn_block_feed_with(&node_clients).await?; - - let context = RunContext::new( - scenario.topology().clone(), - Some(topology), - node_clients, - scenario.duration(), - Metrics::empty(), - block_feed, - Some(node_control), - ); - - Ok(Runner::new(context, Some(Box::new(block_feed_guard)))) - } -} - impl LocalDeployer { #[must_use] /// Construct a local deployer. @@ -134,25 +89,13 @@ impl LocalDeployer { Self::default() } - /// Build a manual cluster using this deployer's local implementation. - pub fn manual_cluster( - &self, - config: TopologyConfig, - ) -> Result { - LocalManualCluster::from_config(config) - } - - async fn prepare_topology( - scenario: &Scenario, - ) -> Result { + async fn prepare_topology(scenario: &Scenario<()>) -> Result { let descriptors = scenario.topology(); - info!( validators = descriptors.validators().len(), executors = descriptors.executors().len(), "spawning local validators/executors" ); - let topology = descriptors .clone() .spawn_local() @@ -165,7 +108,6 @@ impl LocalDeployer { })?; info!("local nodes are ready"); - Ok(topology) } } @@ -178,7 +120,6 @@ impl Default for LocalDeployer { async fn wait_for_readiness(topology: &Topology) -> Result<(), ReadinessError> { info!("waiting for local network readiness"); - topology.wait_network_ready().await?; Ok(()) } @@ -192,7 +133,7 @@ async fn spawn_block_feed_with( "selecting validator client for local block feed" ); - let Some(block_source_client) = node_clients.random_validator() else { + let Some(block_source_client) = node_clients.random_validator().cloned() else { return Err(LocalDeployerError::WorkloadFailed { source: "block feed requires at least one validator".into(), });