Skip to content

Commit

Permalink
chore: back on master (#27)
Browse files Browse the repository at this point in the history
* feat: cleanup flavor

* feat: create and apply map_with_newline utility function

* refactor: another pass

* chore: fix build (#26)

* chore: clippy fixes, get compile

* chore: clippy silence

* fmt

* fixes
  • Loading branch information
Maddiaa0 authored Dec 5, 2023
1 parent 5dad742 commit 694d05a
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 37 deletions.
4 changes: 2 additions & 2 deletions bberg/src/circuit_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ class {name}CircuitBuilder {{
AllPolynomials polys;
// Allocate mem for each column
for (auto* poly : polys.pointer_view()) {{
*poly = Polynomial(num_rows);
for (auto& poly : polys.get_all()) {{
poly = Polynomial(num_rows);
}}
for (size_t i = 0; i < rows.size(); i++) {{
Expand Down
36 changes: 17 additions & 19 deletions bberg/src/flavor_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ class {name}Flavor {{
public:
{class_aliases}
{relation_definitions}
{container_size_definitions}
{relation_definitions}
static constexpr bool has_zero_row = true;
private:
Expand Down Expand Up @@ -337,8 +337,8 @@ fn create_polynomial_views(first_poly: &String) -> String {
[[nodiscard]] AllValues get_row(const size_t row_idx) const
{{
AllValues result;
for (auto [result_field, polynomial] : zip_view(result.pointer_view(), pointer_view())) {{
*result_field = (*polynomial)[row_idx];
for (auto [result_field, polynomial] : zip_view(result.get_all(), get_all())) {{
result_field = polynomial[row_idx];
}}
return result;
}}
Expand All @@ -353,8 +353,8 @@ fn create_polynomial_views(first_poly: &String) -> String {
PartiallyEvaluatedMultivariates(const size_t circuit_size)
{{
// Storage is only needed after the first partial evaluation, hence polynomials of size (n / 2)
for (auto* poly : pointer_view()) {{
*poly = Polynomial(circuit_size / 2);
for (auto& poly : get_all()) {{
poly = Polynomial(circuit_size / 2);
}}
}}
}};
Expand Down Expand Up @@ -431,10 +431,8 @@ fn create_verifier_commitments(fixed: &[String]) -> String {
using Base = AllEntities<Commitment>;
public:
VerifierCommitments(const std::shared_ptr<VerificationKey>& verification_key,
const BaseTranscript<FF>& transcript)
VerifierCommitments(const std::shared_ptr<VerificationKey>& verification_key)
{{
static_cast<void>(transcript);
{key_dereference}
}}
}};
Expand All @@ -447,11 +445,11 @@ fn generate_transcript(witness: &[String]) -> String {
let declaration_transform = |c: &_| format!("Commitment {c};");
let deserialize_transform = |name: &_| {
format!(
"{name} = deserialize_from_buffer<Commitment>(BaseTranscript<FF>::proof_data, num_bytes_read);",
"{name} = deserialize_from_buffer<Commitment>(Transcript::proof_data, num_bytes_read);",
)
};
let serialize_transform = |name: &_| {
format!("serialize_to_buffer<Commitment>({name}, BaseTranscript<FF>::proof_data);")
format!("serialize_to_buffer<Commitment>({name}, Transcript::proof_data);")
};

// Perform Transformations
Expand All @@ -460,7 +458,7 @@ fn generate_transcript(witness: &[String]) -> String {
let serialize_wires = map_with_newline(witness, serialize_transform);

format!("
class Transcript : public BaseTranscript<FF> {{
class Transcript : public BaseTranscript {{
public:
uint32_t circuit_size;
Expand All @@ -475,7 +473,7 @@ fn generate_transcript(witness: &[String]) -> String {
Transcript() = default;
Transcript(const std::vector<uint8_t>& proof)
: BaseTranscript<FF>(proof)
: BaseTranscript(proof)
{{}}
void deserialize_full_transcript()
Expand All @@ -489,10 +487,10 @@ fn generate_transcript(witness: &[String]) -> String {
for (size_t i = 0; i < log_n; ++i) {{
sumcheck_univariates.emplace_back(
deserialize_from_buffer<barretenberg::Univariate<FF, BATCHED_RELATION_PARTIAL_LENGTH>>(
BaseTranscript<FF>::proof_data, num_bytes_read));
Transcript::proof_data, num_bytes_read));
}}
sumcheck_evaluations = deserialize_from_buffer<std::array<FF, NUM_ALL_ENTITIES>>(
BaseTranscript<FF>::proof_data, num_bytes_read);
Transcript::proof_data, num_bytes_read);
for (size_t i = 0; i < log_n; ++i) {{
zm_cq_comms.push_back(deserialize_from_buffer<Commitment>(proof_data, num_bytes_read));
}}
Expand All @@ -503,17 +501,17 @@ fn generate_transcript(witness: &[String]) -> String {
void serialize_full_transcript()
{{
size_t old_proof_length = proof_data.size();
BaseTranscript<FF>::proof_data.clear();
Transcript::proof_data.clear();
size_t log_n = numeric::get_msb(circuit_size);
serialize_to_buffer(circuit_size, BaseTranscript<FF>::proof_data);
serialize_to_buffer(circuit_size, Transcript::proof_data);
{serialize_wires}
for (size_t i = 0; i < log_n; ++i) {{
serialize_to_buffer(sumcheck_univariates[i], BaseTranscript<FF>::proof_data);
serialize_to_buffer(sumcheck_univariates[i], Transcript::proof_data);
}}
serialize_to_buffer(sumcheck_evaluations, BaseTranscript<FF>::proof_data);
serialize_to_buffer(sumcheck_evaluations, Transcript::proof_data);
for (size_t i = 0; i < log_n; ++i) {{
serialize_to_buffer(zm_cq_comms[i], proof_data);
}}
Expand Down
10 changes: 5 additions & 5 deletions bberg/src/prover_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ impl ProverBuilder for BBFiles {
plonk::proof& export_proof();
plonk::proof& construct_proof();
Transcript transcript;
std::shared_ptr<Transcript> transcript = std::make_shared<Transcript>();
std::vector<FF> public_inputs;
Expand Down Expand Up @@ -122,7 +122,7 @@ prover_polynomials.{name}_shift = key->{name}.shifted();
{{
const auto circuit_size = static_cast<uint32_t>(key->circuit_size);
transcript.send_to_verifier(\"circuit_size\", circuit_size);
transcript->send_to_verifier(\"circuit_size\", circuit_size);
}}
/**
Expand All @@ -134,7 +134,7 @@ prover_polynomials.{name}_shift = key->{name}.shifted();
auto wire_polys = key->get_wires();
auto labels = commitment_labels.get_wires();
for (size_t idx = 0; idx < wire_polys.size(); ++idx) {{
transcript.send_to_verifier(labels[idx], commitment_key->commit(wire_polys[idx]));
transcript->send_to_verifier(labels[idx], commitment_key->commit(wire_polys[idx]));
}}
}}
Expand All @@ -149,7 +149,7 @@ prover_polynomials.{name}_shift = key->{name}.shifted();
using Sumcheck = sumcheck::SumcheckProver<Flavor>;
auto sumcheck = Sumcheck(key->circuit_size, transcript);
auto alpha = transcript.get_challenge(\"alpha\");
auto alpha = transcript->get_challenge(\"alpha\");
sumcheck_output = sumcheck.prove(prover_polynomials, relation_parameters, alpha);
}}
Expand All @@ -175,7 +175,7 @@ prover_polynomials.{name}_shift = key->{name}.shifted();
plonk::proof& {name}Prover::export_proof()
{{
proof.proof_data = transcript.proof_data;
proof.proof_data = transcript->proof_data;
return proof;
}}
Expand Down
21 changes: 10 additions & 11 deletions bberg/src/verifier_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ impl VerifierBuilder for BBFiles {
fn create_verifier_cpp(&mut self, name: &str, witness: &[String]) {
let include_str = includes_cpp(name);

let wire_transformation = |n: &String| {
format!(
"commitments.{n} = transcript.template receive_from_prover<Commitment>(commitment_labels.{n});"
)
};
let wire_transformation = |n: &String| format!(
"commitments.{n} = transcript->template receive_from_prover<Commitment>(commitment_labels.{n});"
);
let wire_commitments = map_with_newline(witness, wire_transformation);

let ver_cpp = format!("
Expand Down Expand Up @@ -57,12 +55,12 @@ impl VerifierBuilder for BBFiles {
RelationParameters<FF> relation_parameters;
transcript = BaseTranscript<FF>{{ proof.proof_data }};
transcript = std::make_shared<Transcript>(proof.proof_data);
auto commitments = VerifierCommitments(key, transcript);
auto commitment_labels = CommitmentLabels();
VerifierCommitments commitments {{ key }};
CommitmentLabels commitment_labels;
const auto circuit_size = transcript.template receive_from_prover<uint32_t>(\"circuit_size\");
const auto circuit_size = transcript->template receive_from_prover<uint32_t>(\"circuit_size\");
if (circuit_size != key->circuit_size) {{
return false;
Expand All @@ -74,7 +72,7 @@ impl VerifierBuilder for BBFiles {
// Execute Sumcheck Verifier
auto sumcheck = SumcheckVerifier<Flavor>(circuit_size);
auto alpha = transcript.get_challenge(\"alpha\");
auto alpha = transcript->get_challenge(\"alpha\");
auto [multivariate_challenge, claimed_evaluations, sumcheck_verified] =
sumcheck.verify(relation_parameters, alpha, transcript);
Expand Down Expand Up @@ -120,6 +118,7 @@ impl VerifierBuilder for BBFiles {
using Commitment = Flavor::Commitment;
using VerificationKey = Flavor::VerificationKey;
using VerifierCommitmentKey = Flavor::VerifierCommitmentKey;
using Transcript = Flavor::Transcript;
public:
explicit {name}Verifier(std::shared_ptr<VerificationKey> verifier_key = nullptr);
Expand All @@ -134,7 +133,7 @@ impl VerifierBuilder for BBFiles {
std::shared_ptr<VerificationKey> key;
std::map<std::string, Commitment> commitments;
std::shared_ptr<VerifierCommitmentKey> pcs_verification_key;
BaseTranscript<FF> transcript;
std::shared_ptr<Transcript> transcript;
}};
}} // namespace proof_system::honk
Expand Down

0 comments on commit 694d05a

Please sign in to comment.