13template <IsUltraOrMegaHonk Flavor>
15 const std::shared_ptr<HonkVK>& honk_vk,
17 : prover_instance(
std::move(prover_instance))
20 , commitment_key(commitment_key)
30template <IsUltraOrMegaHonk Flavor>
32 const std::shared_ptr<HonkVK>& honk_vk,
33 const std::shared_ptr<Transcript>& transcript)
34 : prover_instance(
std::move(prover_instance))
36 , transcript(transcript)
37 , commitment_key(prover_instance->commitment_key)
47template <IsUltraOrMegaHonk Flavor>
49 const std::shared_ptr<HonkVK>& honk_vk,
50 const std::shared_ptr<Transcript>& transcript)
53 , transcript(transcript)
54 , commitment_key(prover_instance->commitment_key)
57template <IsUltraOrMegaHonk Flavor>
62 , commitment_key(prover_instance->commitment_key)
67 auto proof = transcript->export_proof();
72 BB_ASSERT_EQ(prover_instance->ipa_proof.size(),
static_cast<size_t>(IPA_PROOF_LENGTH));
73 proof.insert(proof.end(), prover_instance->ipa_proof.begin(), prover_instance->ipa_proof.end());
82 const size_t virtual_log_n =
85 prover_instance->gate_challenges =
86 transcript->template get_powers_of_challenge<FF>(
"Sumcheck:gate_challenge", virtual_log_n);
93 vinfo(
"created oink proof");
95 generate_gate_challenges();
99 return export_proof();
105#ifdef STARKNET_GARAGA_FLAVORS
#define BB_ASSERT_EQ(actual, expected,...)
static constexpr size_t VIRTUAL_LOG_N
static constexpr bool USE_PADDING
Class for all the oink rounds, which are shared between the folding prover and ultra prover.
void prove()
Oink Prover function that runs all the rounds of the verifier.
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
BB_PROFILE void generate_gate_challenges()
typename Transcript::Proof Proof
typename Flavor::CommitmentKey CommitmentKey
typename Flavor::Transcript Transcript
UltraProver_(const std::shared_ptr< ProverInstance > &, const std::shared_ptr< HonkVK > &, const CommitmentKey &)
typename Flavor::CircuitBuilder Builder
Entry point for Barretenberg command-line interface.