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-2025-0012", # backoff unmaintained; upstream workspace still relies on it
"RUSTSEC-2025-0055", # tracing-subscriber ansi escape issue; upstream dependency
"RUSTSEC-2025-0134", # rustls-pemfile unmaintained; transitive via rustls stack
]
yanked = "deny"

View File

@ -5,7 +5,7 @@ on:
env:
CARGO_TERM_COLOR: always
NOMOS_NODE_REV: 2f60a0372c228968c3526c341ebc7e58bbd178dd
NOMOS_NODE_REV: d2dd5a5084e1daef4032562c77d41de5e4d495f8
NOMOS_BUNDLE_VERSION: v4
jobs:
@ -67,17 +67,12 @@ jobs:
# 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 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
run: |
mkdir -p artifacts
cp "${CARGO_TARGET_DIR}/debug/nomos-node" artifacts/
cp "${CARGO_TARGET_DIR}/debug/nomos-executor" artifacts/
cp "${CARGO_TARGET_DIR}/debug/nomos-cli" artifacts/
cp "${CARGO_TARGET_DIR}/debug/local_runner" artifacts/
mkdir -p artifacts/circuits
rsync -a "$NOMOS_CIRCUITS"/ artifacts/circuits/
tar -czf nomos-binaries.tar.gz -C artifacts .

View File

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

2
.gitignore vendored
View File

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

241
Cargo.lock generated
View File

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

View File

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

View File

@ -52,11 +52,11 @@ ScenarioBuilder::topology_with(|t| {
```rust
.enable_node_control() // Enable node control capability
.chaos_with(|c| {
c.restart() // Random restart chaos
c.restart() // Random restart chaos
.min_delay(Duration::from_secs(30)) // Min time between restarts
.max_delay(Duration::from_secs(60)) // Max time between restarts
.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] {
println!("Testing with rate: {}", rate);
let mut plan = ScenarioBuilder::topology()
.network_star()
.validators(3)
.executors(2)
.apply()
let mut plan = ScenarioBuilder::topology_with(|t| {
t.network_star()
.validators(3)
.executors(2)
})
.wallets(50)
.transactions()
.rate(rate)
.users(20)
.apply()
.transactions_with(|txs| {
txs.rate(rate)
.users(20)
})
.expect_consensus_liveness()
.with_run_duration(Duration::from_secs(60))
.build();
@ -60,20 +60,20 @@ use testing_framework_workflows::ScenarioBuilderExt;
use std::time::Duration;
async fn sustained_load_test() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology()
.network_star()
.validators(4)
.executors(2)
.apply()
let mut plan = ScenarioBuilder::topology_with(|t| {
t.network_star()
.validators(4)
.executors(2)
})
.wallets(100)
.transactions()
.rate(15)
.users(50)
.apply()
.da()
.channel_rate(2)
.blob_rate(3)
.apply()
.transactions_with(|txs| {
txs.rate(15)
.users(50)
})
.da_with(|da| {
da.channel_rate(2)
.blob_rate(3)
})
.expect_consensus_liveness()
.with_run_duration(Duration::from_secs(300))
.build();
@ -99,23 +99,24 @@ use testing_framework_workflows::{ScenarioBuilderExt, ChaosBuilderExt};
use std::time::Duration;
async fn aggressive_chaos_test() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut plan = ScenarioBuilder::topology()
.network_star()
.validators(4)
.executors(2)
.apply()
let mut plan = ScenarioBuilder::topology_with(|t| {
t.network_star()
.validators(4)
.executors(2)
})
.enable_node_control()
.wallets(50)
.transactions()
.rate(10)
.users(20)
.apply()
.chaos()
.restart()
.min_delay(Duration::from_secs(10))
.max_delay(Duration::from_secs(20))
.target_cooldown(Duration::from_secs(15))
.apply()
.transactions_with(|txs| {
txs.rate(10)
.users(20)
})
.chaos_with(|c| {
c.restart()
.min_delay(Duration::from_secs(10))
.max_delay(Duration::from_secs(20))
.target_cooldown(Duration::from_secs(15))
.apply()
})
.expect_consensus_liveness()
.with_run_duration(Duration::from_secs(180))
.build();

View File

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

View File

@ -91,14 +91,14 @@ Provides funded accounts for transaction submission.
### 3. Workloads
```rust
.transactions()
.rate(5) // 5 transactions per block
.users(8) // Use 8 of the 64 wallets
.apply()
.da()
.channel_rate(1) // 1 channel operation per block
.blob_rate(1) // 1 blob dispersal per block
.apply()
.transactions_with(|txs| {
txs.rate(5) // 5 transactions per block
.users(8) // Use 8 of the 64 wallets
})
.da_with(|da| {
da.channel_rate(1) // 1 channel operation per block
.blob_rate(1) // 1 blob dispersal per block
})
```
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
// Good: declarative
ScenarioBuilder::topology()
.network_star()
.validators(2)
.executors(1)
.apply()
.transactions()
.rate(5) // 5 transactions per block
.apply()
ScenarioBuilder::topology_with(|t| {
t.network_star()
.validators(2)
.executors(1)
})
.transactions_with(|txs| {
txs.rate(5) // 5 transactions per block
})
.expect_consensus_liveness()
.build();
@ -40,14 +40,14 @@ Reason in **blocks** and **consensus intervals**, not wall-clock seconds.
```rust
// Good: protocol-oriented thinking
let plan = ScenarioBuilder::topology()
.network_star()
.validators(2)
.executors(1)
.apply()
.transactions()
.rate(5) // 5 transactions per block
.apply()
let plan = ScenarioBuilder::topology_with(|t| {
t.network_star()
.validators(2)
.executors(1)
})
.transactions_with(|txs| {
txs.rate(5) // 5 transactions per block
})
.with_run_duration(Duration::from_secs(60)) // Let framework calculate expected blocks
.expect_consensus_liveness() // "Did we produce the expected blocks?"
.build();
@ -74,30 +74,34 @@ not "blocks produced in exact wall-clock seconds".
**Chaos is opt-in:**
```rust
// Separate: functional test (deterministic)
let plan = ScenarioBuilder::topology()
.network_star()
.validators(2)
.executors(1)
.apply()
.transactions()
.rate(5) // 5 transactions per block
.apply()
let plan = ScenarioBuilder::topology_with(|t| {
t.network_star()
.validators(2)
.executors(1)
})
.transactions_with(|txs| {
txs.rate(5) // 5 transactions per block
})
.expect_consensus_liveness()
.build();
// Separate: chaos test (introduces randomness)
let chaos_plan = ScenarioBuilder::topology()
.network_star()
.validators(3)
.executors(2)
.apply()
let chaos_plan = ScenarioBuilder::topology_with(|t| {
t.network_star()
.validators(3)
.executors(2)
})
.enable_node_control()
.chaos()
.restart()
.apply()
.transactions()
.rate(5) // 5 transactions per block
.apply()
.chaos_with(|c| {
c.restart()
.min_delay(Duration::from_secs(30))
.max_delay(Duration::from_secs(60))
.target_cooldown(Duration::from_secs(45))
.apply()
})
.transactions_with(|txs| {
txs.rate(5) // 5 transactions per block
})
.expect_consensus_liveness()
.build();
```

View File

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

View File

@ -5,7 +5,7 @@
set -euo pipefail
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_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_CIRCUITS_PLATFORM - override host platform detection
# 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)"
MODE="${1:-compose}"
RUN_SECS="${2:-60}"
VERSION="${VERSION:-v0.3.1}"
IMAGE="${NOMOS_TESTNET_IMAGE:-nomos-testnet:local}"
NOMOS_NODE_REV="${NOMOS_NODE_REV:-2f60a0372c228968c3526c341ebc7e58bbd178dd}"
NOMOS_NODE_REV="${NOMOS_NODE_REV:-d2dd5a5084e1daef4032562c77d41de5e4d495f8}"
case "$MODE" in
compose) BIN="compose_runner" ;;

View File

@ -20,7 +20,7 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
VERSION="${1:-v0.3.1}"
STACK_DIR="${STACK_DIR:-${ROOT_DIR}/testing-framework/assets/stack/kzgrs_test_params}"
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() {
local os arch

View File

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

View File

@ -4,6 +4,7 @@
ARG VERSION=v0.3.1
ARG CIRCUITS_OVERRIDE
ARG NOMOS_NODE_REV=d2dd5a5084e1daef4032562c77d41de5e4d495f8
# ===========================
# BUILD IMAGE
@ -13,6 +14,7 @@ FROM rust:1.91.0-slim-bookworm AS builder
ARG VERSION
ARG CIRCUITS_OVERRIDE
ARG NOMOS_NODE_REV
LABEL maintainer="augustinas@status.im" \
source="https://github.com/logos-co/nomos-node" \
@ -23,6 +25,7 @@ COPY . .
# Reduce debug artifact size.
ENV CARGO_PROFILE_DEV_DEBUG=0
ENV NOMOS_NODE_REV=${NOMOS_NODE_REV}
# Install dependencies needed for building RocksDB.
RUN apt-get update && apt-get install -yq \
@ -75,11 +78,55 @@ RUN mkdir -p /opt/circuits && \
ENV NOMOS_CIRCUITS=/opt/circuits
# Copy prebuilt runtime binaries (provided by CI) into the build context.
RUN mkdir -p /workspace/artifacts
COPY testing-framework/assets/stack/bin/nomos-node /workspace/artifacts/nomos-node
COPY testing-framework/assets/stack/bin/nomos-executor /workspace/artifacts/nomos-executor
COPY testing-framework/assets/stack/bin/nomos-cli /workspace/artifacts/nomos-cli
# Provide runtime binaries. Prefer prebuilt artifacts (when present) for speed; otherwise build from source.
RUN set -eu; \
mkdir -p /workspace/artifacts; \
TARGET_ARCH="$(uname -m)"; \
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.
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
old_blobs_check_interval: "5.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"
min_dispersal_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}"
VERSION="${VERSION:-v0.3.1}"
CIRCUITS_OVERRIDE="${CIRCUITS_OVERRIDE:-testing-framework/assets/stack/kzgrs_test_params}"
NOMOS_NODE_REV="${NOMOS_NODE_REV:-d2dd5a5084e1daef4032562c77d41de5e4d495f8}"
echo "Workspace root: ${ROOT_DIR}"
echo "Image tag: ${IMAGE_TAG}"
@ -19,6 +20,7 @@ echo "Circuits version (fallback download): ${VERSION}"
build_args=(
-f "${DOCKERFILE_PATH}"
-t "${IMAGE_TAG}"
--build-arg "NOMOS_NODE_REV=${NOMOS_NODE_REV}"
"${ROOT_DIR}"
)

View File

@ -7,6 +7,7 @@ export CFG_FILE_PATH="/config.yaml" \
CFG_HOST_IP=$(hostname -i) \
CFG_HOST_KIND="${CFG_HOST_KIND:-executor}" \
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" \
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_KIND="${CFG_HOST_KIND:-validator}" \
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" \
POL_PROOF_DEV_MODE="${POL_PROOF_DEV_MODE:-true}"

View File

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

View File

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

View File

@ -5,11 +5,10 @@ use std::{
time::Duration,
};
use chain_leader::LeaderSettings;
use chain_network::{ChainNetworkSettings, OrphanConfig, SyncConfig};
use chain_service::{CryptarchiaSettings, StartingState};
use cryptarchia_engine::time::SlotConfig;
use key_management_system::keys::{Key, ZkKey};
use chain_leader::LeaderConfig as ChainLeaderConfig;
use chain_network::{BootstrapConfig as ChainBootstrapConfig, OrphanConfig, SyncConfig};
use chain_service::StartingState;
use key_management_system_service::keys::{Key, ZkKey};
use nomos_blend_service::{
core::settings::{CoverTrafficSettings, MessageDelayerSettings, SchedulerSettings, ZkSettings},
settings::TimingSettings,
@ -44,16 +43,26 @@ use nomos_node::{
deployment::{self as blend_deployment},
serde as blend_serde,
},
deployment::{CustomDeployment, Settings as NodeDeploymentSettings},
mempool::MempoolConfig,
cryptarchia::{
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,
time::{deployment::Settings as TimeDeploymentSettings, serde::Config as TimeConfig},
},
};
use nomos_sdp::SdpSettings;
use nomos_time::{
TimeServiceSettings,
backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings},
};
use nomos_time::backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings};
use nomos_utils::math::NonNegativeF64;
use nomos_wallet::WalletServiceSettings;
@ -68,56 +77,79 @@ use crate::{
#[must_use]
#[expect(clippy::too_many_lines, reason = "TODO: Address this at some point.")]
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 {
network: config.network_config,
blend: blend_user_config,
deployment: deployment_settings,
cryptarchia: CryptarchiaSettings {
config: config.consensus_config.ledger_config.clone(),
starting_state: StartingState::Genesis {
genesis_tx: config.consensus_config.genesis_tx,
},
// Disable on-disk recovery in compose tests to avoid serde errors on
// non-string keys and keep services alive.
recovery_file: PathBuf::new(),
bootstrap: chain_service::BootstrapConfig {
prolonged_bootstrap_period: config.bootstrapping_config.prolonged_bootstrap_period,
force_bootstrap: false,
offline_grace_period: chain_service::OfflineGracePeriodConfig {
grace_period: Duration::from_secs(20 * 60),
state_recording_interval: Duration::from_secs(60),
cryptarchia: CryptarchiaConfig {
service: CryptarchiaServiceConfig {
starting_state: StartingState::Genesis {
genesis_tx: config.consensus_config.genesis_tx,
},
// Disable on-disk recovery in compose tests to avoid serde errors on
// non-string keys and keep services alive.
recovery_file: PathBuf::new(),
bootstrap: chain_service::BootstrapConfig {
prolonged_bootstrap_period: config
.bootstrapping_config
.prolonged_bootstrap_period,
force_bootstrap: false,
offline_grace_period: chain_service::OfflineGracePeriodConfig {
grace_period: Duration::from_secs(20 * 60),
state_recording_interval: Duration::from_secs(60),
},
},
},
},
chain_network: ChainNetworkSettings {
config: config.consensus_config.ledger_config.clone(),
network_adapter_settings:
chain_network::network::adapters::libp2p::LibP2pAdapterSettings {
topic: String::from(nomos_node::CONSENSUS_TOPIC),
network: CryptarchiaNetworkConfig {
bootstrap: ChainBootstrapConfig {
ibd: chain_network::IbdConfig {
peers: HashSet::new(),
delay_before_new_download: Duration::from_secs(10),
},
},
bootstrap: chain_network::BootstrapConfig {
ibd: chain_network::IbdConfig {
peers: HashSet::new(),
delay_before_new_download: Duration::from_secs(10),
sync: SyncConfig {
orphan: OrphanConfig {
max_orphan_cache_size: NonZeroUsize::new(5)
.expect("Max orphan cache size must be non-zero"),
},
},
},
sync: SyncConfig {
orphan: OrphanConfig {
max_orphan_cache_size: NonZeroUsize::new(5)
.expect("Max orphan cache size must be non-zero"),
leader: CryptarchiaLeaderConfig {
leader: ChainLeaderConfig {
pk: config.consensus_config.leader_config.pk,
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 {
backend: DaNetworkExecutorBackendSettings {
validator_settings: DaNetworkBackendSettings {
@ -203,24 +235,19 @@ pub fn create_executor_config(config: GeneralConfig) -> ExecutorConfig {
retry_limit: 2,
},
},
time: TimeServiceSettings {
backend_settings: NtpTimeBackendSettings {
time: TimeConfig {
backend: NtpTimeBackendSettings {
ntp_server: config.time_config.ntp_server,
ntp_client_settings: NTPClientSettings {
timeout: config.time_config.timeout,
listening_interface: config.time_config.interface,
},
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 {
pool_recovery_path: "./recovery/mempool.json".into(),
recovery_path: "./recovery/mempool.json".into(),
},
sdp: SdpSettings { declaration: None },
wallet: WalletServiceSettings {
@ -252,7 +279,11 @@ pub fn create_executor_config(config: GeneralConfig) -> ExecutorConfig {
fn build_blend_service_config(
config: &TopologyBlendConfig,
) -> (blend_serde::Config, NodeDeploymentSettings) {
) -> (
blend_serde::Config,
blend_deployment::Settings,
NetworkDeploymentSettings,
) {
let zk_key_id =
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 {
blend: deployment_settings,
network: NetworkDeploymentSettings {
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",
),
},
});
let network_deployment = NetworkDeploymentSettings {
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",
),
};
(user, deployment)
(user, deployment_settings, network_deployment)
}

View File

@ -5,11 +5,10 @@ use std::{
time::Duration,
};
use chain_leader::LeaderSettings;
use chain_network::{ChainNetworkSettings, OrphanConfig, SyncConfig};
use chain_service::{CryptarchiaSettings, StartingState};
use cryptarchia_engine::time::SlotConfig;
use key_management_system::keys::{Key, ZkKey};
use chain_leader::LeaderConfig as ChainLeaderConfig;
use chain_network::{BootstrapConfig as ChainBootstrapConfig, OrphanConfig, SyncConfig};
use chain_service::StartingState;
use key_management_system_service::keys::{Key, ZkKey};
use nomos_blend_service::{
core::settings::{CoverTrafficSettings, MessageDelayerSettings, SchedulerSettings, ZkSettings},
settings::TimingSettings,
@ -38,16 +37,26 @@ use nomos_node::{
deployment::{self as blend_deployment},
serde as blend_serde,
},
deployment::{CustomDeployment, Settings as NodeDeploymentSettings},
mempool::MempoolConfig,
cryptarchia::{
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,
time::{deployment::Settings as TimeDeploymentSettings, serde::Config as TimeConfig},
},
};
use nomos_sdp::SdpSettings;
use nomos_time::{
TimeServiceSettings,
backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings},
};
use nomos_time::backends::{NtpTimeBackendSettings, ntp::async_client::NTPClientSettings};
use nomos_utils::math::NonNegativeF64;
use nomos_wallet::WalletServiceSettings;
@ -66,56 +75,79 @@ use crate::{
)]
pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig {
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 {
network: config.network_config,
blend: blend_user_config,
deployment: deployment_settings,
cryptarchia: CryptarchiaSettings {
config: config.consensus_config.ledger_config.clone(),
starting_state: StartingState::Genesis {
genesis_tx: config.consensus_config.genesis_tx,
},
// Disable on-disk recovery in compose tests to avoid serde errors on
// non-string keys and keep services alive.
recovery_file: PathBuf::new(),
bootstrap: chain_service::BootstrapConfig {
prolonged_bootstrap_period: config.bootstrapping_config.prolonged_bootstrap_period,
force_bootstrap: false,
offline_grace_period: chain_service::OfflineGracePeriodConfig {
grace_period: Duration::from_secs(20 * 60),
state_recording_interval: Duration::from_secs(60),
cryptarchia: CryptarchiaConfig {
service: CryptarchiaServiceConfig {
starting_state: StartingState::Genesis {
genesis_tx: config.consensus_config.genesis_tx,
},
// Disable on-disk recovery in compose tests to avoid serde errors on
// non-string keys and keep services alive.
recovery_file: PathBuf::new(),
bootstrap: chain_service::BootstrapConfig {
prolonged_bootstrap_period: config
.bootstrapping_config
.prolonged_bootstrap_period,
force_bootstrap: false,
offline_grace_period: chain_service::OfflineGracePeriodConfig {
grace_period: Duration::from_secs(20 * 60),
state_recording_interval: Duration::from_secs(60),
},
},
},
},
chain_network: ChainNetworkSettings {
config: config.consensus_config.ledger_config.clone(),
network_adapter_settings:
chain_network::network::adapters::libp2p::LibP2pAdapterSettings {
topic: String::from(nomos_node::CONSENSUS_TOPIC),
network: CryptarchiaNetworkConfig {
bootstrap: ChainBootstrapConfig {
ibd: chain_network::IbdConfig {
peers: HashSet::new(),
delay_before_new_download: Duration::from_secs(10),
},
},
bootstrap: chain_network::BootstrapConfig {
ibd: chain_network::IbdConfig {
peers: HashSet::new(),
delay_before_new_download: Duration::from_secs(10),
sync: SyncConfig {
orphan: OrphanConfig {
max_orphan_cache_size: NonZeroUsize::new(5)
.expect("Max orphan cache size must be non-zero"),
},
},
},
sync: SyncConfig {
orphan: OrphanConfig {
max_orphan_cache_size: NonZeroUsize::new(5)
.expect("Max orphan cache size must be non-zero"),
leader: CryptarchiaLeaderConfig {
leader: ChainLeaderConfig {
pk: config.consensus_config.leader_config.pk,
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 {
backend: DaNetworkBackendSettings {
node_key: config.da_config.node_key,
@ -193,24 +225,19 @@ pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig {
read_only: false,
column_family: Some("blocks".into()),
},
time: TimeServiceSettings {
backend_settings: NtpTimeBackendSettings {
time: TimeConfig {
backend: NtpTimeBackendSettings {
ntp_server: config.time_config.ntp_server,
ntp_client_settings: NTPClientSettings {
timeout: config.time_config.timeout,
listening_interface: config.time_config.interface,
},
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 {
pool_recovery_path: "./recovery/mempool.json".into(),
recovery_path: "./recovery/mempool.json".into(),
},
sdp: SdpSettings { declaration: None },
wallet: WalletServiceSettings {
@ -241,7 +268,11 @@ pub fn create_validator_config(config: GeneralConfig) -> ValidatorConfig {
fn build_blend_service_config(
config: &TopologyBlendConfig,
) -> (blend_serde::Config, NodeDeploymentSettings) {
) -> (
blend_serde::Config,
blend_deployment::Settings,
NetworkDeploymentSettings,
) {
let zk_key_id =
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 {
blend: deployment_settings,
network: NetworkDeploymentSettings {
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",
),
},
});
let network_deployment = NetworkDeploymentSettings {
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",
),
};
(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 ed25519_dalek::SigningKey;
use nomos_blend_message::crypto::keys::Ed25519PrivateKey;
use key_management_system_service::keys::UnsecuredEd25519Key;
use nomos_blend_service::{
core::backends::libp2p::Libp2pBlendBackendSettings as Libp2pCoreBlendBackendSettings,
edge::backends::libp2p::Libp2pBlendBackendSettings as Libp2pEdgeBlendBackendSettings,
@ -15,7 +15,7 @@ use zksign::SecretKey;
pub struct GeneralBlendConfig {
pub backend_core: Libp2pCoreBlendBackendSettings,
pub backend_edge: Libp2pEdgeBlendBackendSettings,
pub private_key: Ed25519PrivateKey,
pub private_key: UnsecuredEd25519Key,
pub secret_zk_key: SecretKey,
pub signer: SigningKey,
}
@ -34,12 +34,13 @@ pub fn create_blend_configs(ids: &[[u8; 32]], ports: &[u16]) -> Vec<GeneralBlend
.map(|(id, port)| {
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
// the generated Ed25519 public keys, which are guaranteed to be unique because
// they are in turned derived from node ID.
let secret_zk_key =
SecretKey::from(BigUint::from_bytes_le(private_key.public_key().as_bytes()));
let secret_zk_key = SecretKey::from(BigUint::from_bytes_le(
private_key.as_ref().verifying_key().as_bytes(),
));
GeneralBlendConfig {
backend_core: Libp2pCoreBlendBackendSettings {
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 cryptarchia_engine::EpochConfig;
@ -17,6 +20,7 @@ use nomos_core::{
sdp::{DeclarationMessage, Locator, ProviderId, ServiceParameters, ServiceType},
};
use nomos_node::{SignedMantleTx, Transaction as _};
use nomos_utils::math::NonNegativeF64;
use num_bigint::BigUint;
use zksign::{PublicKey, SecretKey};
@ -175,6 +179,14 @@ pub fn create_consensus_configs(
threshold: 1,
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 consensus::{GeneralConsensusConfig, ProviderInfo, create_genesis_tx_with_declarations};
use da::GeneralDaConfig;
use key_management_system::{
use key_management_system_service::{
backend::preload::PreloadKMSBackendSettings,
keys::{Ed25519Key, Key, ZkKey},
};

View File

@ -16,37 +16,37 @@ workspace = true
default = []
[dependencies]
anyhow = "1"
async-trait = "0.1"
broadcast-service = { workspace = true }
chain-service = { workspace = true }
common-http-client = { workspace = true }
futures = { default-features = false, version = "0.3" }
groth16 = { workspace = true }
hex = { version = "0.4.3", default-features = false }
key-management-system = { workspace = true }
kzgrs-backend = { workspace = true }
nomos-core = { workspace = true }
nomos-da-network-core = { workspace = true }
nomos-da-network-service = { workspace = true }
nomos-executor = { workspace = true, default-features = false, features = ["testing", "tracing"] }
nomos-http-api-common = { workspace = true }
nomos-libp2p = { workspace = true }
nomos-network = { workspace = true, features = ["libp2p"] }
nomos-node = { workspace = true, default-features = false, features = ["testing"] }
nomos-tracing = { workspace = true }
nomos-tracing-service = { workspace = true }
nomos-utils = { workspace = true }
prometheus-http-query = "0.8"
rand = { workspace = true }
reqwest = { workspace = true, features = ["json"] }
serde = { workspace = true }
serde_json = { workspace = true }
serde_with = { workspace = true }
serde_yaml = { workspace = true }
tempfile = { workspace = true }
testing-framework-config = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["macros", "process", "rt-multi-thread", "time"] }
tracing = { workspace = true }
tx-service = { workspace = true, features = ["libp2p", "mock"] }
anyhow = "1"
async-trait = "0.1"
broadcast-service = { workspace = true }
chain-service = { workspace = true }
common-http-client = { workspace = true }
futures = { default-features = false, version = "0.3" }
groth16 = { workspace = true }
hex = { version = "0.4.3", default-features = false }
key-management-system-service = { workspace = true }
kzgrs-backend = { workspace = true }
nomos-core = { workspace = true }
nomos-da-network-core = { workspace = true }
nomos-da-network-service = { workspace = true }
nomos-executor = { workspace = true, default-features = false, features = ["testing", "tracing"] }
nomos-http-api-common = { workspace = true }
nomos-libp2p = { workspace = true }
nomos-network = { workspace = true, features = ["libp2p"] }
nomos-node = { workspace = true, default-features = false, features = ["testing"] }
nomos-tracing = { workspace = true }
nomos-tracing-service = { workspace = true }
nomos-utils = { workspace = true }
prometheus-http-query = "0.8"
rand = { workspace = true }
reqwest = { workspace = true, features = ["json"] }
serde = { workspace = true }
serde_json = { workspace = true }
serde_with = { workspace = true }
serde_yaml = { workspace = true }
tempfile = { workspace = true }
testing-framework-config = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["macros", "process", "rt-multi-thread", "time"] }
tracing = { workspace = true }
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();
network.insert(
Value::String("topic".into()),
Value::String(nomos_node::CONSENSUS_TOPIC.into()),
Value::String("/cryptarchia/proto".into()),
);
cryptarchia.insert(
Value::String("network_adapter_settings".into()),

View File

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

View File

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

View File

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

View File

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

View File

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