Align workflows and configs with latest nomos-node rev

This commit is contained in:
andrussal 2025-12-06 10:17:06 +01:00
parent 7c3fd6c5ac
commit ce5f2146ae
38 changed files with 732 additions and 523 deletions

View File

@ -14,6 +14,7 @@ ignore = [
"RUSTSEC-2024-0436", # paste unmaintained; upstream dependency "RUSTSEC-2024-0436", # paste unmaintained; upstream dependency
"RUSTSEC-2025-0012", # backoff unmaintained; upstream workspace still relies on it "RUSTSEC-2025-0012", # backoff unmaintained; upstream workspace still relies on it
"RUSTSEC-2025-0055", # tracing-subscriber ansi escape issue; upstream dependency "RUSTSEC-2025-0055", # tracing-subscriber ansi escape issue; upstream dependency
"RUSTSEC-2025-0134", # rustls-pemfile unmaintained; transitive via rustls stack
] ]
yanked = "deny" yanked = "deny"

View File

@ -5,7 +5,7 @@ on:
env: env:
CARGO_TERM_COLOR: always CARGO_TERM_COLOR: always
NOMOS_NODE_REV: 2f60a0372c228968c3526c341ebc7e58bbd178dd NOMOS_NODE_REV: d2dd5a5084e1daef4032562c77d41de5e4d495f8
NOMOS_BUNDLE_VERSION: v4 NOMOS_BUNDLE_VERSION: v4
jobs: jobs:
@ -67,17 +67,12 @@ jobs:
# Work around flate2 1.1.6 ambiguity issues by pinning to a fixed release. # Work around flate2 1.1.6 ambiguity issues by pinning to a fixed release.
cargo +nightly-2025-09-14 update -p flate2 --precise 1.1.5 cargo +nightly-2025-09-14 update -p flate2 --precise 1.1.5
cargo +nightly-2025-09-14 build --all-features --bins cargo +nightly-2025-09-14 build --all-features --bins
- name: Build local runner from workspace
run: |
cd "${GITHUB_WORKSPACE}"
cargo +nightly-2025-09-14 build --all-features -p runner-examples --bin local_runner
- name: Package binaries - name: Package binaries
run: | run: |
mkdir -p artifacts mkdir -p artifacts
cp "${CARGO_TARGET_DIR}/debug/nomos-node" artifacts/ cp "${CARGO_TARGET_DIR}/debug/nomos-node" artifacts/
cp "${CARGO_TARGET_DIR}/debug/nomos-executor" artifacts/ cp "${CARGO_TARGET_DIR}/debug/nomos-executor" artifacts/
cp "${CARGO_TARGET_DIR}/debug/nomos-cli" artifacts/ cp "${CARGO_TARGET_DIR}/debug/nomos-cli" artifacts/
cp "${CARGO_TARGET_DIR}/debug/local_runner" artifacts/
mkdir -p artifacts/circuits mkdir -p artifacts/circuits
rsync -a "$NOMOS_CIRCUITS"/ artifacts/circuits/ rsync -a "$NOMOS_CIRCUITS"/ artifacts/circuits/
tar -czf nomos-binaries.tar.gz -C artifacts . tar -czf nomos-binaries.tar.gz -C artifacts .

View File

@ -7,7 +7,7 @@ on:
env: env:
CARGO_TERM_COLOR: always CARGO_TERM_COLOR: always
NOMOS_NODE_REV: 2f60a0372c228968c3526c341ebc7e58bbd178dd NOMOS_NODE_REV: d2dd5a5084e1daef4032562c77d41de5e4d495f8
NOMOS_BUNDLE_VERSION: v4 NOMOS_BUNDLE_VERSION: v4
permissions: permissions:
actions: read actions: read

2
.gitignore vendored
View File

@ -12,6 +12,8 @@ ci-artifacts/
tests/kzgrs/circuits_bundle/ tests/kzgrs/circuits_bundle/
NOMOS_RUST_SOURCES_ONLY.txt NOMOS_RUST_SOURCES_ONLY.txt
dump.zsh dump.zsh
testing-framework/assets/stack/bin/
testing-framework/assets/stack/kzgrs_test_params/
# Local test artifacts (kept when NOMOS_TESTS_KEEP_LOGS=1) # Local test artifacts (kept when NOMOS_TESTS_KEEP_LOGS=1)
tests/workflows/.tmp* tests/workflows/.tmp*

241
Cargo.lock generated
View File

@ -851,7 +851,7 @@ dependencies = [
[[package]] [[package]]
name = "broadcast-service" name = "broadcast-service"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"derivative", "derivative",
@ -990,7 +990,7 @@ dependencies = [
"clap", "clap",
"groth16", "groth16",
"hex", "hex",
"key-management-system", "key-management-system-service",
"nomos-core", "nomos-core",
"nomos-da-network-core", "nomos-da-network-core",
"nomos-executor", "nomos-executor",
@ -1014,7 +1014,7 @@ dependencies = [
[[package]] [[package]]
name = "chain-common" name = "chain-common"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"nomos-core", "nomos-core",
"serde", "serde",
@ -1023,7 +1023,7 @@ dependencies = [
[[package]] [[package]]
name = "chain-leader" name = "chain-leader"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"chain-common", "chain-common",
@ -1051,7 +1051,7 @@ dependencies = [
[[package]] [[package]]
name = "chain-network" name = "chain-network"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"chain-common", "chain-common",
@ -1080,7 +1080,7 @@ dependencies = [
[[package]] [[package]]
name = "chain-service" name = "chain-service"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"broadcast-service", "broadcast-service",
@ -1181,7 +1181,7 @@ dependencies = [
[[package]] [[package]]
name = "circuits-prover" name = "circuits-prover"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"circuits-utils", "circuits-utils",
"tempfile", "tempfile",
@ -1190,7 +1190,7 @@ dependencies = [
[[package]] [[package]]
name = "circuits-utils" name = "circuits-utils"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"dirs", "dirs",
] ]
@ -1260,7 +1260,7 @@ dependencies = [
[[package]] [[package]]
name = "common-http-client" name = "common-http-client"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"broadcast-service", "broadcast-service",
"futures", "futures",
@ -1447,7 +1447,7 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
[[package]] [[package]]
name = "cryptarchia-engine" name = "cryptarchia-engine"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"cfg_eval", "cfg_eval",
"nomos-utils", "nomos-utils",
@ -1462,7 +1462,7 @@ dependencies = [
[[package]] [[package]]
name = "cryptarchia-sync" name = "cryptarchia-sync"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"bytes", "bytes",
"cryptarchia-engine", "cryptarchia-engine",
@ -1966,7 +1966,7 @@ dependencies = [
[[package]] [[package]]
name = "executor-http-client" name = "executor-http-client"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"common-http-client", "common-http-client",
"futures", "futures",
@ -2358,7 +2358,7 @@ dependencies = [
[[package]] [[package]]
name = "groth16" name = "groth16"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-bn254 0.4.0", "ark-bn254 0.4.0",
"ark-ec 0.4.2", "ark-ec 0.4.2",
@ -3281,22 +3281,19 @@ dependencies = [
] ]
[[package]] [[package]]
name = "key-management-system" name = "key-management-system-keys"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
"ed25519-dalek", "ed25519-dalek",
"groth16", "groth16",
"key-management-system-macros", "key-management-system-macros",
"log", "nomos-blend-proofs",
"nomos-blend-message",
"nomos-utils", "nomos-utils",
"overwatch",
"poq",
"poseidon2",
"serde", "serde",
"subtle",
"thiserror 2.0.17", "thiserror 2.0.17",
"tokio", "tokio",
"tracing", "tracing",
@ -3307,13 +3304,28 @@ dependencies = [
[[package]] [[package]]
name = "key-management-system-macros" name = "key-management-system-macros"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
"syn 2.0.111", "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=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [
"async-trait",
"key-management-system-keys",
"log",
"overwatch",
"serde",
"thiserror 2.0.17",
"tokio",
"tracing",
]
[[package]] [[package]]
name = "kube" name = "kube"
version = "0.87.2" version = "0.87.2"
@ -3408,7 +3420,7 @@ dependencies = [
[[package]] [[package]]
name = "kzgrs" name = "kzgrs"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-bls12-381", "ark-bls12-381",
"ark-ec 0.4.2", "ark-ec 0.4.2",
@ -3427,7 +3439,7 @@ dependencies = [
[[package]] [[package]]
name = "kzgrs-backend" name = "kzgrs-backend"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-ff 0.4.2", "ark-ff 0.4.2",
"ark-poly 0.4.2", "ark-poly 0.4.2",
@ -4066,7 +4078,7 @@ dependencies = [
[[package]] [[package]]
name = "mmr" name = "mmr"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-ff 0.4.2", "ark-ff 0.4.2",
"groth16", "groth16",
@ -4353,7 +4365,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-api" name = "nomos-api"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"broadcast-service", "broadcast-service",
@ -4383,57 +4395,111 @@ dependencies = [
"utoipa-swagger-ui", "utoipa-swagger-ui",
] ]
[[package]]
name = "nomos-blend"
version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
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=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [
"blake2",
"ed25519-dalek",
"groth16",
"nomos-utils",
"poq",
"poseidon2",
"rs-merkle-tree",
"serde",
"subtle",
"thiserror 1.0.69",
"x25519-dalek",
"zeroize",
"zksign",
]
[[package]] [[package]]
name = "nomos-blend-message" name = "nomos-blend-message"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"blake2", "blake2",
"derivative", "derivative",
"ed25519-dalek", "ed25519-dalek",
"generic-array 1.3.5",
"groth16", "groth16",
"hex",
"itertools 0.14.0", "itertools 0.14.0",
"key-management-system-keys",
"nomos-blend-crypto",
"nomos-blend-proofs",
"nomos-core", "nomos-core",
"nomos-utils", "nomos-utils",
"num-bigint",
"poq",
"serde", "serde",
"serde-big-array",
"serde_with", "serde_with",
"thiserror 1.0.69", "thiserror 1.0.69",
"tracing", "tracing",
"x25519-dalek", "zeroize",
] ]
[[package]] [[package]]
name = "nomos-blend-network" name = "nomos-blend-network"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"either", "either",
"futures", "futures",
"futures-timer", "futures-timer",
"key-management-system-keys",
"libp2p", "libp2p",
"nomos-blend-crypto",
"nomos-blend-message", "nomos-blend-message",
"nomos-blend-proofs",
"nomos-blend-scheduling", "nomos-blend-scheduling",
"nomos-core", "nomos-core",
"nomos-libp2p", "nomos-libp2p",
"tracing", "tracing",
] ]
[[package]]
name = "nomos-blend-proofs"
version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [
"generic-array 1.3.5",
"groth16",
"nomos-blend-crypto",
"num-bigint",
"poq",
"serde",
"thiserror 1.0.69",
]
[[package]] [[package]]
name = "nomos-blend-scheduling" name = "nomos-blend-scheduling"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"derivative", "derivative",
"fork_stream", "fork_stream",
"futures", "futures",
"hex", "key-management-system-keys",
"multiaddr", "multiaddr",
"nomos-blend-crypto",
"nomos-blend-message", "nomos-blend-message",
"nomos-blend-proofs",
"nomos-core", "nomos-core",
"nomos-utils",
"rand 0.8.5", "rand 0.8.5",
"serde", "serde",
"thiserror 1.0.69", "thiserror 1.0.69",
@ -4445,7 +4511,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-blend-service" name = "nomos-blend-service"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"broadcast-service", "broadcast-service",
@ -4454,12 +4520,10 @@ dependencies = [
"fork_stream", "fork_stream",
"futures", "futures",
"groth16", "groth16",
"key-management-system", "key-management-system-service",
"libp2p", "libp2p",
"libp2p-stream", "libp2p-stream",
"nomos-blend-message", "nomos-blend",
"nomos-blend-network",
"nomos-blend-scheduling",
"nomos-core", "nomos-core",
"nomos-ledger", "nomos-ledger",
"nomos-libp2p", "nomos-libp2p",
@ -4469,7 +4533,6 @@ dependencies = [
"overwatch", "overwatch",
"poq", "poq",
"rand 0.8.5", "rand 0.8.5",
"rs-merkle-tree",
"serde", "serde",
"serde_with", "serde_with",
"services-utils", "services-utils",
@ -4483,7 +4546,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-core" name = "nomos-core"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-ff 0.4.2", "ark-ff 0.4.2",
"async-trait", "async-trait",
@ -4500,6 +4563,9 @@ dependencies = [
"hex", "hex",
"multiaddr", "multiaddr",
"nom 8.0.0", "nom 8.0.0",
"nomos-blend-crypto",
"nomos-blend-proofs",
"nomos-utils",
"num-bigint", "num-bigint",
"pol", "pol",
"poseidon2", "poseidon2",
@ -4514,7 +4580,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-da-dispersal" name = "nomos-da-dispersal"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"broadcast-service", "broadcast-service",
@ -4542,7 +4608,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-da-messages" name = "nomos-da-messages"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"blake2", "blake2",
"futures", "futures",
@ -4555,7 +4621,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-da-network-core" name = "nomos-da-network-core"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"cached", "cached",
"either", "either",
@ -4583,7 +4649,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-da-network-service" name = "nomos-da-network-service"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"arc-swap", "arc-swap",
"async-trait", "async-trait",
@ -4620,7 +4686,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-da-sampling" name = "nomos-da-sampling"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
@ -4648,7 +4714,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-da-verifier" name = "nomos-da-verifier"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"futures", "futures",
@ -4675,7 +4741,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-executor" name = "nomos-executor"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"axum", "axum",
@ -4715,7 +4781,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-http-api-common" name = "nomos-http-api-common"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"axum", "axum",
"governor", "governor",
@ -4731,12 +4797,15 @@ dependencies = [
[[package]] [[package]]
name = "nomos-ledger" name = "nomos-ledger"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"cryptarchia-engine", "cryptarchia-engine",
"ed25519", "ed25519",
"groth16", "groth16",
"mmr", "mmr",
"nomos-blend-crypto",
"nomos-blend-message",
"nomos-blend-proofs",
"nomos-core", "nomos-core",
"nomos-utils", "nomos-utils",
"num-bigint", "num-bigint",
@ -4744,6 +4813,7 @@ dependencies = [
"rpds", "rpds",
"serde", "serde",
"thiserror 1.0.69", "thiserror 1.0.69",
"tracing",
"utxotree", "utxotree",
"zksign", "zksign",
] ]
@ -4751,7 +4821,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-libp2p" name = "nomos-libp2p"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"backon", "backon",
@ -4780,7 +4850,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-network" name = "nomos-network"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"cryptarchia-sync", "cryptarchia-sync",
@ -4799,7 +4869,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-node" name = "nomos-node"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"axum", "axum",
@ -4809,16 +4879,16 @@ dependencies = [
"chain-service", "chain-service",
"clap", "clap",
"color-eyre", "color-eyre",
"cryptarchia-engine",
"derivative", "derivative",
"futures", "futures",
"groth16", "groth16",
"hex", "hex",
"http 1.4.0", "http 1.4.0",
"key-management-system", "key-management-system-service",
"kzgrs-backend", "kzgrs-backend",
"nomos-api", "nomos-api",
"nomos-blend-message", "nomos-blend",
"nomos-blend-scheduling",
"nomos-blend-service", "nomos-blend-service",
"nomos-core", "nomos-core",
"nomos-da-messages", "nomos-da-messages",
@ -4827,6 +4897,7 @@ dependencies = [
"nomos-da-sampling", "nomos-da-sampling",
"nomos-da-verifier", "nomos-da-verifier",
"nomos-http-api-common", "nomos-http-api-common",
"nomos-ledger",
"nomos-libp2p", "nomos-libp2p",
"nomos-network", "nomos-network",
"nomos-sdp", "nomos-sdp",
@ -4862,7 +4933,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-sdp" name = "nomos-sdp"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"ed25519-dalek", "ed25519-dalek",
@ -4881,7 +4952,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-storage" name = "nomos-storage"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
@ -4901,7 +4972,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-system-sig" name = "nomos-system-sig"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-ctrlc", "async-ctrlc",
"async-trait", "async-trait",
@ -4912,7 +4983,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-time" name = "nomos-time"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"cfg_eval", "cfg_eval",
@ -4934,7 +5005,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-tracing" name = "nomos-tracing"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"opentelemetry", "opentelemetry",
"opentelemetry-http", "opentelemetry-http",
@ -4957,7 +5028,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-tracing-service" name = "nomos-tracing-service"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"nomos-tracing", "nomos-tracing",
@ -4971,7 +5042,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-utils" name = "nomos-utils"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"blake2", "blake2",
@ -4988,7 +5059,7 @@ dependencies = [
[[package]] [[package]]
name = "nomos-wallet" name = "nomos-wallet"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
@ -4996,7 +5067,7 @@ dependencies = [
"futures", "futures",
"groth16", "groth16",
"hex", "hex",
"key-management-system", "key-management-system-service",
"nomos-core", "nomos-core",
"nomos-ledger", "nomos-ledger",
"nomos-storage", "nomos-storage",
@ -5548,7 +5619,7 @@ dependencies = [
[[package]] [[package]]
name = "pol" name = "pol"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"circuits-prover", "circuits-prover",
"circuits-utils", "circuits-utils",
@ -5578,7 +5649,7 @@ dependencies = [
[[package]] [[package]]
name = "poq" name = "poq"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"circuits-prover", "circuits-prover",
"circuits-utils", "circuits-utils",
@ -5600,7 +5671,7 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483"
[[package]] [[package]]
name = "poseidon2" name = "poseidon2"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-bn254 0.4.0", "ark-bn254 0.4.0",
"ark-ff 0.4.2", "ark-ff 0.4.2",
@ -6595,6 +6666,15 @@ dependencies = [
"serde_derive", "serde_derive",
] ]
[[package]]
name = "serde-big-array"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f"
dependencies = [
"serde",
]
[[package]] [[package]]
name = "serde-value" name = "serde-value"
version = "0.7.0" version = "0.7.0"
@ -6729,7 +6809,7 @@ dependencies = [
[[package]] [[package]]
name = "services-utils" name = "services-utils"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"futures", "futures",
@ -6932,7 +7012,7 @@ dependencies = [
[[package]] [[package]]
name = "subnetworks-assignations" name = "subnetworks-assignations"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"counter", "counter",
"libp2p-identity", "libp2p-identity",
@ -7114,9 +7194,8 @@ dependencies = [
"ed25519-dalek", "ed25519-dalek",
"groth16", "groth16",
"hex", "hex",
"key-management-system", "key-management-system-service",
"nomos-api", "nomos-api",
"nomos-blend-message",
"nomos-blend-service", "nomos-blend-service",
"nomos-core", "nomos-core",
"nomos-da-dispersal", "nomos-da-dispersal",
@ -7155,7 +7234,7 @@ dependencies = [
"futures", "futures",
"groth16", "groth16",
"hex", "hex",
"key-management-system", "key-management-system-service",
"kzgrs-backend", "kzgrs-backend",
"nomos-core", "nomos-core",
"nomos-da-network-core", "nomos-da-network-core",
@ -7258,7 +7337,7 @@ dependencies = [
[[package]] [[package]]
name = "tests" name = "tests"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"blst", "blst",
@ -7275,10 +7354,10 @@ dependencies = [
"futures-util", "futures-util",
"groth16", "groth16",
"hex", "hex",
"key-management-system", "key-management-system-service",
"kzgrs-backend", "kzgrs-backend",
"nomos-api", "nomos-api",
"nomos-blend-message", "nomos-blend",
"nomos-blend-service", "nomos-blend-service",
"nomos-core", "nomos-core",
"nomos-da-dispersal", "nomos-da-dispersal",
@ -7288,7 +7367,6 @@ dependencies = [
"nomos-da-verifier", "nomos-da-verifier",
"nomos-executor", "nomos-executor",
"nomos-http-api-common", "nomos-http-api-common",
"nomos-ledger",
"nomos-libp2p", "nomos-libp2p",
"nomos-network", "nomos-network",
"nomos-node", "nomos-node",
@ -7896,7 +7974,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]] [[package]]
name = "tx-service" name = "tx-service"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"futures", "futures",
@ -8049,7 +8127,7 @@ dependencies = [
[[package]] [[package]]
name = "utxotree" name = "utxotree"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-ff 0.4.2", "ark-ff 0.4.2",
"groth16", "groth16",
@ -8102,7 +8180,7 @@ dependencies = [
[[package]] [[package]]
name = "wallet" name = "wallet"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"nomos-core", "nomos-core",
"nomos-ledger", "nomos-ledger",
@ -8676,7 +8754,7 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
[[package]] [[package]]
name = "witness-generator" name = "witness-generator"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"circuits-utils", "circuits-utils",
"tempfile", "tempfile",
@ -8706,6 +8784,7 @@ dependencies = [
"curve25519-dalek", "curve25519-dalek",
"rand_core 0.6.4", "rand_core 0.6.4",
"serde", "serde",
"zeroize",
] ]
[[package]] [[package]]
@ -8885,7 +8964,7 @@ dependencies = [
[[package]] [[package]]
name = "zksign" name = "zksign"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/logos-co/nomos-node.git?rev=2f60a0372c228968c3526c341ebc7e58bbd178dd#2f60a0372c228968c3526c341ebc7e58bbd178dd" source = "git+https://github.com/logos-co/nomos-node.git?rev=d2dd5a5084e1daef4032562c77d41de5e4d495f8#d2dd5a5084e1daef4032562c77d41de5e4d495f8"
dependencies = [ dependencies = [
"ark-ff 0.4.2", "ark-ff 0.4.2",
"circuits-prover", "circuits-prover",

View File

@ -37,50 +37,50 @@ testing-framework-runner-local = { default-features = false, path = "testing-f
testing-framework-workflows = { default-features = false, path = "testing-framework/workflows" } testing-framework-workflows = { default-features = false, path = "testing-framework/workflows" }
# Nomos git dependencies (pinned to latest master) # Nomos git dependencies (pinned to latest master)
broadcast-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } broadcast-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
cfgsync = { default-features = false, path = "testing-framework/tools/cfgsync" } cfgsync = { default-features = false, path = "testing-framework/tools/cfgsync" }
chain-leader = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd", features = [ chain-leader = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8", features = [
"pol-dev-mode", "pol-dev-mode",
] } ] }
chain-network = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } chain-network = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
chain-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } chain-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
common-http-client = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } common-http-client = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
cryptarchia-engine = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } cryptarchia-engine = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
cryptarchia-sync = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } cryptarchia-sync = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
executor-http-client = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } executor-http-client = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
groth16 = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } groth16 = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
key-management-system = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } key-management-system-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
kzgrs = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } kzgrs = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
kzgrs-backend = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } kzgrs-backend = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-api = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-api = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-blend-message = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-blend-message = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-blend-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-blend-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-cli = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-cli = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-core = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-core = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-da-dispersal = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-da-dispersal = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-da-network-core = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-da-network-core = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-da-network-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-da-network-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-da-sampling = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-da-sampling = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-da-verifier = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-da-verifier = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-executor = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-executor = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-http-api-common = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-http-api-common = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-ledger = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-ledger = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-libp2p = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-libp2p = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-network = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-network = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-node = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-node = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-sdp = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-sdp = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-time = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-time = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-tracing = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-tracing = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-tracing-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-tracing-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-utils = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-utils = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
nomos-wallet = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } nomos-wallet = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
poc = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } poc = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
pol = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } pol = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
subnetworks-assignations = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } subnetworks-assignations = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
tests = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } tests = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
tx-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } tx-service = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
wallet = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } wallet = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
zksign = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "2f60a0372c228968c3526c341ebc7e58bbd178dd" } zksign = { default-features = false, git = "https://github.com/logos-co/nomos-node.git", rev = "d2dd5a5084e1daef4032562c77d41de5e4d495f8" }
# External crates # External crates
async-trait = { default-features = false, version = "0.1" } async-trait = { default-features = false, version = "0.1" }

View File

@ -65,8 +65,8 @@ let mut plan = ScenarioBuilder::topology_with(|t| {
``` ```
**Key API Points:** **Key API Points:**
- Topology uses `.topology().validators(N).executors(M).apply()` pattern (not `with_node_counts`) - Topology uses `.topology_with(|t| { t.validators(N).executors(M) })` closure pattern
- Workloads are configured via extension traits (`ScenarioBuilderExt`, `ChaosBuilderExt`) - Workloads are configured via `_with` closures (`transactions_with`, `da_with`, `chaos_with`)
- Chaos workloads require `.enable_node_control()` and a compatible runner - Chaos workloads require `.enable_node_control()` and a compatible runner
## Deployers ## Deployers

View File

@ -52,11 +52,11 @@ ScenarioBuilder::topology_with(|t| {
```rust ```rust
.enable_node_control() // Enable node control capability .enable_node_control() // Enable node control capability
.chaos_with(|c| { .chaos_with(|c| {
c.restart() // Random restart chaos c.restart() // Random restart chaos
.min_delay(Duration::from_secs(30)) // Min time between restarts .min_delay(Duration::from_secs(30)) // Min time between restarts
.max_delay(Duration::from_secs(60)) // Max time between restarts .max_delay(Duration::from_secs(60)) // Max time between restarts
.target_cooldown(Duration::from_secs(45)) // Cooldown after restart .target_cooldown(Duration::from_secs(45)) // Cooldown after restart
.apply() .apply() // Required for chaos configuration
}) })
``` ```

View File

@ -24,16 +24,16 @@ async fn load_progression_test() -> Result<(), Box<dyn std::error::Error + Send
for rate in [5, 10, 20, 30] { for rate in [5, 10, 20, 30] {
println!("Testing with rate: {}", rate); println!("Testing with rate: {}", rate);
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(3) .validators(3)
.executors(2) .executors(2)
.apply() })
.wallets(50) .wallets(50)
.transactions() .transactions_with(|txs| {
.rate(rate) txs.rate(rate)
.users(20) .users(20)
.apply() })
.expect_consensus_liveness() .expect_consensus_liveness()
.with_run_duration(Duration::from_secs(60)) .with_run_duration(Duration::from_secs(60))
.build(); .build();
@ -60,20 +60,20 @@ use testing_framework_workflows::ScenarioBuilderExt;
use std::time::Duration; use std::time::Duration;
async fn sustained_load_test() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { async fn sustained_load_test() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(4) .validators(4)
.executors(2) .executors(2)
.apply() })
.wallets(100) .wallets(100)
.transactions() .transactions_with(|txs| {
.rate(15) txs.rate(15)
.users(50) .users(50)
.apply() })
.da() .da_with(|da| {
.channel_rate(2) da.channel_rate(2)
.blob_rate(3) .blob_rate(3)
.apply() })
.expect_consensus_liveness() .expect_consensus_liveness()
.with_run_duration(Duration::from_secs(300)) .with_run_duration(Duration::from_secs(300))
.build(); .build();
@ -99,23 +99,24 @@ use testing_framework_workflows::{ScenarioBuilderExt, ChaosBuilderExt};
use std::time::Duration; use std::time::Duration;
async fn aggressive_chaos_test() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { async fn aggressive_chaos_test() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(4) .validators(4)
.executors(2) .executors(2)
.apply() })
.enable_node_control() .enable_node_control()
.wallets(50) .wallets(50)
.transactions() .transactions_with(|txs| {
.rate(10) txs.rate(10)
.users(20) .users(20)
.apply() })
.chaos() .chaos_with(|c| {
.restart() c.restart()
.min_delay(Duration::from_secs(10)) .min_delay(Duration::from_secs(10))
.max_delay(Duration::from_secs(20)) .max_delay(Duration::from_secs(20))
.target_cooldown(Duration::from_secs(15)) .target_cooldown(Duration::from_secs(15))
.apply() .apply()
})
.expect_consensus_liveness() .expect_consensus_liveness()
.with_run_duration(Duration::from_secs(180)) .with_run_duration(Duration::from_secs(180))
.build(); .build();

View File

@ -25,11 +25,11 @@ use testing_framework_workflows::ScenarioBuilderExt;
use std::time::Duration; use std::time::Duration;
async fn simple_consensus() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { async fn simple_consensus() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(3) .validators(3)
.executors(0) .executors(0)
.apply() })
.expect_consensus_liveness() .expect_consensus_liveness()
.with_run_duration(Duration::from_secs(30)) .with_run_duration(Duration::from_secs(30))
.build(); .build();
@ -55,16 +55,16 @@ use testing_framework_workflows::ScenarioBuilderExt;
use std::time::Duration; use std::time::Duration;
async fn transaction_workload() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { async fn transaction_workload() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(2) .validators(2)
.executors(0) .executors(0)
.apply() })
.wallets(20) .wallets(20)
.transactions() .transactions_with(|txs| {
.rate(5) txs.rate(5)
.users(10) .users(10)
.apply() })
.expect_consensus_liveness() .expect_consensus_liveness()
.with_run_duration(Duration::from_secs(60)) .with_run_duration(Duration::from_secs(60))
.build(); .build();
@ -90,20 +90,20 @@ use testing_framework_workflows::ScenarioBuilderExt;
use std::time::Duration; use std::time::Duration;
async fn da_and_transactions() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { async fn da_and_transactions() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(3) .validators(3)
.executors(2) .executors(2)
.apply() })
.wallets(30) .wallets(30)
.transactions() .transactions_with(|txs| {
.rate(5) txs.rate(5)
.users(15) .users(15)
.apply() })
.da() .da_with(|da| {
.channel_rate(1) da.channel_rate(1)
.blob_rate(2) .blob_rate(2)
.apply() })
.expect_consensus_liveness() .expect_consensus_liveness()
.with_run_duration(Duration::from_secs(90)) .with_run_duration(Duration::from_secs(90))
.build(); .build();
@ -129,23 +129,24 @@ use testing_framework_workflows::{ScenarioBuilderExt, ChaosBuilderExt};
use std::time::Duration; use std::time::Duration;
async fn chaos_resilience() -> Result<(), Box<dyn std::error::Error + Send + Sync>> { async fn chaos_resilience() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(4) .validators(4)
.executors(2) .executors(2)
.apply() })
.enable_node_control() .enable_node_control()
.wallets(20) .wallets(20)
.transactions() .transactions_with(|txs| {
.rate(3) txs.rate(3)
.users(10) .users(10)
.apply() })
.chaos() .chaos_with(|c| {
.restart() c.restart()
.min_delay(Duration::from_secs(20)) .min_delay(Duration::from_secs(20))
.max_delay(Duration::from_secs(40)) .max_delay(Duration::from_secs(40))
.target_cooldown(Duration::from_secs(30)) .target_cooldown(Duration::from_secs(30))
.apply() .apply()
})
.expect_consensus_liveness() .expect_consensus_liveness()
.with_run_duration(Duration::from_secs(120)) .with_run_duration(Duration::from_secs(120))
.build(); .build();

View File

@ -57,13 +57,14 @@ High-level roles of the crates that make up the framework:
3. **Use in examples** in `examples/src/bin/your_scenario.rs`: 3. **Use in examples** in `examples/src/bin/your_scenario.rs`:
```rust ```rust
let mut plan = ScenarioBuilder::topology() let mut plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(3) .validators(3)
.executors(0) .executors(0)
.apply() })
.your_workload() // Your new DSL method .your_workload_with(|w| { // Your new DSL method with closure
.apply() w.some_config()
})
.build(); .build();
``` ```

