Skip to content

save generated evm keys immediately after generating #2356

@benluelo

Description

@benluelo

here:

println!("Generating root verifier ASM...");
let root_verifier_asm = sdk.generate_root_verifier_asm();
println!("Generating verifier contract...");
let verifier = sdk.generate_halo2_verifier_solidity()?;
println!("Writing stark proving key to file...");
write_object_to_file(&default_agg_stark_pk_path, sdk.agg_pk())?;
println!("Writing stark verifying key to file...");
write_object_to_file(&default_agg_stark_vk_path, agg_vk)?;
println!("Writing halo2 proving key to file...");
write_object_to_file(&default_agg_halo2_pk_path, sdk.halo2_pk())?;
println!("Writing root verifier ASM to file...");
write(&default_asm_path, root_verifier_asm)?;
println!("Writing verifier contract to file...");
write_evm_halo2_verifier_to_folder(verifier, &default_evm_halo2_verifier_path)?;

the keys are generated if they do not yet already exist. however, they are not saved until AFTER attempting to generate the solidity contracts (which may fail). if that generation does fail, then they key must be regenerated completely on the next run. the generated keys should be saved immediately after they are generated, in order to prevent this.

$ cargo openvm setup --evm
Downloading kzg_bn254_10.srs
Downloading kzg_bn254_11.srs
Downloading kzg_bn254_12.srs
Downloading kzg_bn254_13.srs
Downloading kzg_bn254_14.srs
Downloading kzg_bn254_15.srs
Downloading kzg_bn254_16.srs
Downloading kzg_bn254_17.srs
Downloading kzg_bn254_18.srs
Downloading kzg_bn254_19.srs
Downloading kzg_bn254_20.srs
Downloading kzg_bn254_21.srs
Downloading kzg_bn254_22.srs
Downloading kzg_bn254_23.srs
Generating proving key...
Generating root verifier ASM...
Generating verifier contract...

thread 'main' panicked at /build/openvm/crates/sdk/src/lib.rs:989:14:
No 'contracts' field found
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

$ cargo openvm setup --evm
Generating proving key...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions