diff --git a/barretenberg/barretenberg.code-workspace b/barretenberg/barretenberg.code-workspace index 873d82c3685a..cd08c7a31666 100644 --- a/barretenberg/barretenberg.code-workspace +++ b/barretenberg/barretenberg.code-workspace @@ -147,8 +147,4 @@ "console": "internalConsole", } }, - "launch": { - "version": "0.2.0", - "configurations": [] - }, } \ No newline at end of file diff --git a/barretenberg/cpp/src/barretenberg/execution_trace/execution_trace.cpp b/barretenberg/cpp/src/barretenberg/execution_trace/execution_trace.cpp index 949039ad3182..da72fd567039 100644 --- a/barretenberg/cpp/src/barretenberg/execution_trace/execution_trace.cpp +++ b/barretenberg/cpp/src/barretenberg/execution_trace/execution_trace.cpp @@ -41,7 +41,6 @@ void ExecutionTrace_::add_wires_and_selectors_to_proving_key(TraceData& } proving_key.pub_inputs_offset = trace_data.pub_inputs_offset; } else if constexpr (IsPlonkFlavor) { - // Maybe, ignore the last two selectors here, would this work :-? for (size_t idx = 0; idx < trace_data.wires.size(); ++idx) { std::string wire_tag = "w_" + std::to_string(idx + 1) + "_lagrange"; proving_key.polynomial_store.put(wire_tag, std::move(trace_data.wires[idx])); diff --git a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/mega_arithmetization.hpp b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/mega_arithmetization.hpp index 491923e878f3..206b66e8322e 100644 --- a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/mega_arithmetization.hpp +++ b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/mega_arithmetization.hpp @@ -137,12 +137,7 @@ template class MegaArith { * conventional Ultra arithmetization * */ - void pad_additional() - { - q_busread().emplace_back(0); - // q_poseidon2_external().emplace_back(0); - // q_poseidon2_internal().emplace_back(0); - }; + void pad_additional() { q_busread().emplace_back(0); }; /** * @brief Resizes all selectors which are not part of the conventional Ultra arithmetization @@ -150,13 +145,7 @@ template class MegaArith { * conventional Ultra arithmetization * @param new_size */ - void resize_additional(size_t new_size) - { - q_busread().resize(new_size); - // WORKTODO: with this in ultra prolly we can delete these - // q_poseidon2_external().resize(new_size); - // q_poseidon2_internal().resize(new_size); - }; + void resize_additional(size_t new_size) { q_busread().resize(new_size); }; }; struct TraceBlocks : public MegaTraceBlocks { diff --git a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/ultra_arithmetization.hpp b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/ultra_arithmetization.hpp index a9c8c744ea2c..bd07a5519df3 100644 --- a/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/ultra_arithmetization.hpp +++ b/barretenberg/cpp/src/barretenberg/plonk_honk_shared/arithmetization/ultra_arithmetization.hpp @@ -132,7 +132,6 @@ template class UltraArith { info("lookups :\t", this->lookup.size()); info("poseidon ext :\t", this->poseidon_external.size()); info("poseidon int :\t", this->poseidon_internal.size()); - info(""); } size_t get_total_structured_size() diff --git a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.test.cpp index 9e93d84ac671..a22998a2668a 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/hash/poseidon2/poseidon2.test.cpp @@ -147,7 +147,7 @@ template class StdlibPoseidon2 : public testing::Test { } }; -using CircuitTypes = testing::Types; +using CircuitTypes = testing::Types; TYPED_TEST_SUITE(StdlibPoseidon2, CircuitTypes); diff --git a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/transcript/transcript.hpp b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/transcript/transcript.hpp index 26764d60af8b..3bc2e70d1560 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/transcript/transcript.hpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/transcript/transcript.hpp @@ -18,23 +18,6 @@ template struct StdlibTranscriptParams { Builder* builder = data[0].get_context(); return stdlib::poseidon2::hash(*builder, data); - // } else { - // // TODO(https://github.com/AztecProtocol/barretenberg/issues/1035): Add constraints for hashing in Ultra - // using NativeFr = bb::fr; - // ASSERT(!data.empty() && data[0].get_context() != nullptr); - // Builder* builder = data[0].get_context(); - - // // call the native hash on the data - // std::vector native_data; - // native_data.reserve(data.size()); - // for (const auto& fr : data) { - // native_data.push_back(fr.get_value()); - // } - // NativeFr hash_value = crypto::Poseidon2::hash(native_data); - - // Fr hash_field_ct = Fr::from_witness(builder, hash_value); - // return hash_field_ct; - // } } template static inline T convert_challenge(const Fr& challenge) diff --git a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/client_ivc_recursive_verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/client_ivc_recursive_verifier.test.cpp index 224ad8e15d6e..1885860414d2 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/client_ivc_recursive_verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/client_ivc_recursive_verifier.test.cpp @@ -92,6 +92,7 @@ TEST_F(ClientIVCRecursionTests, Basic) EXPECT_TRUE(CircuitChecker::check(*builder)); + // Print the number of gates post finalisation info("Recursive Verifier: num gates = ", builder->num_gates); } diff --git a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/ultra_recursive_verifier.cpp b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/ultra_recursive_verifier.cpp index b54f21f0705a..36cedbe21d4d 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/ultra_recursive_verifier.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/ultra_recursive_verifier.cpp @@ -126,18 +126,14 @@ std::array UltraRecursiveVerifier_::ve // Execute Sumcheck Verifier and extract multivariate opening point u = (u_0, ..., u_{d-1}) and purported // multivariate evaluations at u - const size_t log_circuit_size = numeric::get_msb(static_cast(key->circuit_size)); - auto sumcheck = Sumcheck(log_circuit_size, transcript); + auto sumcheck = Sumcheck(CONST_PROOF_SIZE_LOG_N, transcript); RelationSeparator alpha; for (size_t idx = 0; idx < alpha.size(); idx++) { alpha[idx] = transcript->template get_challenge("alpha_" + std::to_string(idx)); } - // TODO(https://github.com/AztecProtocol/barretenberg/issues/1041): Once hashing produces constraints for Ultra in - // the transcript, a fixed number of gate_challenges must be generated by the prover/verifier in order to achieve a - // verification circuit that is independent of proof size. - auto gate_challenges = std::vector(log_circuit_size); - for (size_t idx = 0; idx < log_circuit_size; idx++) { + auto gate_challenges = std::vector(CONST_PROOF_SIZE_LOG_N); + for (size_t idx = 0; idx < CONST_PROOF_SIZE_LOG_N; idx++) { gate_challenges[idx] = transcript->template get_challenge("Sumcheck:gate_challenge_" + std::to_string(idx)); } auto [multivariate_challenge, claimed_evaluations, sumcheck_verified] = diff --git a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/verifier.test.cpp b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/verifier.test.cpp index e8f53f5366fe..70951e302240 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/verifier.test.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib/honk_recursion/verifier/verifier.test.cpp @@ -144,11 +144,10 @@ template class RecursiveVerifierTest : public testing bool broke(false); auto check_eq = [&broke](auto& p1, auto& p2) { + EXPECT_TRUE(p1.size() == p2.size()); for (size_t idx = 0; idx < p1.size(); idx++) { if (p1[idx] != p2[idx]) { - info("bad values p1: ", p1[idx], "p2: ", p2[idx]); broke = true; - info("discrepancy at value index: ", idx); break; } } @@ -168,6 +167,7 @@ template class RecursiveVerifierTest : public testing } block_idx++; } + EXPECT_FALSE(broke); } diff --git a/barretenberg/cpp/src/barretenberg/stdlib_circuit_builders/ultra_circuit_builder.cpp b/barretenberg/cpp/src/barretenberg/stdlib_circuit_builders/ultra_circuit_builder.cpp index b6110bef9179..a1c3d6205aca 100644 --- a/barretenberg/cpp/src/barretenberg/stdlib_circuit_builders/ultra_circuit_builder.cpp +++ b/barretenberg/cpp/src/barretenberg/stdlib_circuit_builders/ultra_circuit_builder.cpp @@ -122,7 +122,6 @@ void UltraCircuitBuilder_::add_gates_to_ensure_all_polys_are_no blocks.elliptic.q_aux().emplace_back(0); blocks.elliptic.q_poseidon2_external().emplace_back(0); blocks.elliptic.q_poseidon2_internal().emplace_back(0); - if constexpr (HasAdditionalSelectors) { blocks.elliptic.pad_additional(); } @@ -145,7 +144,6 @@ void UltraCircuitBuilder_::add_gates_to_ensure_all_polys_are_no blocks.aux.q_aux().emplace_back(1); blocks.aux.q_poseidon2_external().emplace_back(0); blocks.aux.q_poseidon2_internal().emplace_back(0); - if constexpr (HasAdditionalSelectors) { blocks.aux.pad_additional(); } @@ -755,7 +753,6 @@ plookup::ReadData UltraCircuitBuilder_::create_gates_ blocks.lookup.q_aux().emplace_back(0); blocks.lookup.q_poseidon2_external().emplace_back(0); blocks.lookup.q_poseidon2_internal().emplace_back(0); - if constexpr (HasAdditionalSelectors) { blocks.lookup.pad_additional(); } @@ -1068,7 +1065,6 @@ void UltraCircuitBuilder_::create_sort_constraint(const std::ve blocks.delta_range.q_aux().emplace_back(0); blocks.delta_range.q_poseidon2_external().emplace_back(0); blocks.delta_range.q_poseidon2_internal().emplace_back(0); - if constexpr (HasAdditionalSelectors) { blocks.delta_range.pad_additional(); } @@ -1734,7 +1730,6 @@ std::array UltraCircuitBuilder_::evaluate_non_nati blocks.aux.q_aux().emplace_back(0); blocks.aux.q_poseidon2_external().emplace_back(0); blocks.aux.q_poseidon2_internal().emplace_back(0); - if constexpr (HasAdditionalSelectors) { blocks.aux.pad_additional(); }