View File

@ -91,14 +91,14 @@ Provides funded accounts for transaction submission.
### 3. Workloads ### 3. Workloads
```rust ```rust
.transactions() .transactions_with(|txs| {
.rate(5) // 5 transactions per block txs.rate(5) // 5 transactions per block
.users(8) // Use 8 of the 64 wallets .users(8) // Use 8 of the 64 wallets
.apply() })
.da() .da_with(|da| {
.channel_rate(1) // 1 channel operation per block da.channel_rate(1) // 1 channel operation per block
.blob_rate(1) // 1 blob dispersal per block .blob_rate(1) // 1 blob dispersal per block
.apply() })
``` ```
Generates both transaction and DA traffic to stress both subsystems. Generates both transaction and DA traffic to stress both subsystems.

View File

@ -10,14 +10,14 @@ Describe **what** you want to test, not **how** to orchestrate it:
```rust ```rust
// Good: declarative // Good: declarative
ScenarioBuilder::topology() ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(2) .validators(2)
.executors(1) .executors(1)
.apply() })
.transactions() .transactions_with(|txs| {
.rate(5) // 5 transactions per block txs.rate(5) // 5 transactions per block
.apply() })
.expect_consensus_liveness() .expect_consensus_liveness()
.build(); .build();
@ -40,14 +40,14 @@ Reason in **blocks** and **consensus intervals**, not wall-clock seconds.
```rust ```rust
// Good: protocol-oriented thinking // Good: protocol-oriented thinking
let plan = ScenarioBuilder::topology() let plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(2) .validators(2)
.executors(1) .executors(1)
.apply() })
.transactions() .transactions_with(|txs| {
.rate(5) // 5 transactions per block txs.rate(5) // 5 transactions per block
.apply() })
.with_run_duration(Duration::from_secs(60)) // Let framework calculate expected blocks .with_run_duration(Duration::from_secs(60)) // Let framework calculate expected blocks
.expect_consensus_liveness() // "Did we produce the expected blocks?" .expect_consensus_liveness() // "Did we produce the expected blocks?"
.build(); .build();
@ -74,30 +74,34 @@ not "blocks produced in exact wall-clock seconds".
**Chaos is opt-in:** **Chaos is opt-in:**
```rust ```rust
// Separate: functional test (deterministic) // Separate: functional test (deterministic)
let plan = ScenarioBuilder::topology() let plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(2) .validators(2)
.executors(1) .executors(1)
.apply() })
.transactions() .transactions_with(|txs| {
.rate(5) // 5 transactions per block txs.rate(5) // 5 transactions per block
.apply() })
.expect_consensus_liveness() .expect_consensus_liveness()
.build(); .build();
// Separate: chaos test (introduces randomness) // Separate: chaos test (introduces randomness)
let chaos_plan = ScenarioBuilder::topology() let chaos_plan = ScenarioBuilder::topology_with(|t| {
.network_star() t.network_star()
.validators(3) .validators(3)
.executors(2) .executors(2)
.apply() })
.enable_node_control() .enable_node_control()
.chaos() .chaos_with(|c| {
.restart() c.restart()
.apply() .min_delay(Duration::from_secs(30))
.transactions() .max_delay(Duration::from_secs(60))
.rate(5) // 5 transactions per block .target_cooldown(Duration::from_secs(45))
.apply() .apply()
})
.transactions_with(|txs| {
txs.rate(5) // 5 transactions per block
})
.expect_consensus_liveness() .expect_consensus_liveness()
.build(); .build();
``` ```

