diff --git a/.github/workflows/extension-tests.cuda.yml b/.github/workflows/extension-tests.cuda.yml index a2f0100709..bfabd77b64 100644 --- a/.github/workflows/extension-tests.cuda.yml +++ b/.github/workflows/extension-tests.cuda.yml @@ -18,7 +18,7 @@ on: machine_type: description: "Runner machine type (e.g. test-gpu-nvidia/cpu=8+32)" required: false - default: test-gpu-nvidia/family=g6+g5+g6e + default: test-gpu-nvidia/family=g6+g6e concurrency: group: ${{ github.workflow_ref }}-extension-tests-cuda-${{ github.event.pull_request.number || github.sha }} diff --git a/.github/workflows/sdk.yml b/.github/workflows/sdk.yml index 597f5ef0a5..de4772c4cb 100644 --- a/.github/workflows/sdk.yml +++ b/.github/workflows/sdk.yml @@ -26,7 +26,7 @@ jobs: tests: strategy: matrix: - ignored: [true, false] + mode: ["default", "ignored", "aot"] runs-on: - runs-on=${{ github.run_id }}-sdk-${{ github.run_attempt }}-${{ strategy.job-index }}/family=m7a.24xlarge/image=ubuntu24-full-x64/disk=large/extras=s3-cache @@ -58,7 +58,7 @@ jobs: bash ../../extensions/native/recursion/trusted_setup_s3.sh - name: Run openvm-sdk contracts/ tests - if: ${{ matrix.ignored == false }} + if: ${{ matrix.mode == 'default' }} working-directory: crates/sdk/contracts run: | forge fmt --check @@ -66,7 +66,7 @@ jobs: forge test - name: Check IOpenVmHalo2Verifier.sol abi correctness - if: ${{ matrix.ignored == false }} + if: ${{ matrix.mode == 'default' }} working-directory: crates/sdk/contracts run: | forge build @@ -75,16 +75,23 @@ jobs: diff -u expected_abi_sorted.json compiled_abi.json - name: Run openvm-sdk crate tests - if: ${{ matrix.ignored == false }} + if: ${{ matrix.mode == 'default' }} working-directory: crates/sdk run: | export RUST_BACKTRACE=1 export RUST_MIN_STACK=8388608 CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS=true cargo nextest run --release --features parallel,evm-verify + + - name: Run openvm-sdk crate tests (AOT) + if: ${{ matrix.mode == 'aot' }} + working-directory: crates/sdk + run: | + export RUST_BACKTRACE=1 + export RUST_MIN_STACK=8388608 CARGO_PROFILE_RELEASE_DEBUG_ASSERTIONS=true cargo nextest run --release --features parallel,evm-verify,aot - name: Run ignored tests - if: ${{ matrix.ignored == true }} + if: ${{ matrix.mode == 'ignored' }} working-directory: crates/sdk # if: ${{ github.event_name == 'push' }} run: | diff --git a/Cargo.lock b/Cargo.lock index e67707a8da..4d23783382 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6328,7 +6328,7 @@ dependencies = [ [[package]] name = "openvm-cuda-backend" version = "1.2.2" -source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#40e0be820e8b889e00b67f7a679f1ec3480b7c84" +source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#222e5df31a0cc5cf5e95082da4fd463c87d2c048" dependencies = [ "bincode 2.0.1", "bincode_derive", @@ -6360,7 +6360,7 @@ dependencies = [ [[package]] name = "openvm-cuda-builder" version = "1.2.2" -source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#40e0be820e8b889e00b67f7a679f1ec3480b7c84" +source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#222e5df31a0cc5cf5e95082da4fd463c87d2c048" dependencies = [ "cc", "glob", @@ -6369,7 +6369,7 @@ dependencies = [ [[package]] name = "openvm-cuda-common" version = "1.2.2" -source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#40e0be820e8b889e00b67f7a679f1ec3480b7c84" +source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#222e5df31a0cc5cf5e95082da4fd463c87d2c048" dependencies = [ "bytesize", "ctor", @@ -7121,7 +7121,7 @@ dependencies = [ [[package]] name = "openvm-stark-backend" version = "1.2.2" -source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#40e0be820e8b889e00b67f7a679f1ec3480b7c84" +source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#222e5df31a0cc5cf5e95082da4fd463c87d2c048" dependencies = [ "bitcode", "cfg-if", @@ -7151,7 +7151,7 @@ dependencies = [ [[package]] name = "openvm-stark-sdk" version = "1.2.2" -source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#40e0be820e8b889e00b67f7a679f1ec3480b7c84" +source = "git+https://github.com/openvm-org/stark-backend.git?branch=develop-v1.3.0#222e5df31a0cc5cf5e95082da4fd463c87d2c048" dependencies = [ "dashmap", "derivative", @@ -10029,7 +10029,7 @@ dependencies = [ "derive_more 2.0.1", "dunce", "inturn", - "itertools 0.10.5", + "itertools 0.11.0", "itoa", "normalize-path", "once_map", @@ -10040,7 +10040,7 @@ dependencies = [ "solar-config", "solar-data-structures", "solar-macros", - "thiserror 1.0.69", + "thiserror 2.0.15", "tracing", "unicode-width 0.2.2", ] @@ -10065,7 +10065,7 @@ dependencies = [ "alloy-primitives", "bitflags", "bumpalo", - "itertools 0.10.5", + "itertools 0.11.0", "memchr", "num-bigint 0.4.6", "num-rational", @@ -10398,7 +10398,7 @@ dependencies = [ "serde_json", "sha2 0.10.9", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.15", "url", "zip", ] diff --git a/benchmarks/guest/kitchen-sink/openvm.toml b/benchmarks/guest/kitchen-sink/openvm.toml index 2d1b307eef..7f70a95cea 100644 --- a/benchmarks/guest/kitchen-sink/openvm.toml +++ b/benchmarks/guest/kitchen-sink/openvm.toml @@ -7,7 +7,6 @@ [app_vm_config.modular] supported_moduli = [ - "1000000000000000003", # secp256k1 "115792089237316195423570985008687907853269984665640564039457584007908834671663", # coordinate "115792089237316195423570985008687907852837564279074904382605163141518161494337", # scalar @@ -22,7 +21,6 @@ supported_moduli = [ "52435875175126190479447740508185965837690552500527637822603658699938581184513", # scalar # 2^61 - 1 "2305843009213693951", - "7", ] [app_vm_config.fp2] diff --git a/benchmarks/guest/kitchen-sink/openvm_init.rs b/benchmarks/guest/kitchen-sink/openvm_init.rs index fdec4a6bdb..27875df628 100644 --- a/benchmarks/guest/kitchen-sink/openvm_init.rs +++ b/benchmarks/guest/kitchen-sink/openvm_init.rs @@ -1,4 +1,4 @@ // This file is automatically generated by cargo openvm. Do not rename or edit. -openvm_algebra_guest::moduli_macros::moduli_init! { "1000000000000000003", "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "115792089210356248762697446949407573530086143415290314195533631308867097853951", "115792089210356248762697446949407573529996955224135760342422259061068512044369", "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617", "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", "52435875175126190479447740508185965837690552500527637822603658699938581184513", "2305843009213693951", "7" } -openvm_algebra_guest::complex_macros::complex_init! { "Bn254Fp2" { mod_idx = 5 }, "Bls12_381Fp2" { mod_idx = 7 } } +openvm_algebra_guest::moduli_macros::moduli_init! { "115792089237316195423570985008687907853269984665640564039457584007908834671663", "115792089237316195423570985008687907852837564279074904382605163141518161494337", "115792089210356248762697446949407573530086143415290314195533631308867097853951", "115792089210356248762697446949407573529996955224135760342422259061068512044369", "21888242871839275222246405745257275088696311157297823662689037894645226208583", "21888242871839275222246405745257275088548364400416034343698204186575808495617", "4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787", "52435875175126190479447740508185965837690552500527637822603658699938581184513", "2305843009213693951" } +openvm_algebra_guest::complex_macros::complex_init! { "Bn254Fp2" { mod_idx = 4 }, "Bls12_381Fp2" { mod_idx = 6 } } openvm_ecc_guest::sw_macros::sw_init! { "Secp256k1Point", "P256Point", "Bn254G1Affine", "Bls12_381G1Affine" } diff --git a/benchmarks/guest/kitchen-sink/src/main.rs b/benchmarks/guest/kitchen-sink/src/main.rs index 3367181c6a..5c0b7b1c3e 100644 --- a/benchmarks/guest/kitchen-sink/src/main.rs +++ b/benchmarks/guest/kitchen-sink/src/main.rs @@ -23,8 +23,6 @@ use { // Note: these will all currently be represented as bytes32 even though they could be smaller openvm_algebra_guest::moduli_macros::moduli_declare! { - Seven { modulus = "7" }, - Mod1e18 { modulus = "1000000000000000003" }, Mersenne61 { modulus = "0x1fffffffffffffff" }, } @@ -67,7 +65,6 @@ fn materialize_ecc_chip() { pub fn main() { // Since we don't explicitly call setup functions anymore, we must ensure every declared modulus // and curve chip is materialized. - materialize_modular_chip::(); materialize_modular_chip::(); materialize_modular_chip::(); materialize_modular_chip::(); @@ -77,7 +74,6 @@ pub fn main() { materialize_modular_chip::(); materialize_modular_chip::(); materialize_modular_chip::(); - materialize_modular_chip::(); materialize_complex_chip!(Bn254Fp2, Bn254Fp); materialize_complex_chip!(Bls12_381Fp2, Bls12_381Fp); @@ -87,14 +83,6 @@ pub fn main() { materialize_ecc_chip::(); materialize_ecc_chip::(); - let [one, six] = [1, 6].map(Seven::from_u32); - assert_eq!(one + six, Seven::ZERO); - - let y = Mod1e18::from_u32(100); - let y = (&y * &y) * &y; - let y = y.clone() * y.clone() * y.clone(); - assert_eq!(y + Mod1e18::from_u32(3), Mod1e18::ZERO); - let mut bytes = [0u8; 32]; bytes[7] = 1 << 5; // 2^61 = modulus + 1 let mut res = Mersenne61::from_le_bytes_unchecked(&bytes); // No need to start from reduced representation diff --git a/benchmarks/prove/src/bin/verify_fibair.rs b/benchmarks/prove/src/bin/verify_fibair.rs index f73926e17e..a0539ce696 100644 --- a/benchmarks/prove/src/bin/verify_fibair.rs +++ b/benchmarks/prove/src/bin/verify_fibair.rs @@ -37,7 +37,7 @@ fn main() -> Result<()> { let n = 1 << 15; // STARK to calculate (2 ** 15)th Fibonacci number. let fib_chip = FibonacciChip::new(0, 1, n); - let engine = Poseidon2Engine::new(FriParameters::standard_with_100_bits_conjectured_security( + let engine = Poseidon2Engine::new(FriParameters::standard_with_100_bits_security( app_log_blowup, )); @@ -52,8 +52,7 @@ fn main() -> Result<()> { let fib_ctx = fib_ctx.into_iter().map(cpu_proving_ctx_to_gpu).collect(); let vdata = engine.run_test(fib_air, fib_ctx).unwrap(); // Unlike other apps, this "app" does not have continuations enabled. - let app_fri_params = - FriParameters::standard_with_100_bits_conjectured_security(leaf_log_blowup); + let app_fri_params = FriParameters::standard_with_100_bits_security(leaf_log_blowup); let mut app_vm_config = NativeConfig::aggregation( DEFAULT_MAX_NUM_PUBLIC_VALUES, app_fri_params.max_constraint_degree().min(7), diff --git a/benchmarks/prove/src/util.rs b/benchmarks/prove/src/util.rs index ac231ba7c9..256e985c32 100644 --- a/benchmarks/prove/src/util.rs +++ b/benchmarks/prove/src/util.rs @@ -99,15 +99,9 @@ impl BenchmarkCli { app_vm_config.as_mut().segmentation_limits.max_cells = max_cells; } AppConfig { - app_fri_params: FriParameters::standard_with_100_bits_conjectured_security( - app_log_blowup, - ) - .into(), + app_fri_params: FriParameters::standard_with_100_bits_security(app_log_blowup).into(), app_vm_config, - leaf_fri_params: FriParameters::standard_with_100_bits_conjectured_security( - leaf_log_blowup, - ) - .into(), + leaf_fri_params: FriParameters::standard_with_100_bits_security(leaf_log_blowup).into(), compiler_options: CompilerOptions { enable_cycle_tracker: self.profiling, ..Default::default() @@ -124,7 +118,7 @@ impl BenchmarkCli { let [leaf_fri_params, internal_fri_params, root_fri_params] = [leaf_log_blowup, internal_log_blowup, root_log_blowup] - .map(FriParameters::standard_with_100_bits_conjectured_security); + .map(FriParameters::standard_with_100_bits_security); AggregationConfig { leaf_fri_params, diff --git a/ci/benchmark-config.json b/ci/benchmark-config.json index 666ca66fae..c2dde9b587 100644 --- a/ci/benchmark-config.json +++ b/ci/benchmark-config.json @@ -77,7 +77,7 @@ "e2e_bench": true, "run_params": [ { - "instance_type": "g6.2xlarge", + "instance_type": "g6e.4xlarge", "memory_allocator": "jemalloc", "app_log_blowup": 1, "leaf_log_blowup": 1, @@ -105,4 +105,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/crates/circuits/poseidon2-air/src/tests.rs b/crates/circuits/poseidon2-air/src/tests.rs index 844aea20e4..23b370f4e6 100644 --- a/crates/circuits/poseidon2-air/src/tests.rs +++ b/crates/circuits/poseidon2-air/src/tests.rs @@ -7,7 +7,7 @@ use openvm_stark_backend::{ use openvm_stark_sdk::{ config::{ baby_bear_poseidon2::BabyBearPoseidon2Engine, - fri_params::standard_fri_params_with_100_bits_conjectured_security, + fri_params::standard_fri_params_with_100_bits_security, }, engine::StarkFriEngine, p3_baby_bear::BabyBear, @@ -41,7 +41,7 @@ fn run_poseidon2_subchip_test(subchip: Arc>, rng: .collect(); let mut poseidon2_trace = subchip.generate_trace(states.clone()); - let fri_params = standard_fri_params_with_100_bits_conjectured_security(3); // max constraint degree = 7 requires log blowup = 3 + let fri_params = standard_fri_params_with_100_bits_security(3); // max constraint degree = 7 requires log blowup = 3 let engine = BabyBearPoseidon2Engine::new(fri_params); // positive test diff --git a/crates/cli/src/default.rs b/crates/cli/src/default.rs index 390dfb9e82..8d17ac323e 100644 --- a/crates/cli/src/default.rs +++ b/crates/cli/src/default.rs @@ -34,20 +34,16 @@ pub fn default_evm_halo2_verifier_path() -> String { pub fn default_app_config() -> AppConfig { AppConfig { - app_fri_params: FriParameters::standard_with_100_bits_conjectured_security( - DEFAULT_APP_LOG_BLOWUP, - ) - .into(), + app_fri_params: FriParameters::standard_with_100_bits_security(DEFAULT_APP_LOG_BLOWUP) + .into(), app_vm_config: SdkVmConfig::builder() .system(Default::default()) .rv32i(Default::default()) .rv32m(Default::default()) .io(Default::default()) .build(), - leaf_fri_params: FriParameters::standard_with_100_bits_conjectured_security( - DEFAULT_LEAF_LOG_BLOWUP, - ) - .into(), + leaf_fri_params: FriParameters::standard_with_100_bits_security(DEFAULT_LEAF_LOG_BLOWUP) + .into(), compiler_options: Default::default(), } } diff --git a/crates/sdk/src/config/mod.rs b/crates/sdk/src/config/mod.rs index 7955186152..98e13fd358 100644 --- a/crates/sdk/src/config/mod.rs +++ b/crates/sdk/src/config/mod.rs @@ -127,13 +127,13 @@ impl Default for AggregationConfig { fn default() -> Self { Self { max_num_user_public_values: DEFAULT_MAX_NUM_PUBLIC_VALUES, - leaf_fri_params: FriParameters::standard_with_100_bits_conjectured_security( + leaf_fri_params: FriParameters::standard_with_100_bits_security( DEFAULT_LEAF_LOG_BLOWUP, ), - internal_fri_params: FriParameters::standard_with_100_bits_conjectured_security( + internal_fri_params: FriParameters::standard_with_100_bits_security( DEFAULT_INTERNAL_LOG_BLOWUP, ), - root_fri_params: FriParameters::standard_with_100_bits_conjectured_security( + root_fri_params: FriParameters::standard_with_100_bits_security( DEFAULT_ROOT_LOG_BLOWUP, ), profiling: false, @@ -161,9 +161,7 @@ pub struct AppFriParams { impl Default for AppFriParams { fn default() -> Self { Self { - fri_params: FriParameters::standard_with_100_bits_conjectured_security( - DEFAULT_APP_LOG_BLOWUP, - ), + fri_params: FriParameters::standard_with_100_bits_security(DEFAULT_APP_LOG_BLOWUP), } } } @@ -182,9 +180,7 @@ pub struct LeafFriParams { impl Default for LeafFriParams { fn default() -> Self { Self { - fri_params: FriParameters::standard_with_100_bits_conjectured_security( - DEFAULT_LEAF_LOG_BLOWUP, - ), + fri_params: FriParameters::standard_with_100_bits_security(DEFAULT_LEAF_LOG_BLOWUP), } } } diff --git a/crates/sdk/src/keygen/dummy.rs b/crates/sdk/src/keygen/dummy.rs index 677a4b6ec0..6326d80b6d 100644 --- a/crates/sdk/src/keygen/dummy.rs +++ b/crates/sdk/src/keygen/dummy.rs @@ -33,7 +33,6 @@ use openvm_stark_sdk::{ config::{ baby_bear_poseidon2::BabyBearPoseidon2Engine, baby_bear_poseidon2_root::{BabyBearPoseidon2RootConfig, BabyBearPoseidon2RootEngine}, - fri_params::standard_fri_params_with_100_bits_conjectured_security, FriParameters, }, engine::StarkFriEngine, @@ -41,6 +40,7 @@ use openvm_stark_sdk::{ }; use crate::{ + config::DEFAULT_APP_LOG_BLOWUP, prover::vm::{new_local_prover, types::VmProvingKey}, F, SC, }; @@ -120,16 +120,15 @@ pub(super) fn dummy_internal_proof_riscv_app_vm( internal_exe: Arc>, num_public_values: usize, ) -> Result, VirtualMachineError> { - let fri_params = standard_fri_params_with_100_bits_conjectured_security(1); - let leaf_proof = dummy_leaf_proof_riscv_app_vm(leaf_vm_pk, num_public_values, fri_params)?; + let leaf_proof = dummy_leaf_proof_riscv_app_vm(leaf_vm_pk, num_public_values)?; dummy_internal_proof(internal_vm_pk, internal_exe, leaf_proof) } pub(super) fn dummy_leaf_proof_riscv_app_vm( leaf_vm_pk: Arc>, num_public_values: usize, - app_fri_params: FriParameters, ) -> Result, VirtualMachineError> { + let app_fri_params = FriParameters::standard_with_100_bits_security(DEFAULT_APP_LOG_BLOWUP); let app_vm_pk = Arc::new(dummy_riscv_app_vm_pk(num_public_values, app_fri_params)?); let app_proof = dummy_app_proof(Rv32ImCpuBuilder, app_vm_pk.clone())?; dummy_leaf_proof(leaf_vm_pk, app_vm_pk, &app_proof) @@ -190,7 +189,8 @@ fn dummy_app_proof( where VB: VmBuilder>, VC: VmExecutionConfig, - >::Executor: Executor + MeteredExecutor + PreflightExecutor, + >::Executor: + Executor + MeteredExecutor + PreflightExecutor>, { let dummy_exe = Arc::new(VmExe::new(dummy_app_program())); let mut app_prover = diff --git a/crates/sdk/src/keygen/mod.rs b/crates/sdk/src/keygen/mod.rs index f3f0ed4cc9..89be51c2d2 100644 --- a/crates/sdk/src/keygen/mod.rs +++ b/crates/sdk/src/keygen/mod.rs @@ -1,7 +1,6 @@ use std::sync::Arc; use derivative::Derivative; -// use dummy::{compute_root_proof_heights, dummy_internal_proof_riscv_app_vm}; use openvm_circuit::{ arch::{AirInventoryError, SystemConfig, VirtualMachine, VirtualMachineError, VmCircuitConfig}, system::memory::dimensions::MemoryDimensions, diff --git a/crates/sdk/src/prover/agg.rs b/crates/sdk/src/prover/agg.rs index f6ed745d82..12d5633c55 100644 --- a/crates/sdk/src/prover/agg.rs +++ b/crates/sdk/src/prover/agg.rs @@ -232,7 +232,20 @@ where break; } if wrapper_layers >= max_internal_wrapper_layers { - panic!("The heights of the root verifier still exceed the required heights after {max_internal_wrapper_layers} wrapper layers"); + let fixed = root_prover.fixed_air_heights(); + let exceeding: Vec<_> = actual_air_heights + .iter() + .zip(fixed.iter()) + .enumerate() + .filter(|(_, (actual, fixed))| actual > fixed) + .map(|(i, (actual, fixed))| format!("AIR {i}: actual={actual}, fixed={fixed}")) + .collect(); + panic!( + "The heights of the root verifier still exceed the required heights after {max_internal_wrapper_layers} wrapper layers.\n\ + Exceeding AIRs: {exceeding:?}\n\ + All actual heights: {actual_air_heights:?}\n\ + All fixed heights: {fixed:?}" + ); } wrapper_layers += 1; let input = InternalVmVerifierInput { diff --git a/crates/sdk/tests/integration_test.rs b/crates/sdk/tests/integration_test.rs index e826c8251d..e9a3a65afc 100644 --- a/crates/sdk/tests/integration_test.rs +++ b/crates/sdk/tests/integration_test.rs @@ -137,10 +137,11 @@ fn app_vm_config_for_test() -> SdkVmConfig { } fn small_test_app_config(app_log_blowup: usize) -> AppConfig { + let leaf_fri_params = FriParameters::new_for_testing(LEAF_LOG_BLOWUP); AppConfig { app_fri_params: FriParameters::new_for_testing(app_log_blowup).into(), app_vm_config: app_vm_config_for_test(), - leaf_fri_params: FriParameters::new_for_testing(LEAF_LOG_BLOWUP).into(), + leaf_fri_params: leaf_fri_params.into(), compiler_options: CompilerOptions { enable_cycle_tracker: true, ..Default::default() @@ -373,7 +374,7 @@ fn test_static_verifier_custom_pv_handler() -> eyre::Result<()> { let app_log_blowup = 1; let app_config = small_test_app_config(app_log_blowup); println!("app_config: {:?}", app_config.app_vm_config); - let sdk = Sdk::new(app_config)?; + let sdk = Sdk::new(app_config)?.with_agg_config(agg_config_for_test()); let app_exe = app_exe_for_test(); // Generate PK using custom PV handler @@ -421,8 +422,7 @@ fn test_static_verifier_custom_pv_handler() -> eyre::Result<()> { fn test_e2e_proof_generation_and_verification_with_pvs() -> eyre::Result<()> { let app_log_blowup = 1; let app_config = small_test_app_config(app_log_blowup); - let mut sdk = Sdk::new(app_config)?; - sdk.agg_config_mut().leaf_fri_params = FriParameters::new_for_testing(LEAF_LOG_BLOWUP); + let sdk = Sdk::new(app_config)?.with_agg_config(agg_config_for_test()); let evm_verifier = sdk.generate_halo2_verifier_solidity()?; let evm_proof = sdk.prove_evm(app_exe_for_test(), StdIn::default())?; diff --git a/extensions/native/circuit/src/extension/mod.rs b/extensions/native/circuit/src/extension/mod.rs index abe3a0c952..714afe3867 100644 --- a/extensions/native/circuit/src/extension/mod.rs +++ b/extensions/native/circuit/src/extension/mod.rs @@ -576,7 +576,23 @@ where // Pre-computed maximum trace heights for NativeConfig. Found by doubling // the actual trace heights of kitchen-sink leaf verification (except for // VariableRangeChecker, which has a fixed height). +#[rustfmt::skip] pub const NATIVE_MAX_TRACE_HEIGHTS: &[u32] = &[ - 4194304, 4, 128, 2097152, 8388608, 4194304, 262144, 2097152, 16777216, 2097152, 8388608, - 262144, 2097152, 1048576, 4194304, 65536, 262144, + 4194304, // 0: Program + 4, // 1: Connector + 64, // 2: PublicValues + 2097152, // 3: Boundary + 8388608, // 4: AccessAdapter (1-cell) + 4194304, // 5: AccessAdapter (2-cell) + 262144, // 6: AccessAdapter (4-cell) + 4194304, // 7: VerifyBatch (NativePoseidon2Air) + 33554432, // 8: FriReducedOpeningAir + 2097152, // 9: FieldExtensionAir + 16777216, // 10: FieldArithmeticAir + 262144, // 11: JalRangeCheckAir + 4194304, // 12: NativeBranchEqAir + 1048576, // 13: NativeLoadStoreAir<4> + 4194304, // 14: NativeLoadStoreAir<1> + 131072, // 15: PhantomAir + 262144, // 16: VariableRangeCheckerAir ]; diff --git a/extensions/native/circuit/tests/integration_test.rs b/extensions/native/circuit/tests/integration_test.rs index 314d424514..1afa38f263 100644 --- a/extensions/native/circuit/tests/integration_test.rs +++ b/extensions/native/circuit/tests/integration_test.rs @@ -52,8 +52,7 @@ use openvm_stark_backend::{ use openvm_stark_sdk::{ config::{ baby_bear_poseidon2::BabyBearPoseidon2Config, - fri_params::standard_fri_params_with_100_bits_conjectured_security, setup_tracing, - FriParameters, + fri_params::standard_fri_params_with_100_bits_security, setup_tracing, FriParameters, }, engine::StarkFriEngine, p3_baby_bear::BabyBear, @@ -182,7 +181,7 @@ fn test_vm_1_optional_air() -> eyre::Result<()> { // Aggregation VmConfig has Core/Poseidon2/FieldArithmetic/FieldExtension chips. The program // only uses Core and FieldArithmetic. All other chips should not have AIR proof inputs. let config = NativeConfig::aggregation(4, 3); - let engine = TestEngine::new(standard_fri_params_with_100_bits_conjectured_security(3)); + let engine = TestEngine::new(standard_fri_params_with_100_bits_security(3)); let (vm, pk) = VirtualMachine::new_with_keygen(engine, NativeBuilder::default(), config)?; let num_airs = pk.per_air.len(); @@ -217,7 +216,7 @@ fn test_vm_public_values() -> eyre::Result<()> { let num_public_values = 100; let config = test_system_config_without_continuations().with_public_values(num_public_values); assert!(!config.continuation_enabled); - let engine = TestEngine::new(standard_fri_params_with_100_bits_conjectured_security(3)); + let engine = TestEngine::new(standard_fri_params_with_100_bits_security(3)); let (vm, pk) = VirtualMachine::new_with_keygen(engine, SystemBuilder, config)?; let instructions = vec![