From 5e818212bf10666e0601a316acec50e958cad612 Mon Sep 17 00:00:00 2001 From: andrussal Date: Mon, 8 Dec 2025 06:19:45 +0100 Subject: [PATCH] Simplify demos and update KZG params path --- .github/workflows/lint.yml | 82 ++----------------- examples/src/bin/compose_runner.rs | 5 +- scripts/run-demo.sh | 8 +- testing-framework/assets/stack/cfgsync.yaml | 2 +- .../stack/scripts/run_nomos_executor.sh | 2 +- .../assets/stack/scripts/run_nomos_node.sh | 2 +- .../core/src/scenario/cfgsync.rs | 2 +- .../runners/compose/src/compose.rs | 2 +- 8 files changed, 24 insertions(+), 81 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c20abfd..c7657fa 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -178,79 +178,15 @@ jobs: ~/.cargo/git key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- - - name: Restore cached nomos binaries - id: restore-nomos-bins - uses: actions/cache@v4 - with: - path: ${{ github.workspace }}/nomos-binaries.tar.gz - key: ${{ runner.os }}-nomos-binaries-${{ env.NOMOS_NODE_REV }}-${{ env.NOMOS_BUNDLE_VERSION }} - - name: Download nomos binaries artifact (fallback) - if: steps.restore-nomos-bins.outputs.cache-hit != 'true' + - name: Run local demo (scripted) env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ARTIFACT_NAME: nomos-binaries-${{ runner.os }}-${{ env.NOMOS_NODE_REV }}-${{ env.NOMOS_BUNDLE_VERSION }} + NOMOS_TESTS_KEEP_LOGS: "true" + RUST_LOG: "info" + NOMOS_LOG_DIR: "${{ runner.temp }}/local-logs" run: | - set -euo pipefail - artifact_id=$(gh api -X GET "repos/${GITHUB_REPOSITORY}/actions/artifacts" --paginate -F per_page=100 \ - --jq '.artifacts[] | select(.name=="'"${ARTIFACT_NAME}"'") | .id' | head -n1) - if [ -z "$artifact_id" ]; then - echo "Nomos binaries cache missing and artifact not found. Run manual build-binaries workflow." >&2 - exit 1 - fi - gh api -X GET "repos/${GITHUB_REPOSITORY}/actions/artifacts/${artifact_id}/zip" > "${GITHUB_WORKSPACE}/artifact.zip" - unzip -o "${GITHUB_WORKSPACE}/artifact.zip" -d "${GITHUB_WORKSPACE}" - - name: Install nomos binaries and circuits - run: | - BIN_TAR="${GITHUB_WORKSPACE}/nomos-binaries.tar.gz" - BIN_DIR="${RUNNER_TEMP}/nomos-binaries" - mkdir -p "${BIN_DIR}" - tar -xzf "${BIN_TAR}" -C "${BIN_DIR}" - sudo cp "${BIN_DIR}/nomos-node" /usr/local/bin/ - sudo cp "${BIN_DIR}/nomos-executor" /usr/local/bin/ - sudo cp "${BIN_DIR}/nomos-cli" /usr/local/bin/ - sudo chmod +x /usr/local/bin/nomos-node /usr/local/bin/nomos-executor /usr/local/bin/nomos-cli - echo "NOMOS_NODE_BIN=/usr/local/bin/nomos-node" >> "$GITHUB_ENV" - echo "NOMOS_EXECUTOR_BIN=/usr/local/bin/nomos-executor" >> "$GITHUB_ENV" - if [ -d "${BIN_DIR}/circuits" ]; then - echo "NOMOS_CIRCUITS=${BIN_DIR}/circuits" >> "$GITHUB_ENV" - else - echo "Circuits bundle missing in nomos-binaries tarball" >&2 - exit 1 - fi - if [ -f "${BIN_DIR}/local_runner" ]; then - echo "LOCAL_RUNNER_BIN=${BIN_DIR}/local_runner" >> "$GITHUB_ENV" - fi - - name: Download KZG params for DA (raw) - run: | - mkdir -p "$(dirname "${NOMOS_KZGRS_PARAMS_PATH}")" - curl -fsSL "https://raw.githubusercontent.com/logos-co/nomos-node/${NOMOS_NODE_REV}/tests/kzgrs/kzgrs_test_params" \ - -o "${NOMOS_KZGRS_PARAMS_PATH}" - - name: Stage KZG params for local run - run: | - rm -rf testing-framework/assets/stack/kzgrs_test_params - mkdir -p testing-framework/assets/stack/kzgrs_test_params - rsync -a --delete "$NOMOS_CIRCUITS"/ testing-framework/assets/stack/kzgrs_test_params/ || true - cp "${NOMOS_KZGRS_PARAMS_PATH}" testing-framework/assets/stack/kzgrs_test_params/kzgrs_test_params - echo "NOMOS_KZGRS_PARAMS_PATH=${GITHUB_WORKSPACE}/testing-framework/assets/stack/kzgrs_test_params/kzgrs_test_params" >> "$GITHUB_ENV" - - name: Run local runner smoke (ignored test) - run: | - NOMOS_TESTS_KEEP_LOGS=true LOCAL_DEMO_RUN_SECS=60 cargo +nightly-2025-09-14 test --all-features -p runner-examples --test local_runner_bin_smoke -- --ignored --nocapture - - name: Show local runner logs (on failure) + scripts/run-demo.sh local 60 + - name: Collect local demo logs (on failure) if: failure() - run: | - LOG_DIR="${NOMOS_LOG_DIR:-${RUNNER_TEMP}/local-logs}" - if [ -d "$LOG_DIR" ]; then - echo "Dumping *.log files from $LOG_DIR" - if [ -f "$LOG_DIR/runner.log" ]; then - echo "=== runner.log (tail) ===" - tail -n 200 "$LOG_DIR/runner.log" - fi - find "$LOG_DIR" -maxdepth 2 -type f -name "*.log" ! -name "runner.log" -print -exec tail -n 200 {} \; - else - echo "No local logs directory at $LOG_DIR" - fi - - name: Archive local smoke logs - if: always() run: | if [ -d "${NOMOS_LOG_DIR}" ]; then tar -czf "${RUNNER_TEMP}/local-logs.tgz" -C "$(dirname "${NOMOS_LOG_DIR}")" "$(basename "${NOMOS_LOG_DIR}")" @@ -373,7 +309,7 @@ jobs: NOMOS_TESTNET_IMAGE: ${{ env.NOMOS_TESTNET_IMAGE }} COMPOSE_RUNNER_HOST: "127.0.0.1" NOMOS_TIME_BACKEND: "monotonic" - NOMOS_KZGRS_PARAMS_PATH: "/kzgrs_test_params/pol/proving_key.zkey" + NOMOS_KZGRS_PARAMS_PATH: "/kzgrs_test_params/kzgrs_test_params" RUST_BACKTRACE: "1" NOMOS_TESTS_TRACING: "true" RUST_LOG: "info" @@ -382,13 +318,13 @@ jobs: run: | mkdir -p "$TMPDIR" # Pre-flight: ensure KZG params exist where compose will mount them. - KZG_FILE=testing-framework/assets/stack/kzgrs_test_params/pol/proving_key.zkey + KZG_FILE=testing-framework/assets/stack/kzgrs_test_params/kzgrs_test_params if [ ! -f "$KZG_FILE" ]; then echo "KZG params missing at $KZG_FILE" >&2 ls -l testing-framework/assets/stack/kzgrs_test_params || true exit 1 fi - cargo run -p runner-examples --bin compose_runner -- --nocapture + scripts/run-demo.sh compose 60 - name: Collect compose logs if: failure() diff --git a/examples/src/bin/compose_runner.rs b/examples/src/bin/compose_runner.rs index 7b06111..a845c11 100644 --- a/examples/src/bin/compose_runner.rs +++ b/examples/src/bin/compose_runner.rs @@ -20,7 +20,10 @@ async fn main() { // Safe: setting a process-wide environment variable before any threads // or async tasks are spawned. unsafe { - std::env::set_var("NOMOS_KZGRS_PARAMS_PATH", "/kzgrs_test_params"); + std::env::set_var( + "NOMOS_KZGRS_PARAMS_PATH", + "/kzgrs_test_params/kzgrs_test_params", + ); } } diff --git a/scripts/run-demo.sh b/scripts/run-demo.sh index ce6bcc8..f83fc19 100755 --- a/scripts/run-demo.sh +++ b/scripts/run-demo.sh @@ -94,8 +94,12 @@ if [ ! -x "${HOST_BUNDLE_PATH}/zksign/witness_generator" ]; then fi if [ "$MODE" != "local" ]; then - echo "==> Rebuilding testnet image (${IMAGE})" - "${ROOT_DIR}/testing-framework/assets/stack/scripts/build_test_image.sh" + if [ "${NOMOS_SKIP_IMAGE_BUILD:-0}" = "1" ]; then + echo "==> Skipping testnet image rebuild (NOMOS_SKIP_IMAGE_BUILD=1)" + else + echo "==> Rebuilding testnet image (${IMAGE})" + "${ROOT_DIR}/testing-framework/assets/stack/scripts/build_test_image.sh" + fi fi if [ "$MODE" = "local" ]; then diff --git a/testing-framework/assets/stack/cfgsync.yaml b/testing-framework/assets/stack/cfgsync.yaml index a975c1b..513b621 100644 --- a/testing-framework/assets/stack/cfgsync.yaml +++ b/testing-framework/assets/stack/cfgsync.yaml @@ -14,7 +14,7 @@ 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" +global_params_path: "/kzgrs_test_params/kzgrs_test_params" min_dispersal_peers: 1 min_replication_peers: 1 monitor_failure_time_window: "5.0" diff --git a/testing-framework/assets/stack/scripts/run_nomos_executor.sh b/testing-framework/assets/stack/scripts/run_nomos_executor.sh index 4b510a1..46f98d9 100755 --- a/testing-framework/assets/stack/scripts/run_nomos_executor.sh +++ b/testing-framework/assets/stack/scripts/run_nomos_executor.sh @@ -7,7 +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:-/kzgrs_test_params/pol/proving_key.zkey}" \ + NOMOS_KZGRS_PARAMS_PATH="${NOMOS_KZGRS_PARAMS_PATH:-/kzgrs_test_params/kzgrs_test_params}" \ NOMOS_TIME_BACKEND="${NOMOS_TIME_BACKEND:-monotonic}" \ LOG_LEVEL="INFO" \ POL_PROOF_DEV_MODE="${POL_PROOF_DEV_MODE:-true}" diff --git a/testing-framework/assets/stack/scripts/run_nomos_node.sh b/testing-framework/assets/stack/scripts/run_nomos_node.sh index 36ccb22..2d95189 100755 --- a/testing-framework/assets/stack/scripts/run_nomos_node.sh +++ b/testing-framework/assets/stack/scripts/run_nomos_node.sh @@ -7,7 +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:-/kzgrs_test_params/pol/proving_key.zkey}" \ + NOMOS_KZGRS_PARAMS_PATH="${NOMOS_KZGRS_PARAMS_PATH:-/kzgrs_test_params/kzgrs_test_params}" \ NOMOS_TIME_BACKEND="${NOMOS_TIME_BACKEND:-monotonic}" \ LOG_LEVEL="INFO" \ POL_PROOF_DEV_MODE="${POL_PROOF_DEV_MODE:-true}" diff --git a/testing-framework/core/src/scenario/cfgsync.rs b/testing-framework/core/src/scenario/cfgsync.rs index 9fa1bb5..702c075 100644 --- a/testing-framework/core/src/scenario/cfgsync.rs +++ b/testing-framework/core/src/scenario/cfgsync.rs @@ -92,7 +92,7 @@ pub fn apply_topology_overrides( cfg.global_params_path = if use_kzg_mount { // Compose mounts the bundle at /kzgrs_test_params; the proving key lives under // pol/. - "/kzgrs_test_params/pol/proving_key.zkey".into() + "/kzgrs_test_params/kzgrs_test_params".into() } else { da.global_params_path.clone() }; diff --git a/testing-framework/runners/compose/src/compose.rs b/testing-framework/runners/compose/src/compose.rs index 99f4d1b..9113132 100644 --- a/testing-framework/runners/compose/src/compose.rs +++ b/testing-framework/runners/compose/src/compose.rs @@ -527,7 +527,7 @@ fn base_environment(cfgsync_port: u16) -> Vec { let nomos_log_level = std::env::var("NOMOS_LOG_LEVEL").unwrap_or_else(|_| "info".to_string()); let time_backend = std::env::var("NOMOS_TIME_BACKEND").unwrap_or_else(|_| "monotonic".into()); let kzg_path = std::env::var("NOMOS_KZGRS_PARAMS_PATH") - .unwrap_or_else(|_| String::from("/kzgrs_test_params/pol/proving_key.zkey")); + .unwrap_or_else(|_| String::from("/kzgrs_test_params/kzgrs_test_params")); vec![ EnvEntry::new("POL_PROOF_DEV_MODE", pol_mode), EnvEntry::new("RUST_LOG", rust_log),