View File

@ -65,11 +65,12 @@ async fn run_local_case(
.expect_consensus_liveness() .expect_consensus_liveness()
.build(); .build();
let deployer = LocalDeployer::default(); let deployer = LocalDeployer::default().with_membership_check(true);
info!("deploying local nodes"); info!("deploying local nodes");
let runner: Runner = deployer.deploy(&plan).await?; let runner: Runner = deployer.deploy(&plan).await?;
info!("running scenario"); info!("running scenario");
runner.run(&mut plan).await.map(|_| ())?; runner.run(&mut plan).await.map(|_| ())?;
info!("scenario complete");
Ok(()) Ok(())
} }

View File

@ -5,7 +5,7 @@
set -euo pipefail set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
NOMOS_NODE_REV="${NOMOS_NODE_REV:-2f60a0372c228968c3526c341ebc7e58bbd178dd}" NOMOS_NODE_REV="${NOMOS_NODE_REV:-d2dd5a5084e1daef4032562c77d41de5e4d495f8}"
NOMOS_CIRCUITS_VERSION="${NOMOS_CIRCUITS_VERSION:-v0.3.1}" NOMOS_CIRCUITS_VERSION="${NOMOS_CIRCUITS_VERSION:-v0.3.1}"
NOMOS_BIN_PLATFORM="${NOMOS_BIN_PLATFORM:-linux/amd64}" NOMOS_BIN_PLATFORM="${NOMOS_BIN_PLATFORM:-linux/amd64}"

View File

@ -15,14 +15,14 @@ set -euo pipefail
# NOMOS_TESTNET_IMAGE - image tag (default nomos-testnet:local) # NOMOS_TESTNET_IMAGE - image tag (default nomos-testnet:local)
# NOMOS_CIRCUITS_PLATFORM - override host platform detection # NOMOS_CIRCUITS_PLATFORM - override host platform detection
# NOMOS_CIRCUITS_REBUILD_RAPIDSNARK - set to 1 to force rapidsnark rebuild # NOMOS_CIRCUITS_REBUILD_RAPIDSNARK - set to 1 to force rapidsnark rebuild
# NOMOS_NODE_REV - nomos-node git rev for local binaries (default 2f60a0372c228968c3526c341ebc7e58bbd178dd) # NOMOS_NODE_REV - nomos-node git rev for local binaries (default d2dd5a5084e1daef4032562c77d41de5e4d495f8)
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
MODE="${1:-compose}" MODE="${1:-compose}"
RUN_SECS="${2:-60}" RUN_SECS="${2:-60}"
VERSION="${VERSION:-v0.3.1}" VERSION="${VERSION:-v0.3.1}"
IMAGE="${NOMOS_TESTNET_IMAGE:-nomos-testnet:local}" IMAGE="${NOMOS_TESTNET_IMAGE:-nomos-testnet:local}"
NOMOS_NODE_REV="${NOMOS_NODE_REV:-2f60a0372c228968c3526c341ebc7e58bbd178dd}" NOMOS_NODE_REV="${NOMOS_NODE_REV:-d2dd5a5084e1daef4032562c77d41de5e4d495f8}"
case "$MODE" in case "$MODE" in
compose) BIN="compose_runner" ;; compose) BIN="compose_runner" ;;

View File

@ -20,7 +20,7 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
VERSION="${1:-v0.3.1}" VERSION="${1:-v0.3.1}"
STACK_DIR="${STACK_DIR:-${ROOT_DIR}/testing-framework/assets/stack/kzgrs_test_params}" STACK_DIR="${STACK_DIR:-${ROOT_DIR}/testing-framework/assets/stack/kzgrs_test_params}"
HOST_DIR="${HOST_DIR:-${ROOT_DIR}/.tmp/nomos-circuits-host}" HOST_DIR="${HOST_DIR:-${ROOT_DIR}/.tmp/nomos-circuits-host}"
NOMOS_NODE_REV="${NOMOS_NODE_REV:-2f60a0372c228968c3526c341ebc7e58bbd178dd}" NOMOS_NODE_REV="${NOMOS_NODE_REV:-d2dd5a5084e1daef4032562c77d41de5e4d495f8}"
detect_platform() { detect_platform() {
local os arch local os arch

View File

@ -211,10 +211,12 @@ main() {
handle_macos_quarantine handle_macos_quarantine
fi fi
if [[ "$rebuild_required" == "1" || "$platform" == *"aarch64" ]]; then if [[ "$rebuild_required" == "1" ]]; then
echo echo
print_info "Rebuilding rapidsnark prover for ${platform}..." print_info "Rebuilding rapidsnark prover for ${platform}..."
"${SCRIPT_DIR}/build-rapidsnark.sh" "$INSTALL_DIR" "${SCRIPT_DIR}/build-rapidsnark.sh" "$INSTALL_DIR"
else
print_info "Skipping rapidsnark rebuild (set NOMOS_CIRCUITS_REBUILD_RAPIDSNARK=1 to force)."
fi fi
echo echo

View File

@ -4,6 +4,7 @@
ARG VERSION=v0.3.1 ARG VERSION=v0.3.1
ARG CIRCUITS_OVERRIDE ARG CIRCUITS_OVERRIDE
ARG NOMOS_NODE_REV=d2dd5a5084e1daef4032562c77d41de5e4d495f8
# =========================== # ===========================
# BUILD IMAGE # BUILD IMAGE
@ -13,6 +14,7 @@ FROM rust:1.91.0-slim-bookworm AS builder
ARG VERSION ARG VERSION
ARG CIRCUITS_OVERRIDE ARG CIRCUITS_OVERRIDE
ARG NOMOS_NODE_REV
LABEL maintainer="augustinas@status.im" \ LABEL maintainer="augustinas@status.im" \
source="https://github.com/logos-co/nomos-node" \ source="https://github.com/logos-co/nomos-node" \
@ -23,6 +25,7 @@ COPY . .
# Reduce debug artifact size. # Reduce debug artifact size.
ENV CARGO_PROFILE_DEV_DEBUG=0 ENV CARGO_PROFILE_DEV_DEBUG=0
ENV NOMOS_NODE_REV=${NOMOS_NODE_REV}
# Install dependencies needed for building RocksDB. # Install dependencies needed for building RocksDB.
RUN apt-get update && apt-get install -yq \ RUN apt-get update && apt-get install -yq \
@ -75,11 +78,55 @@ RUN mkdir -p /opt/circuits && \
ENV NOMOS_CIRCUITS=/opt/circuits ENV NOMOS_CIRCUITS=/opt/circuits
# Copy prebuilt runtime binaries (provided by CI) into the build context. # Provide runtime binaries. Prefer prebuilt artifacts (when present) for speed; otherwise build from source.
RUN mkdir -p /workspace/artifacts RUN set -eu; \
COPY testing-framework/assets/stack/bin/nomos-node /workspace/artifacts/nomos-node mkdir -p /workspace/artifacts; \
COPY testing-framework/assets/stack/bin/nomos-executor /workspace/artifacts/nomos-executor TARGET_ARCH="$(uname -m)"; \
COPY testing-framework/assets/stack/bin/nomos-cli /workspace/artifacts/nomos-cli expect_arch() { \
case "$1" in \
x86_64) echo "x86-64" ;; \
aarch64|arm64) echo "arm64" ;; \
*) echo "$1" ;; \
esac; \
}; \
have_prebuilt() { \
[ -f testing-framework/assets/stack/bin/nomos-node ] && \
[ -f testing-framework/assets/stack/bin/nomos-executor ] && \
[ -f testing-framework/assets/stack/bin/nomos-cli ]; \
}; \
bin_matches_arch() { \
BIN_INFO="$(file -b testing-framework/assets/stack/bin/nomos-node 2>/dev/null || true)"; \
case "$TARGET_ARCH" in \
x86_64) PATTERN="x86-64|x86_64" ;; \
aarch64|arm64) PATTERN="arm64|aarch64" ;; \
*) PATTERN="$(expect_arch "$TARGET_ARCH")" ;; \
esac; \
[ -n "$BIN_INFO" ] && echo "$BIN_INFO" | grep -Eqi "$PATTERN"; \
}; \
if have_prebuilt; then \
if bin_matches_arch; then \
echo "Using prebuilt nomos binaries from testing-framework/assets/stack/bin"; \
else \
echo "Using prebuilt nomos binaries from testing-framework/assets/stack/bin (arch check skipped)"; \
fi; \
cp testing-framework/assets/stack/bin/nomos-node /workspace/artifacts/nomos-node; \
cp testing-framework/assets/stack/bin/nomos-executor /workspace/artifacts/nomos-executor; \
cp testing-framework/assets/stack/bin/nomos-cli /workspace/artifacts/nomos-cli; \
else \
echo "Prebuilt nomos binaries missing or wrong architecture; building from source (rev ${NOMOS_NODE_REV})"; \
git clone https://github.com/logos-co/nomos-node.git /tmp/nomos-node && \
cd /tmp/nomos-node && \
git fetch --depth 1 origin "${NOMOS_NODE_REV}" && \
git checkout "${NOMOS_NODE_REV}" && \
git reset --hard && git clean -fdx && \
# Enable pol-dev-mode via cfg to let POL_PROOF_DEV_MODE short-circuit proofs in tests.
RUSTFLAGS='--cfg feature="pol-dev-mode"' NOMOS_CIRCUITS=/opt/circuits cargo build --features "testing" \
-p nomos-node -p nomos-executor -p nomos-cli; \
cp /tmp/nomos-node/target/debug/nomos-node /workspace/artifacts/nomos-node; \
cp /tmp/nomos-node/target/debug/nomos-executor /workspace/artifacts/nomos-executor; \
cp /tmp/nomos-node/target/debug/nomos-cli /workspace/artifacts/nomos-cli; \
rm -rf /tmp/nomos-node/target/debug/incremental; \
fi
# Build cfgsync binaries from this workspace. # Build cfgsync binaries from this workspace.
RUN cargo build --all-features --manifest-path /workspace/testing-framework/tools/cfgsync/Cargo.toml --bins RUN cargo build --all-features --manifest-path /workspace/testing-framework/tools/cfgsync/Cargo.toml --bins

