Skip to content

Aiken branch: not using hardcoded files #32

Description

@NicolasDP

Currently, we use hardcoded files for our example and execution:

  • let verifier_template_file = match S::kzg_type() {
    KzgType::GWC19 => Path::new("plutus-verifier/templates/verification_gwc19_kzg.hbs"),
    KzgType::Halo2MultiOpen => {
    Path::new("plutus-verifier/templates/verification_halo2_kzg.hbs")
    }
    };
    let vk_template_file = Path::new("plutus-verifier/templates/vk_constants.hbs");
    let verifier_generated_file =
    Path::new("plutus-verifier/plutus-halo2/src/Plutus/Crypto/Halo2/Generic/Verifier.hs");
    let vk_generated_file =
    Path::new("plutus-verifier/plutus-halo2/src/Plutus/Crypto/Halo2/Generic/VKConstants.hs");
  • emit_verifier_code_aiken(
    Path::new("aiken-verifier/templates/verification.hbs"),
    Path::new("aiken-verifier/aiken_halo2/lib/proof_verifier.ak"),
    &circuit_representation,
    )
    .map_err(|e| e.to_string())?;
    emit_vk_code_aiken(
    Path::new("aiken-verifier/templates/vk_constants.hbs"),
    Path::new("aiken-verifier/aiken_halo2/lib/verifier_key.ak"),
    &circuit_representation,
    )
    .map_err(|e| e.to_string())?;

This makes it hard to run different examples and to compare results as we need to save files/rename etc. and retry. Allowing the execution of these high-level routines to be configured would help with being able to generate execution routines to guard/test the CI or even for developers or users to define how the execution of their programme should look like.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    Fields

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions