From e27dcf498e9102084132fc68fb066af8f70e04d7 Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Wed, 11 Oct 2023 14:36:10 -0600 Subject: [PATCH 1/3] Use the bundled prover rather than local params files for testing by default. `fetch_params.sh` is now deprecated and the bundled proving parameters from `wagyu-zcash-parameters` are used everywhere, so the tests should follow suit. Fixes #1016 --- zcash_client_sqlite/Cargo.toml | 2 +- zcash_client_sqlite/src/wallet/sapling.rs | 7 +------ zcash_extensions/src/transparent/demo.rs | 6 +----- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/zcash_client_sqlite/Cargo.toml b/zcash_client_sqlite/Cargo.toml index b52c47311..9d4ac3a2b 100644 --- a/zcash_client_sqlite/Cargo.toml +++ b/zcash_client_sqlite/Cargo.toml @@ -61,7 +61,7 @@ rand_core.workspace = true regex = "1.4" tempfile = "3.5.0" zcash_note_encryption.workspace = true -zcash_proofs = { workspace = true, features = ["local-prover"] } +zcash_proofs = { workspace = true, features = ["bundled-prover"] } zcash_primitives = { workspace = true, features = ["test-dependencies"] } zcash_client_backend = { workspace = true, features = ["test-dependencies", "unstable-serialization", "unstable-spanning-tree"] } zcash_address = { workspace = true, features = ["test-dependencies"] } diff --git a/zcash_client_sqlite/src/wallet/sapling.rs b/zcash_client_sqlite/src/wallet/sapling.rs index 01f3d39e7..8fe811a95 100644 --- a/zcash_client_sqlite/src/wallet/sapling.rs +++ b/zcash_client_sqlite/src/wallet/sapling.rs @@ -499,12 +499,7 @@ pub(crate) mod tests { }; pub(crate) fn test_prover() -> impl SpendProver + OutputProver { - match LocalTxProver::with_default_location() { - Some(tx_prover) => tx_prover, - None => { - panic!("Cannot locate the Zcash parameters. Please run zcash-fetch-params or fetch-params.sh to download the parameters, and then re-run the tests."); - } - } + LocalTxProver::bundled() } #[test] diff --git a/zcash_extensions/src/transparent/demo.rs b/zcash_extensions/src/transparent/demo.rs index 8ceb816fa..5188e3d7e 100644 --- a/zcash_extensions/src/transparent/demo.rs +++ b/zcash_extensions/src/transparent/demo.rs @@ -796,11 +796,7 @@ mod tests { .activation_height(NetworkUpgrade::ZFuture) .unwrap(); - // Only run the test if we have the prover parameters. - let prover = match LocalTxProver::with_default_location() { - Some(prover) => prover, - None => return, - }; + let prover = LocalTxProver::bundled(); // // Opening transaction From ea7c608f45fb0efd0d1c3cf82ca661af0081bcc7 Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Wed, 11 Oct 2023 14:39:42 -0600 Subject: [PATCH 2/3] Remove parameters download step from github CI Now that the tests use the bundled prover, we no longer need them to download the zcash parameters files. --- .github/workflows/ci.yml | 30 ------------------------------ 1 file changed, 30 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb9cd73f6..174f017ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,21 +12,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Fetch path to Zcash parameters - working-directory: ./zcash_proofs - shell: bash - run: echo "ZCASH_PARAMS=$(cargo run --release --example get-params-path --features directories)" >> $GITHUB_ENV - - name: Cache Zcash parameters - id: cache-params - uses: actions/cache@v3.3.2 - with: - path: ${{ env.ZCASH_PARAMS }} - key: ${{ runner.os }}-params - - name: Fetch Zcash parameters - if: steps.cache-params.outputs.cache-hit != 'true' - working-directory: ./zcash_proofs - run: cargo run --release --example download-params --features download-params - - name: Run tests run: cargo test --all-features --verbose --release --all - name: Run slow tests @@ -121,21 +106,6 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Fetch path to Zcash parameters - working-directory: ./zcash_proofs - shell: bash - run: echo "ZCASH_PARAMS=$(cargo run --release --example get-params-path --features directories)" >> $GITHUB_ENV - - name: Cache Zcash parameters - id: cache-params - uses: actions/cache@v3.3.2 - with: - path: ${{ env.ZCASH_PARAMS }} - key: ${{ runner.os }}-params - - name: Fetch Zcash parameters - if: steps.cache-params.outputs.cache-hit != 'true' - working-directory: ./zcash_proofs - run: cargo run --release --example download-params --features download-params - - name: Generate coverage report run: cargo tarpaulin --engine llvm --all-features --release --timeout 600 --out xml - name: Upload coverage to Codecov From c0a0ef1653e4806ae1e3475e10c1ede0ebaa3992 Mon Sep 17 00:00:00 2001 From: Kris Nuttycombe Date: Fri, 3 Nov 2023 16:15:24 -0600 Subject: [PATCH 3/3] zcash_proofs: Remove obsolete examples. Since we now use the bundled prover everywhere, we no longer need utilities to download Zcash parameters, which was the only purpose that these examples were serving. --- zcash_proofs/Cargo.toml | 12 --------- zcash_proofs/examples/download-params.rs | 4 --- .../download-sprout-and-sapling-params.rs | 26 ------------------- zcash_proofs/examples/get-params-path.rs | 7 ----- 4 files changed, 49 deletions(-) delete mode 100644 zcash_proofs/examples/download-params.rs delete mode 100644 zcash_proofs/examples/download-sprout-and-sapling-params.rs delete mode 100644 zcash_proofs/examples/get-params-path.rs diff --git a/zcash_proofs/Cargo.toml b/zcash_proofs/Cargo.toml index 6136d5493..d7bb3c243 100644 --- a/zcash_proofs/Cargo.toml +++ b/zcash_proofs/Cargo.toml @@ -53,17 +53,5 @@ multicore = ["bellman/multicore", "zcash_primitives/multicore"] [lib] bench = false -[[example]] -name = "get-params-path" -required-features = ["directories"] - -[[example]] -name = "download-params" -required-features = ["download-params"] - -[[example]] -name = "download-sprout-and-sapling-params" -required-features = ["download-params"] - [badges] maintenance = { status = "actively-developed" } diff --git a/zcash_proofs/examples/download-params.rs b/zcash_proofs/examples/download-params.rs deleted file mode 100644 index 6c9d97754..000000000 --- a/zcash_proofs/examples/download-params.rs +++ /dev/null @@ -1,4 +0,0 @@ -fn main() -> Result<(), minreq::Error> { - #[allow(deprecated)] - zcash_proofs::download_parameters() -} diff --git a/zcash_proofs/examples/download-sprout-and-sapling-params.rs b/zcash_proofs/examples/download-sprout-and-sapling-params.rs deleted file mode 100644 index ec4cdb5f1..000000000 --- a/zcash_proofs/examples/download-sprout-and-sapling-params.rs +++ /dev/null @@ -1,26 +0,0 @@ -fn main() -> Result<(), minreq::Error> { - const DOWNLOAD_TIMEOUT_SECONDS: u64 = 3600; - - #[allow(unused_mut, unused_assignments)] - let mut params_folder = - zcash_proofs::default_params_folder().expect("unexpected missing HOME env var"); - - // Always do a download to /tmp, if compiled with `RUSTFLAGS="--cfg always_download"` - #[cfg(always_download)] - { - std::env::set_var("HOME", "/tmp"); - params_folder = - zcash_proofs::default_params_folder().expect("unexpected missing HOME env var"); - - println!("removing temporary parameters folder: {:?}", params_folder); - let _ = std::fs::remove_dir_all(¶ms_folder); - } - - println!("downloading sapling parameters to: {:?}", params_folder); - zcash_proofs::download_sapling_parameters(Some(DOWNLOAD_TIMEOUT_SECONDS))?; - - println!("downloading sprout parameters to: {:?}", params_folder); - zcash_proofs::download_sprout_parameters(Some(DOWNLOAD_TIMEOUT_SECONDS))?; - - Ok(()) -} diff --git a/zcash_proofs/examples/get-params-path.rs b/zcash_proofs/examples/get-params-path.rs deleted file mode 100644 index 224b2f5ea..000000000 --- a/zcash_proofs/examples/get-params-path.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn main() { - if let Some(path) = zcash_proofs::default_params_folder() { - if let Some(path) = path.to_str() { - println!("{}", path); - } - } -}