mirror of
https://github.com/logos-blockchain/logos-blockchain-testing.git
synced 2026-01-02 21:33:07 +00:00
Align workflows and configs with latest nomos-node rev
This commit is contained in:
parent
7c3fd6c5ac
commit
ce5f2146ae
@ -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"
|
||||
|
||||
|
||||
7
.github/workflows/build-binaries.yml
vendored
7
.github/workflows/build-binaries.yml
vendored
@ -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 .
|
||||
|
||||
2
.github/workflows/lint.yml
vendored
2
.github/workflows/lint.yml
vendored
@ -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
2
.gitignore
vendored
@ -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
241
Cargo.lock
generated
@ -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",
|
||||
|
||||
82
Cargo.toml
82
Cargo.toml
@ -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" }
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
})
|
||||
```
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
```
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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();
|
||||
```
|
||||
|
||||
@ -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(())
|
||||
}
|
||||
|
||||
|
||||
@ -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}"
|
||||
|
||||
|
||||
@ -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" ;;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Binary file not shown.
@ -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}"
|
||||
)
|
||||
|
||||
|
||||
@ -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}"
|
||||
|
||||
|
||||
@ -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}"
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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 _},
|
||||
};
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
@ -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!(
|
||||
|
||||
@ -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(),
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@ -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},
|
||||
};
|
||||
|
||||
@ -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"] }
|
||||
|
||||
@ -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()),
|
||||
|
||||
@ -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()),
|
||||
|
||||
@ -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},
|
||||
};
|
||||
|
||||
@ -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
|
||||
}
|
||||
|
||||
@ -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 }
|
||||
|
||||
@ -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},
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user