View File

@ -13,6 +13,7 @@ num_samples: 1
num_subnets: 2 num_subnets: 2
old_blobs_check_interval: "5.0" old_blobs_check_interval: "5.0"
blobs_validity_duration: "60.0" blobs_validity_duration: "60.0"
# KZG parameters are mounted into the stack as /kzgrs_test_params.
global_params_path: "/kzgrs_test_params/pol/proving_key.zkey" global_params_path: "/kzgrs_test_params/pol/proving_key.zkey"
min_dispersal_peers: 1 min_dispersal_peers: 1
min_replication_peers: 1 min_replication_peers: 1

View File

@ -10,6 +10,7 @@ DOCKERFILE_PATH="${ROOT_DIR}/testing-framework/assets/stack/Dockerfile"
IMAGE_TAG="${IMAGE_TAG:-nomos-testnet:local}" IMAGE_TAG="${IMAGE_TAG:-nomos-testnet:local}"
VERSION="${VERSION:-v0.3.1}" VERSION="${VERSION:-v0.3.1}"
CIRCUITS_OVERRIDE="${CIRCUITS_OVERRIDE:-testing-framework/assets/stack/kzgrs_test_params}" CIRCUITS_OVERRIDE="${CIRCUITS_OVERRIDE:-testing-framework/assets/stack/kzgrs_test_params}"
NOMOS_NODE_REV="${NOMOS_NODE_REV:-d2dd5a5084e1daef4032562c77d41de5e4d495f8}"
echo "Workspace root: ${ROOT_DIR}" echo "Workspace root: ${ROOT_DIR}"
echo "Image tag: ${IMAGE_TAG}" echo "Image tag: ${IMAGE_TAG}"
@ -19,6 +20,7 @@ echo "Circuits version (fallback download): ${VERSION}"
build_args=( build_args=(
-f "${DOCKERFILE_PATH}" -f "${DOCKERFILE_PATH}"
-t "${IMAGE_TAG}" -t "${IMAGE_TAG}"
--build-arg "NOMOS_NODE_REV=${NOMOS_NODE_REV}"
"${ROOT_DIR}" "${ROOT_DIR}"
) )

View File

@ -7,6 +7,7 @@ export CFG_FILE_PATH="/config.yaml" \
CFG_HOST_IP=$(hostname -i) \ CFG_HOST_IP=$(hostname -i) \
CFG_HOST_KIND="${CFG_HOST_KIND:-executor}" \ CFG_HOST_KIND="${CFG_HOST_KIND:-executor}" \
CFG_HOST_IDENTIFIER="${CFG_HOST_IDENTIFIER:-executor-$(hostname -i)}" \ CFG_HOST_IDENTIFIER="${CFG_HOST_IDENTIFIER:-executor-$(hostname -i)}" \
NOMOS_KZGRS_PARAMS_PATH="${NOMOS_KZGRS_PARAMS_PATH:-/opt/circuits/pol/proving_key.zkey}" \
LOG_LEVEL="INFO" \ LOG_LEVEL="INFO" \
POL_PROOF_DEV_MODE="${POL_PROOF_DEV_MODE:-true}" POL_PROOF_DEV_MODE="${POL_PROOF_DEV_MODE:-true}"

View File

@ -7,6 +7,7 @@ export CFG_FILE_PATH="/config.yaml" \
CFG_HOST_IP=$(hostname -i) \ CFG_HOST_IP=$(hostname -i) \
CFG_HOST_KIND="${CFG_HOST_KIND:-validator}" \ CFG_HOST_KIND="${CFG_HOST_KIND:-validator}" \
CFG_HOST_IDENTIFIER="${CFG_HOST_IDENTIFIER:-validator-$(hostname -i)}" \ CFG_HOST_IDENTIFIER="${CFG_HOST_IDENTIFIER:-validator-$(hostname -i)}" \
NOMOS_KZGRS_PARAMS_PATH="${NOMOS_KZGRS_PARAMS_PATH:-/opt/circuits/pol/proving_key.zkey}" \
LOG_LEVEL="INFO" \ LOG_LEVEL="INFO" \
POL_PROOF_DEV_MODE="${POL_PROOF_DEV_MODE:-true}" POL_PROOF_DEV_MODE="${POL_PROOF_DEV_MODE:-true}"

View File

@ -10,42 +10,41 @@ repository.workspace = true
version = "0.1.0" version = "0.1.0"
[dependencies] [dependencies]
blst = "0.3.11" blst = "0.3.11"
chain-leader = { workspace = true } chain-leader = { workspace = true }
chain-network = { workspace = true } chain-network = { workspace = true }
chain-service = { workspace = true } chain-service = { workspace = true }
cryptarchia-engine = { workspace = true, features = ["serde"] } cryptarchia-engine = { workspace = true, features = ["serde"] }
cryptarchia-sync = { workspace = true } cryptarchia-sync = { workspace = true }
ed25519-dalek = { version = "2.2.0", features = ["rand_core", "serde"] } ed25519-dalek = { version = "2.2.0", features = ["rand_core", "serde"] }
groth16 = { workspace = true } groth16 = { workspace = true }
hex = { version = "0.4.3", default-features = false } hex = { version = "0.4.3", default-features = false }
key-management-system = { workspace = true } key-management-system-service = { workspace = true }
nomos-api = { workspace = true } nomos-api = { workspace = true }
nomos-blend-message = { workspace = true } nomos-blend-service = { workspace = true, features = ["libp2p"] }
nomos-blend-service = { workspace = true, features = ["libp2p"] } nomos-core = { workspace = true }
nomos-core = { workspace = true } nomos-da-dispersal = { workspace = true }
nomos-da-dispersal = { workspace = true } nomos-da-network-core = { workspace = true }
nomos-da-network-core = { workspace = true } nomos-da-network-service = { workspace = true }
nomos-da-network-service = { workspace = true } nomos-da-sampling = { workspace = true }
nomos-da-sampling = { workspace = true } nomos-da-verifier = { workspace = true }
nomos-da-verifier = { workspace = true } nomos-executor = { workspace = true, default-features = false, features = ["testing", "tracing"] }
nomos-executor = { workspace = true, default-features = false, features = ["testing", "tracing"] } nomos-ledger = { workspace = true, features = ["serde"] }
nomos-ledger = { workspace = true, features = ["serde"] } nomos-libp2p = { workspace = true }
nomos-libp2p = { workspace = true } nomos-node = { workspace = true, default-features = false, features = ["testing"] }
nomos-node = { workspace = true, default-features = false, features = ["testing"] } nomos-sdp = { workspace = true }
nomos-sdp = { workspace = true } nomos-time = { workspace = true }
nomos-time = { workspace = true } nomos-tracing = { workspace = true }
nomos-tracing = { workspace = true } nomos-tracing-service = { workspace = true }
nomos-tracing-service = { workspace = true } nomos-utils = { workspace = true }
nomos-utils = { workspace = true } nomos-wallet = { workspace = true }
nomos-wallet = { workspace = true } num-bigint = { version = "0.4", default-features = false }
num-bigint = { version = "0.4", default-features = false } rand = { workspace = true }
rand = { workspace = true } serde = { workspace = true, features = ["derive"] }
serde = { workspace = true, features = ["derive"] } subnetworks-assignations = { workspace = true }
subnetworks-assignations = { workspace = true } time = { version = "0.3", default-features = true }
time = { version = "0.3", default-features = true } tracing = { workspace = true }
tracing = { workspace = true } zksign = { workspace = true }
zksign = { workspace = true }
[lints] [lints]
workspace = true workspace = true

View File

@ -1,5 +1,5 @@
use groth16::fr_to_bytes; use groth16::fr_to_bytes;
use key_management_system::{ use key_management_system_service::{
backend::preload::KeyId, backend::preload::KeyId,
keys::{Key, secured_key::SecuredKey as _}, keys::{Key, secured_key::SecuredKey as _},
}; };

View File

@ -5,11 +5,10 @@ use std::{
time::Duration, time::Duration,
}; };
use chain_leader::LeaderSettings; use chain_leader::LeaderConfig as ChainLeaderConfig;
use chain_network::{ChainNetworkSettings, OrphanConfig, SyncConfig}; use chain_network::{BootstrapConfig as ChainBootstrapConfig, OrphanConfig, SyncConfig};
use chain_service::{CryptarchiaSettings, StartingState}; use chain_service::StartingState;
use cryptarchia_engine::time::SlotConfig; use key_management_system_service::keys::{Key, ZkKey};
use key_management_system::keys::{Key, ZkKey};
use nomos_blend_service::{ use nomos_blend_service::{
core::settings::{CoverTrafficSettings, MessageDelayerSettings, SchedulerSettings, ZkSettings}, core::settings::{CoverTrafficSettings, MessageDelayerSettings, SchedulerSettings, ZkSettings},
settings::TimingSettings, settings::TimingSettings,
@ -44,16 +43,26 @@ use nomos_node::{
deployment::{self as blend_deployment}, deployment::{self as blend_deployment},
serde as blend_serde, serde as blend_serde,
}, },
deployment::{CustomDeployment, Settings as NodeDeploymentSettings}, cryptarchia::{
mempool::MempoolConfig, deployment::{
SdpConfig as DeploymentSdpConfig, Settings as CryptarchiaDeploymentSettings,
},
serde::{
Config as CryptarchiaConfig, LeaderConfig as CryptarchiaLeaderConfig,
NetworkConfig as CryptarchiaNetworkConfig,
ServiceConfig as CryptarchiaServiceConfig,
},
},
deployment::DeploymentSettings,
mempool::{
deployment::Settings as MempoolDeploymentSettings, serde::Config as MempoolConfig,
},
network::deployment::Settings as NetworkDeploymentSettings, network::deployment::Settings as NetworkDeploymentSettings,
time::{deployment::Settings as TimeDeploymentSettings, serde::Config as TimeConfig},
}, },
}; };
use nomos_sdp::SdpSettings; use nomos_sdp::SdpSettings;
use nomos_time::{ use nomos_time::backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings};
TimeServiceSettings,
backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings},
};
use nomos_utils::math::NonNegativeF64; use nomos_utils::math::NonNegativeF64;
use nomos_wallet::WalletServiceSettings; use nomos_wallet::WalletServiceSettings;
@ -68,56 +77,79 @@ use crate::{
#[must_use] #[must_use]
#[expect(clippy::too_many_lines, reason = "TODO: Address this at some point.")] #[expect(clippy::too_many_lines, reason = "TODO: Address this at some point.")]
pub fn create_executor_config(config: GeneralConfig) -> ExecutorConfig { pub fn create_executor_config(config: GeneralConfig) -> ExecutorConfig {
let (blend_user_config, deployment_settings) = build_blend_service_config(&config.blend_config); let (blend_user_config, blend_deployment, network_deployment) =
build_blend_service_config(&config.blend_config);
let cryptarchia_deployment = CryptarchiaDeploymentSettings {
epoch_config: config.consensus_config.ledger_config.epoch_config,
consensus_config: config.consensus_config.ledger_config.consensus_config,
sdp_config: DeploymentSdpConfig {
service_params: config
.consensus_config
.ledger_config
.sdp_config
.service_params
.clone(),
min_stake: config.consensus_config.ledger_config.sdp_config.min_stake,
},
gossipsub_protocol: "/cryptarchia/proto".to_owned(),
};
let time_deployment = TimeDeploymentSettings {
slot_duration: config.time_config.slot_duration,
};
let mempool_deployment = MempoolDeploymentSettings {
pubsub_topic: "mantle".to_owned(),
};
let deployment_settings = DeploymentSettings::new_custom(
blend_deployment,
network_deployment,
cryptarchia_deployment,
time_deployment,
mempool_deployment,
);
ExecutorConfig { ExecutorConfig {
network: config.network_config, network: config.network_config,
blend: blend_user_config, blend: blend_user_config,
deployment: deployment_settings, deployment: deployment_settings,
cryptarchia: CryptarchiaSettings { cryptarchia: CryptarchiaConfig {
config: config.consensus_config.ledger_config.clone(), service: CryptarchiaServiceConfig {
starting_state: StartingState::Genesis { starting_state: StartingState::Genesis {
genesis_tx: config.consensus_config.genesis_tx, genesis_tx: config.consensus_config.genesis_tx,
}, },
// Disable on-disk recovery in compose tests to avoid serde errors on // Disable on-disk recovery in compose tests to avoid serde errors on
// non-string keys and keep services alive. // non-string keys and keep services alive.
recovery_file: PathBuf::new(), recovery_file: PathBuf::new(),
bootstrap: chain_service::BootstrapConfig { bootstrap: chain_service::BootstrapConfig {
prolonged_bootstrap_period: config.bootstrapping_config.prolonged_bootstrap_period, prolonged_bootstrap_period: config
force_bootstrap: false, .bootstrapping_config
offline_grace_period: chain_service::OfflineGracePeriodConfig { .prolonged_bootstrap_period,
grace_period: Duration::from_secs(20 * 60), force_bootstrap: false,
state_recording_interval: Duration::from_secs(60), offline_grace_period: chain_service::OfflineGracePeriodConfig {
grace_period: Duration::from_secs(20 * 60),
state_recording_interval: Duration::from_secs(60),
},
}, },
}, },
}, network: CryptarchiaNetworkConfig {
chain_network: ChainNetworkSettings { bootstrap: ChainBootstrapConfig {
config: config.consensus_config.ledger_config.clone(), ibd: chain_network::IbdConfig {
network_adapter_settings: peers: HashSet::new(),
chain_network::network::adapters::libp2p::LibP2pAdapterSettings { delay_before_new_download: Duration::from_secs(10),
topic: String::from(nomos_node::CONSENSUS_TOPIC), },
}, },
bootstrap: chain_network::BootstrapConfig { sync: SyncConfig {
ibd: chain_network::IbdConfig { orphan: OrphanConfig {
peers: HashSet::new(), max_orphan_cache_size: NonZeroUsize::new(5)
delay_before_new_download: Duration::from_secs(10), .expect("Max orphan cache size must be non-zero"),
},
}, },
}, },
sync: SyncConfig { leader: CryptarchiaLeaderConfig {
orphan: OrphanConfig { leader: ChainLeaderConfig {
max_orphan_cache_size: NonZeroUsize::new(5) pk: config.consensus_config.leader_config.pk,
.expect("Max orphan cache size must be non-zero"), sk: config.consensus_config.leader_config.sk.clone(),
}, },
}, },
}, },
cryptarchia_leader: LeaderSettings {
transaction_selector_settings: (),
config: config.consensus_config.ledger_config.clone(),
leader_config: config.consensus_config.leader_config.clone(),
blend_broadcast_settings:
nomos_blend_service::core::network::libp2p::Libp2pBroadcastSettings {
topic: String::from(nomos_node::CONSENSUS_TOPIC),
},
},
da_network: DaNetworkConfig { da_network: DaNetworkConfig {
backend: DaNetworkExecutorBackendSettings { backend: DaNetworkExecutorBackendSettings {
validator_settings: DaNetworkBackendSettings { validator_settings: DaNetworkBackendSettings {
@ -203,24 +235,19 @@ pub fn create_executor_config(config: GeneralConfig) -> ExecutorConfig {
retry_limit: 2, retry_limit: 2,
}, },
}, },
time: TimeServiceSettings { time: TimeConfig {
backend_settings: NtpTimeBackendSettings { backend: NtpTimeBackendSettings {
ntp_server: config.time_config.ntp_server, ntp_server: config.time_config.ntp_server,
ntp_client_settings: NTPClientSettings { ntp_client_settings: NTPClientSettings {
timeout: config.time_config.timeout, timeout: config.time_config.timeout,
listening_interface: config.time_config.interface, listening_interface: config.time_config.interface,
}, },
update_interval: config.time_config.update_interval, update_interval: config.time_config.update_interval,
slot_config: SlotConfig {
slot_duration: config.time_config.slot_duration,
chain_start_time: config.time_config.chain_start_time,
},
epoch_config: config.consensus_config.ledger_config.epoch_config,
base_period_length: config.consensus_config.ledger_config.base_period_length(),
}, },
chain_start_time: config.time_config.chain_start_time,
}, },
mempool: MempoolConfig { mempool: MempoolConfig {
pool_recovery_path: "./recovery/mempool.json".into(), recovery_path: "./recovery/mempool.json".into(),
}, },
sdp: SdpSettings { declaration: None }, sdp: SdpSettings { declaration: None },
wallet: WalletServiceSettings { wallet: WalletServiceSettings {
@ -252,7 +279,11 @@ pub fn create_executor_config(config: GeneralConfig) -> ExecutorConfig {
fn build_blend_service_config( fn build_blend_service_config(
config: &TopologyBlendConfig, config: &TopologyBlendConfig,
) -> (blend_serde::Config, NodeDeploymentSettings) { ) -> (
blend_serde::Config,
blend_deployment::Settings,
NetworkDeploymentSettings,
) {
let zk_key_id = let zk_key_id =
key_id_for_preload_backend(&Key::from(ZkKey::new(config.secret_zk_key.clone()))); key_id_for_preload_backend(&Key::from(ZkKey::new(config.secret_zk_key.clone())));
@ -314,17 +345,14 @@ fn build_blend_service_config(
}, },
}; };
let deployment = NodeDeploymentSettings::Custom(CustomDeployment { let network_deployment = NetworkDeploymentSettings {
blend: deployment_settings, identify_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new(
network: NetworkDeploymentSettings { "/integration/nomos/identify/1.0.0",
identify_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new( ),
"/integration/nomos/identify/1.0.0", kademlia_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new(
), "/integration/nomos/kad/1.0.0",
kademlia_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new( ),
"/integration/nomos/kad/1.0.0", };
),
},
});
(user, deployment) (user, deployment_settings, network_deployment)
} }

View File

@ -5,11 +5,10 @@ use std::{
time::Duration, time::Duration,
}; };
use chain_leader::LeaderSettings; use chain_leader::LeaderConfig as ChainLeaderConfig;
use chain_network::{ChainNetworkSettings, OrphanConfig, SyncConfig}; use chain_network::{BootstrapConfig as ChainBootstrapConfig, OrphanConfig, SyncConfig};
use chain_service::{CryptarchiaSettings, StartingState}; use chain_service::StartingState;
use cryptarchia_engine::time::SlotConfig; use key_management_system_service::keys::{Key, ZkKey};
use key_management_system::keys::{Key, ZkKey};
use nomos_blend_service::{ use nomos_blend_service::{
core::settings::{CoverTrafficSettings, MessageDelayerSettings, SchedulerSettings, ZkSettings}, core::settings::{CoverTrafficSettings, MessageDelayerSettings, SchedulerSettings, ZkSettings},
settings::TimingSettings, settings::TimingSettings,
@ -38,16 +37,26 @@ use nomos_node::{
deployment::{self as blend_deployment}, deployment::{self as blend_deployment},
serde as blend_serde, serde as blend_serde,
}, },
deployment::{CustomDeployment, Settings as NodeDeploymentSettings}, cryptarchia::{
mempool::MempoolConfig, deployment::{
SdpConfig as DeploymentSdpConfig, Settings as CryptarchiaDeploymentSettings,
},
serde::{
Config as CryptarchiaConfig, LeaderConfig as CryptarchiaLeaderConfig,
NetworkConfig as CryptarchiaNetworkConfig,
ServiceConfig as CryptarchiaServiceConfig,
},
},
deployment::DeploymentSettings,
mempool::{
deployment::Settings as MempoolDeploymentSettings, serde::Config as MempoolConfig,
},
network::deployment::Settings as NetworkDeploymentSettings, network::deployment::Settings as NetworkDeploymentSettings,
time::{deployment::Settings as TimeDeploymentSettings, serde::Config as TimeConfig},
}, },
}; };
use nomos_sdp::SdpSettings; use nomos_sdp::SdpSettings;
use nomos_time::{ use nomos_time::backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings};
TimeServiceSettings,
backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings},
};
use nomos_utils::math::NonNegativeF64; use nomos_utils::math::NonNegativeF64;
use nomos_wallet::WalletServiceSettings; use nomos_wallet::WalletServiceSettings;
@ -66,56 +75,79 @@ use crate::{
)] )]
pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig { pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig {
let da_policy_settings = config.da_config.policy_settings; let da_policy_settings = config.da_config.policy_settings;
let (blend_user_config, deployment_settings) = build_blend_service_config(&config.blend_config); let (blend_user_config, blend_deployment, network_deployment) =
build_blend_service_config(&config.blend_config);
let cryptarchia_deployment = CryptarchiaDeploymentSettings {
epoch_config: config.consensus_config.ledger_config.epoch_config,
consensus_config: config.consensus_config.ledger_config.consensus_config,
sdp_config: DeploymentSdpConfig {
service_params: config
.consensus_config
.ledger_config
.sdp_config
.service_params
.clone(),
min_stake: config.consensus_config.ledger_config.sdp_config.min_stake,
},
gossipsub_protocol: "/cryptarchia/proto".to_owned(),
};
let time_deployment = TimeDeploymentSettings {
slot_duration: config.time_config.slot_duration,
};
let mempool_deployment = MempoolDeploymentSettings {
pubsub_topic: "mantle".to_owned(),
};
let deployment_settings = DeploymentSettings::new_custom(
blend_deployment,
network_deployment,
cryptarchia_deployment,
time_deployment,
mempool_deployment,
);
ValidatorConfig { ValidatorConfig {
network: config.network_config, network: config.network_config,
blend: blend_user_config, blend: blend_user_config,
deployment: deployment_settings, deployment: deployment_settings,
cryptarchia: CryptarchiaSettings { cryptarchia: CryptarchiaConfig {
config: config.consensus_config.ledger_config.clone(), service: CryptarchiaServiceConfig {
starting_state: StartingState::Genesis { starting_state: StartingState::Genesis {
genesis_tx: config.consensus_config.genesis_tx, genesis_tx: config.consensus_config.genesis_tx,
}, },
// Disable on-disk recovery in compose tests to avoid serde errors on // Disable on-disk recovery in compose tests to avoid serde errors on
// non-string keys and keep services alive. // non-string keys and keep services alive.
recovery_file: PathBuf::new(), recovery_file: PathBuf::new(),
bootstrap: chain_service::BootstrapConfig { bootstrap: chain_service::BootstrapConfig {
prolonged_bootstrap_period: config.bootstrapping_config.prolonged_bootstrap_period, prolonged_bootstrap_period: config
force_bootstrap: false, .bootstrapping_config
offline_grace_period: chain_service::OfflineGracePeriodConfig { .prolonged_bootstrap_period,
grace_period: Duration::from_secs(20 * 60), force_bootstrap: false,
state_recording_interval: Duration::from_secs(60), offline_grace_period: chain_service::OfflineGracePeriodConfig {
grace_period: Duration::from_secs(20 * 60),
state_recording_interval: Duration::from_secs(60),
},
}, },
}, },
}, network: CryptarchiaNetworkConfig {
chain_network: ChainNetworkSettings { bootstrap: ChainBootstrapConfig {
config: config.consensus_config.ledger_config.clone(), ibd: chain_network::IbdConfig {
network_adapter_settings: peers: HashSet::new(),
chain_network::network::adapters::libp2p::LibP2pAdapterSettings { delay_before_new_download: Duration::from_secs(10),
topic: String::from(nomos_node::CONSENSUS_TOPIC), },
}, },
bootstrap: chain_network::BootstrapConfig { sync: SyncConfig {
ibd: chain_network::IbdConfig { orphan: OrphanConfig {
peers: HashSet::new(), max_orphan_cache_size: NonZeroUsize::new(5)
delay_before_new_download: Duration::from_secs(10), .expect("Max orphan cache size must be non-zero"),
},
}, },
}, },
sync: SyncConfig { leader: CryptarchiaLeaderConfig {
orphan: OrphanConfig { leader: ChainLeaderConfig {
max_orphan_cache_size: NonZeroUsize::new(5) pk: config.consensus_config.leader_config.pk,
.expect("Max orphan cache size must be non-zero"), sk: config.consensus_config.leader_config.sk.clone(),
}, },
}, },
}, },
cryptarchia_leader: LeaderSettings {
transaction_selector_settings: (),
config: config.consensus_config.ledger_config.clone(),
leader_config: config.consensus_config.leader_config.clone(),
blend_broadcast_settings:
nomos_blend_service::core::network::libp2p::Libp2pBroadcastSettings {
topic: String::from(nomos_node::CONSENSUS_TOPIC),
},
},
da_network: DaNetworkConfig { da_network: DaNetworkConfig {
backend: DaNetworkBackendSettings { backend: DaNetworkBackendSettings {
node_key: config.da_config.node_key, node_key: config.da_config.node_key,
@ -193,24 +225,19 @@ pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig {
read_only: false, read_only: false,
column_family: Some("blocks".into()), column_family: Some("blocks".into()),
}, },
time: TimeServiceSettings { time: TimeConfig {
backend_settings: NtpTimeBackendSettings { backend: NtpTimeBackendSettings {
ntp_server: config.time_config.ntp_server, ntp_server: config.time_config.ntp_server,
ntp_client_settings: NTPClientSettings { ntp_client_settings: NTPClientSettings {
timeout: config.time_config.timeout, timeout: config.time_config.timeout,
listening_interface: config.time_config.interface, listening_interface: config.time_config.interface,
}, },
update_interval: config.time_config.update_interval, update_interval: config.time_config.update_interval,
slot_config: SlotConfig {
slot_duration: config.time_config.slot_duration,
chain_start_time: config.time_config.chain_start_time,
},
epoch_config: config.consensus_config.ledger_config.epoch_config,
base_period_length: config.consensus_config.ledger_config.base_period_length(),
}, },
chain_start_time: config.time_config.chain_start_time,
}, },
mempool: MempoolConfig { mempool: MempoolConfig {
pool_recovery_path: "./recovery/mempool.json".into(), recovery_path: "./recovery/mempool.json".into(),
}, },
sdp: SdpSettings { declaration: None }, sdp: SdpSettings { declaration: None },
wallet: WalletServiceSettings { wallet: WalletServiceSettings {
@ -241,7 +268,11 @@ pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig {
fn build_blend_service_config( fn build_blend_service_config(
config: &TopologyBlendConfig, config: &TopologyBlendConfig,
) -> (blend_serde::Config, NodeDeploymentSettings) { ) -> (
blend_serde::Config,
blend_deployment::Settings,
NetworkDeploymentSettings,
) {
let zk_key_id = let zk_key_id =
key_id_for_preload_backend(&Key::from(ZkKey::new(config.secret_zk_key.clone()))); key_id_for_preload_backend(&Key::from(ZkKey::new(config.secret_zk_key.clone())));
@ -303,17 +334,14 @@ fn build_blend_service_config(
}, },
}; };
let deployment = NodeDeploymentSettings::Custom(CustomDeployment { let network_deployment = NetworkDeploymentSettings {
blend: deployment_settings, identify_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new(
network: NetworkDeploymentSettings { "/integration/nomos/identify/1.0.0",
identify_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new( ),
"/integration/nomos/identify/1.0.0", kademlia_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new(
), "/integration/nomos/kad/1.0.0",
kademlia_protocol_name: nomos_libp2p::protocol_name::StreamProtocol::new( ),
"/integration/nomos/kad/1.0.0", };
),
},
});
(user, deployment) (user, deployment_settings, network_deployment)
} }

View File

@ -2,7 +2,7 @@ use core::time::Duration;
use std::{num::NonZeroU64, str::FromStr as _}; use std::{num::NonZeroU64, str::FromStr as _};
use ed25519_dalek::SigningKey; use ed25519_dalek::SigningKey;
use nomos_blend_message::crypto::keys::Ed25519PrivateKey; use key_management_system_service::keys::UnsecuredEd25519Key;
use nomos_blend_service::{ use nomos_blend_service::{
core::backends::libp2p::Libp2pBlendBackendSettings as Libp2pCoreBlendBackendSettings, core::backends::libp2p::Libp2pBlendBackendSettings as Libp2pCoreBlendBackendSettings,
edge::backends::libp2p::Libp2pBlendBackendSettings as Libp2pEdgeBlendBackendSettings, edge::backends::libp2p::Libp2pBlendBackendSettings as Libp2pEdgeBlendBackendSettings,
@ -15,7 +15,7 @@ use zksign::SecretKey;
pub struct GeneralBlendConfig { pub struct GeneralBlendConfig {
pub backend_core: Libp2pCoreBlendBackendSettings, pub backend_core: Libp2pCoreBlendBackendSettings,
pub backend_edge: Libp2pEdgeBlendBackendSettings, pub backend_edge: Libp2pEdgeBlendBackendSettings,
pub private_key: Ed25519PrivateKey, pub private_key: UnsecuredEd25519Key,
pub secret_zk_key: SecretKey, pub secret_zk_key: SecretKey,
pub signer: SigningKey, pub signer: SigningKey,
} }
@ -34,12 +34,13 @@ pub fn create_blend_configs(ids: &[[u8; 32]], ports: &[u16]) -> Vec<GeneralBlend
.map(|(id, port)| { .map(|(id, port)| {
let signer = SigningKey::from_bytes(id); let signer = SigningKey::from_bytes(id);
let private_key = Ed25519PrivateKey::from(*id); let private_key = UnsecuredEd25519Key::from(signer.clone());
// We need unique ZK secret keys, so we just derive them deterministically from // We need unique ZK secret keys, so we just derive them deterministically from
// the generated Ed25519 public keys, which are guaranteed to be unique because // the generated Ed25519 public keys, which are guaranteed to be unique because
// they are in turned derived from node ID. // they are in turned derived from node ID.
let secret_zk_key = let secret_zk_key = SecretKey::from(BigUint::from_bytes_le(
SecretKey::from(BigUint::from_bytes_le(private_key.public_key().as_bytes())); private_key.as_ref().verifying_key().as_bytes(),
));
GeneralBlendConfig { GeneralBlendConfig {
backend_core: Libp2pCoreBlendBackendSettings { backend_core: Libp2pCoreBlendBackendSettings {
listening_address: Multiaddr::from_str(&format!( listening_address: Multiaddr::from_str(&format!(

View File

@ -1,4 +1,7 @@
use std::{num::NonZero, sync::Arc}; use std::{
num::{NonZero, NonZeroU64},
sync::Arc,
};
use chain_leader::LeaderConfig; use chain_leader::LeaderConfig;
use cryptarchia_engine::EpochConfig; use cryptarchia_engine::EpochConfig;
@ -17,6 +20,7 @@ use nomos_core::{
sdp::{DeclarationMessage, Locator, ProviderId, ServiceParameters, ServiceType}, sdp::{DeclarationMessage, Locator, ProviderId, ServiceParameters, ServiceType},
}; };
use nomos_node::{SignedMantleTx, Transaction as _}; use nomos_node::{SignedMantleTx, Transaction as _};
use nomos_utils::math::NonNegativeF64;
use num_bigint::BigUint; use num_bigint::BigUint;
use zksign::{PublicKey, SecretKey}; use zksign::{PublicKey, SecretKey};
@ -175,6 +179,14 @@ pub fn create_consensus_configs(
threshold: 1, threshold: 1,
timestamp: 0, timestamp: 0,
}, },
service_rewards_params: nomos_ledger::mantle::sdp::ServiceRewardsParameters {
blend: nomos_ledger::mantle::sdp::rewards::blend::RewardsParameters {
rounds_per_session: NonZeroU64::new(10).unwrap(),
message_frequency_per_round: NonNegativeF64::try_from(1.0).unwrap(),
num_blend_layers: NonZeroU64::new(3).unwrap(),
minimum_network_size: NonZeroU64::new(1).unwrap(),
},
},
}, },
}; };

View File

@ -11,7 +11,7 @@ pub mod wallet;
use blend::GeneralBlendConfig; use blend::GeneralBlendConfig;
use consensus::{GeneralConsensusConfig, ProviderInfo, create_genesis_tx_with_declarations}; use consensus::{GeneralConsensusConfig, ProviderInfo, create_genesis_tx_with_declarations};
use da::GeneralDaConfig; use da::GeneralDaConfig;
use key_management_system::{ use key_management_system_service::{
backend::preload::PreloadKMSBackendSettings, backend::preload::PreloadKMSBackendSettings,
keys::{Ed25519Key, Key, ZkKey}, keys::{Ed25519Key, Key, ZkKey},
}; };

View File

@ -16,37 +16,37 @@ workspace = true
default = [] default = []
[dependencies] [dependencies]
anyhow = "1" anyhow = "1"
async-trait = "0.1" async-trait = "0.1"
broadcast-service = { workspace = true } broadcast-service = { workspace = true }
chain-service = { workspace = true } chain-service = { workspace = true }
common-http-client = { workspace = true } common-http-client = { workspace = true }
futures = { default-features = false, version = "0.3" } futures = { default-features = false, version = "0.3" }
groth16 = { workspace = true } groth16 = { workspace = true }
hex = { version = "0.4.3", default-features = false } hex = { version = "0.4.3", default-features = false }
key-management-system = { workspace = true } key-management-system-service = { workspace = true }
kzgrs-backend = { workspace = true } kzgrs-backend = { workspace = true }
nomos-core = { workspace = true } nomos-core = { workspace = true }
nomos-da-network-core = { workspace = true } nomos-da-network-core = { workspace = true }
nomos-da-network-service = { workspace = true } nomos-da-network-service = { workspace = true }
nomos-executor = { workspace = true, default-features = false, features = ["testing", "tracing"] } nomos-executor = { workspace = true, default-features = false, features = ["testing", "tracing"] }
nomos-http-api-common = { workspace = true } nomos-http-api-common = { workspace = true }
nomos-libp2p = { workspace = true } nomos-libp2p = { workspace = true }
nomos-network = { workspace = true, features = ["libp2p"] } nomos-network = { workspace = true, features = ["libp2p"] }
nomos-node = { workspace = true, default-features = false, features = ["testing"] } nomos-node = { workspace = true, default-features = false, features = ["testing"] }
nomos-tracing = { workspace = true } nomos-tracing = { workspace = true }
nomos-tracing-service = { workspace = true } nomos-tracing-service = { workspace = true }
nomos-utils = { workspace = true } nomos-utils = { workspace = true }
prometheus-http-query = "0.8" prometheus-http-query = "0.8"
rand = { workspace = true } rand = { workspace = true }
reqwest = { workspace = true, features = ["json"] } reqwest = { workspace = true, features = ["json"] }
serde = { workspace = true } serde = { workspace = true }
serde_json = { workspace = true } serde_json = { workspace = true }
serde_with = { workspace = true } serde_with = { workspace = true }
serde_yaml = { workspace = true } serde_yaml = { workspace = true }
tempfile = { workspace = true } tempfile = { workspace = true }
testing-framework-config = { workspace = true } testing-framework-config = { workspace = true }
thiserror = { workspace = true } thiserror = { workspace = true }
tokio = { workspace = true, features = ["macros", "process", "rt-multi-thread", "time"] } tokio = { workspace = true, features = ["macros", "process", "rt-multi-thread", "time"] }
tracing = { workspace = true } tracing = { workspace = true }
tx-service = { workspace = true, features = ["libp2p", "mock"] } tx-service = { workspace = true, features = ["libp2p", "mock"] }

View File

@ -85,7 +85,7 @@ fn ensure_network_adapter(cryptarchia: &mut Mapping) {
let mut network = Mapping::new(); let mut network = Mapping::new();
network.insert( network.insert(
Value::String("topic".into()), Value::String("topic".into()),
Value::String(nomos_node::CONSENSUS_TOPIC.into()), Value::String("/cryptarchia/proto".into()),
); );
cryptarchia.insert( cryptarchia.insert(
Value::String("network_adapter_settings".into()), Value::String("network_adapter_settings".into()),

View File

@ -89,7 +89,7 @@ fn ensure_network_adapter(cryptarchia: &mut Mapping) {
let mut network = Mapping::new(); let mut network = Mapping::new();
network.insert( network.insert(
Value::String("topic".into()), Value::String("topic".into()),
Value::String(nomos_node::CONSENSUS_TOPIC.into()), Value::String("/cryptarchia/proto".into()),
); );
cryptarchia.insert( cryptarchia.insert(
Value::String("network_adapter_settings".into()), Value::String("network_adapter_settings".into()),

View File

@ -18,7 +18,7 @@ use configs::{
}; };
use futures::future::join_all; use futures::future::join_all;
use groth16::fr_to_bytes; use groth16::fr_to_bytes;
use key_management_system::{ use key_management_system_service::{
backend::preload::PreloadKMSBackendSettings, backend::preload::PreloadKMSBackendSettings,
keys::{Ed25519Key, Key, ZkKey}, keys::{Ed25519Key, Key, ZkKey},
}; };

View File

@ -123,10 +123,12 @@ async fn wait_for_readiness(
) -> Result<(), ReadinessError> { ) -> Result<(), ReadinessError> {
info!("waiting for local network readiness"); info!("waiting for local network readiness");
topology.wait_network_ready().await?; topology.wait_network_ready().await?;
if !skip_membership { if skip_membership {
info!("waiting for membership readiness"); // Allow callers to bypass deeper readiness for lightweight demos.
topology.wait_membership_ready().await?; return Ok(());
} }
info!("waiting for membership readiness");
topology.wait_membership_ready().await?;
info!("waiting for DA balancer readiness"); info!("waiting for DA balancer readiness");
topology.wait_da_balancer_ready().await topology.wait_da_balancer_ready().await
} }

View File

@ -13,26 +13,26 @@ version = { workspace = true }
workspace = true workspace = true
[dependencies] [dependencies]
axum = { default-features = false, features = ["http1", "http2", "json", "tokio"], version = "0.7.5" } axum = { default-features = false, features = ["http1", "http2", "json", "tokio"], version = "0.7.5" }
clap = { default-features = false, version = "4" } clap = { default-features = false, version = "4" }
groth16 = { workspace = true } groth16 = { workspace = true }
hex = { workspace = true } hex = { workspace = true }
key-management-system = { workspace = true } key-management-system-service = { workspace = true }
nomos-core = { workspace = true } nomos-core = { workspace = true }
nomos-da-network-core = { workspace = true } nomos-da-network-core = { workspace = true }
nomos-executor = { workspace = true } nomos-executor = { workspace = true }
nomos-libp2p = { workspace = true } nomos-libp2p = { workspace = true }
nomos-node = { workspace = true } nomos-node = { workspace = true }
nomos-tracing-service = { workspace = true } nomos-tracing-service = { workspace = true }
nomos-utils = { workspace = true } nomos-utils = { workspace = true }
rand = { workspace = true } rand = { workspace = true }
reqwest = { workspace = true } reqwest = { workspace = true }
serde = { default-features = false, version = "1" } serde = { default-features = false, version = "1" }
serde_json = { default-features = false, version = "1.0" } serde_json = { default-features = false, version = "1.0" }
serde_path_to_error = "0.1" serde_path_to_error = "0.1"
serde_with = { workspace = true } serde_with = { workspace = true }
serde_yaml = "0.9" serde_yaml = "0.9"
subnetworks-assignations = { workspace = true } subnetworks-assignations = { workspace = true }
testing-framework-config = { workspace = true } testing-framework-config = { workspace = true }
tokio = { default-features = false, features = ["macros", "net", "rt-multi-thread"], version = "1" } tokio = { default-features = false, features = ["macros", "net", "rt-multi-thread"], version = "1" }
tracing = { workspace = true } tracing = { workspace = true }

View File

@ -2,7 +2,7 @@ use std::{collections::HashMap, net::Ipv4Addr, str::FromStr as _};
use groth16::fr_to_bytes; use groth16::fr_to_bytes;
use hex; use hex;
use key_management_system::{ use key_management_system_service::{
backend::preload::PreloadKMSBackendSettings, backend::preload::PreloadKMSBackendSettings,
keys::{Ed25519Key, Key, ZkKey}, keys::{Ed25519Key, Key, ZkKey},
}; };