Skip to content

starknet_transaction_prover: add deployment health docs and smoke script#14052

Open
avi-starkware wants to merge 1 commit into
avi/privacy/exhaustive-error-spec-test-v2from
avi/privacy/deployment-docs-and-smoke-v2
Open

starknet_transaction_prover: add deployment health docs and smoke script#14052
avi-starkware wants to merge 1 commit into
avi/privacy/exhaustive-error-spec-test-v2from
avi/privacy/deployment-docs-and-smoke-v2

Conversation

@avi-starkware
Copy link
Copy Markdown
Collaborator

Adds three operational artifacts:

  • MANUAL_TESTING_GUIDE.md — comprehensive manual testing reference
    (endpoints, negative flows, CORS matrix, compression, concurrency,
    load) for deep deployment validation.

  • DEPLOYMENT_SMOKE_TESTING_GUIDE.md — per-deploy 5-10 minute checklist
    covering reachability, core JSON-RPC methods, one real proving flow,
    invalid-request handling, and concurrency protection.

  • deployment_smoke.sh — automated smoke script that mirrors the smoke
    guide's checks, prints a PASS/FAIL summary, and supports
    KEEP_ARTIFACTS / TX_HASH / LOOKBACK_BLOCKS overrides for debugging.

@reviewable-StarkWare
Copy link
Copy Markdown

This change is Reviewable

Copy link
Copy Markdown
Collaborator Author

avi-starkware commented May 17, 2026

@cursor
Copy link
Copy Markdown

cursor Bot commented May 17, 2026

PR Summary

Low Risk
Documentation and a bash smoke script only; no runtime or proving logic changes.

Overview
Adds operational deployment validation for starknet_transaction_prover: a short post-deploy smoke checklist, a full manual deep-test reference, and an automated smoke runner.

DEPLOYMENT_SMOKE_TESTING_GUIDE.md defines a 5–10 minute per-deploy gate (reachability, starknet_specVersion, one on-chain INVOKE v3 prove, malformed params, gzip compression, optional TLS/OHTTP, body-size limit, concurrency -32005 + recovery) and points to the manual guide for heavier work.

MANUAL_TESTING_GUIDE.md documents end-to-end manual coverage: happy/negative RPC flows, CORS matrix, compression, concurrency/load (vegeta/hey), TLS, OHTTP, body limits, env-var config, observability, checklist, and a results template.

deployment_smoke.sh implements the smoke guide: requires PROVER_URL / CHAIN_RPC_URL, reads expected spec version from rpc_impl.rs, runs the checks with PASS/FAIL counts, preserves temp artifacts on failure or KEEP_ARTIFACTS=true, and supports TX_HASH, LOOKBACK_BLOCKS, OHTTP_SMOKE, TLS_MIN_DAYS, and MAX_REQUEST_BODY_SIZE.

Reviewed by Cursor Bugbot for commit e2aec91. Bugbot is set up for automated code reviews on this repo. Configure here.

Comment thread crates/starknet_transaction_prover/deployment_smoke.sh
Comment thread crates/starknet_transaction_prover/deployment_smoke.sh Outdated
@avi-starkware avi-starkware force-pushed the avi/privacy/exhaustive-error-spec-test-v2 branch from 5ea83ee to 3457808 Compare May 17, 2026 17:39
@avi-starkware avi-starkware force-pushed the avi/privacy/deployment-docs-and-smoke-v2 branch from 49aebc4 to 0d65f02 Compare May 17, 2026 17:39
Comment thread crates/starknet_transaction_prover/deployment_smoke.sh Outdated
Comment thread crates/starknet_transaction_prover/deployment_smoke.sh Outdated
@avi-starkware avi-starkware force-pushed the avi/privacy/exhaustive-error-spec-test-v2 branch from 3457808 to ac2d30f Compare May 17, 2026 19:07
@avi-starkware avi-starkware force-pushed the avi/privacy/deployment-docs-and-smoke-v2 branch from 0d65f02 to 5f72fc7 Compare May 17, 2026 19:07
Comment thread crates/starknet_transaction_prover/deployment_smoke.sh
@avi-starkware avi-starkware force-pushed the avi/privacy/exhaustive-error-spec-test-v2 branch from ac2d30f to cb3ebef Compare May 20, 2026 08:33
@avi-starkware avi-starkware force-pushed the avi/privacy/deployment-docs-and-smoke-v2 branch from 5f72fc7 to 8161746 Compare May 20, 2026 08:33
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SPEC_VERSION_EXPECTED=$(grep -oP 'const SPEC_VERSION: &str = "\K[^"]+' \
"$SCRIPT_DIR/src/server/rpc_impl.rs" 2>/dev/null \
|| echo "0.10.1")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale fallback spec version causes false smoke failures

Medium Severity

The fallback value in || echo "0.10.1" doesn't match the actual SPEC_VERSION constant which is "0.10.2" in rpc_impl.rs. When the grep fails (e.g., the script is copied to a deploy host without the Rust source tree), SPEC_VERSION_EXPECTED becomes "0.10.1", while the running service returns "0.10.2", causing the check_spec_version step to report a false FAIL.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 8161746. Configure here.

-d "$(cat "$TMP_DIR/prove_request_valid.json")" > "$TMP_DIR/concurrency_$i.json"
) &
pids+=("$!")
done
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concurrency curl calls lack timeout, risking indefinite hang

Low Severity

The three concurrent curl calls in check_concurrency_and_recovery are the only network calls in the script without a --max-time limit. Every other call goes through rpc_call_prover or rpc_call_chain, both of which set --max-time 30. If the prover is slow or unresponsive, the wait loop blocks indefinitely, which is problematic for a script targeting a 5–10 minute runtime and likely used in CI/CD pipelines.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 8161746. Configure here.

Adds three operational artifacts:

* MANUAL_TESTING_GUIDE.md — comprehensive manual testing reference
  (endpoints, negative flows, CORS matrix, compression, concurrency,
  load) for deep deployment validation.

* DEPLOYMENT_SMOKE_TESTING_GUIDE.md — per-deploy 5-10 minute checklist
  covering reachability, core JSON-RPC methods, one real proving flow,
  invalid-request handling, and concurrency protection.

* deployment_smoke.sh — automated smoke script that mirrors the smoke
  guide's checks, prints a PASS/FAIL summary, and supports
  KEEP_ARTIFACTS / TX_HASH / LOOKBACK_BLOCKS overrides for debugging.
@avi-starkware avi-starkware force-pushed the avi/privacy/exhaustive-error-spec-test-v2 branch from cb3ebef to 93accf4 Compare May 31, 2026 10:39
@avi-starkware avi-starkware force-pushed the avi/privacy/deployment-docs-and-smoke-v2 branch from 8161746 to e2aec91 Compare May 31, 2026 10:39
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

There are 3 total unresolved issues (including 2 from previous reviews).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit e2aec91. Configure here.

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SPEC_VERSION_EXPECTED=$(grep -oP 'const SPEC_VERSION: &str = "\K[^"]+' \
"$SCRIPT_DIR/src/server/rpc_impl.rs" 2>/dev/null \
|| echo "0.10.1")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale fallback spec version causes false failures

Medium Severity

The fallback value "0.10.1" on the grep failure path is stale — the actual SPEC_VERSION in rpc_impl.rs is "0.10.2". When grep -oP fails (e.g. on macOS where -P is unsupported, or when the script is run outside the repo), every spec-version check will incorrectly report FAIL because the expected value doesn't match the deployed service.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit e2aec91. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants