Skip to content

Commit 848cd96

Browse files
authored
chore: fixing v4-next and syncing backport-to-v4-next-staging with v4-next (#22125)
2 parents 5dd9244 + 0b808e6 commit 848cd96

File tree

12 files changed

+2087
-1721
lines changed

12 files changed

+2087
-1721
lines changed

.test_patterns.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,11 @@ tests:
277277
owners:
278278
- *phil
279279

280+
- regex: "src/e2e_epochs/epochs_mbps\\.parallel\\.test\\.ts"
281+
flake_group_id: e2e-p2p-epoch-flakes
282+
owners:
283+
- *palla
284+
280285
- regex: "src/e2e_epochs/.*\\.test\\.ts"
281286
flake_group_id: e2e-p2p-epoch-flakes
282287
owners:

barretenberg/acir_tests/bootstrap.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,9 @@ function test_cmds {
160160
echo "$sol_prefix $scripts/bb_prove_sol_verify.sh $t"
161161
echo "$sol_prefix USE_OPTIMIZED_CONTRACT=true $scripts/bb_prove_sol_verify.sh $t --disable_zk"
162162
done
163+
# Just run this super large circuit for the optimized verifier - regression test for templating errors
164+
local large_circuit_test_prefix="$tests_hash:ISOLATE=1:MEM=16g"
165+
echo "$large_circuit_test_prefix USE_OPTIMIZED_CONTRACT=true $scripts/bb_prove_sol_verify.sh large_circuit_verifier_test --disable_zk"
163166
# prove with bb cli and verify with bb.js classes
164167
echo "$sol_prefix $scripts/bb_prove_bbjs_verify.sh a_1_mul"
165168
echo "$sol_prefix $scripts/bb_prove_bbjs_verify.sh assert_statement"
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[package]
2+
name = "large_circuit_verifier_test"
3+
type = "bin"
4+
authors = [""]
5+
6+
[dependencies]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
input = "0x01"
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
fn main(input: pub Field) {
2+
let mut a = input;
3+
let mut b = input + 1;
4+
5+
for _ in 0..2100000 {
6+
let c = a * b + a;
7+
let d = b * c + b;
8+
a = c;
9+
b = d;
10+
}
11+
12+
assert(a != 0);
13+
assert(b != 0);
14+
}

barretenberg/cpp/src/barretenberg/dsl/acir_proofs/honk_optimized_contract.hpp

Lines changed: 271 additions & 282 deletions
Large diffs are not rendered by default.

barretenberg/cpp/src/barretenberg/polynomials/polynomial_arithmetic.hpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,7 @@ void coset_ifft(std::vector<Fr*> coeffs, const EvaluationDomain<Fr>& domain);
8686
// void populate_with_vanishing_polynomial(Fr* coeffs, const size_t num_non_zero_entries, const EvaluationDomain<Fr>&
8787
// src_domain, const EvaluationDomain<Fr>& target_domain);
8888

89-
fr compute_barycentric_evaluation(const fr* coeffs,
90-
unsigned long num_coeffs,
91-
const fr& z,
92-
const EvaluationDomain<fr>& domain);
89+
fr compute_barycentric_evaluation(const fr* coeffs, size_t num_coeffs, const fr& z, const EvaluationDomain<fr>& domain);
9390

9491
// This function computes sum of all scalars in a given array.
9592
template <typename Fr> Fr compute_sum(const Fr* src, const size_t n);

barretenberg/sol/scripts/copy_optimized_to_cpp.sh

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ sed -i -E 's/(uint256 constant CIRCUIT_SIZE = )[0-9]+;/\1{{ CIRCUIT_SIZE }};/' "
6666
sed -i -E 's/(uint256 constant LOG_N = )[0-9]+;/\1{{ LOG_CIRCUIT_SIZE }};/' "$TEMP_SOL"
6767
sed -i -E 's/(uint256 constant NUMBER_PUBLIC_INPUTS = )[0-9]+;/\1{{ NUM_PUBLIC_INPUTS }};/' "$TEMP_SOL"
6868
sed -i -E 's/(uint256 constant REAL_NUMBER_PUBLIC_INPUTS = )[0-9]+ - [0-9]+;/\1{{ REAL_NUM_PUBLIC_INPUTS }};/' "$TEMP_SOL"
69-
sed -i -E 's/(uint256 constant NUMBER_OF_BARYCENTRIC_INVERSES = )[0-9]+;/\1{{ NUMBER_OF_BARYCENTRIC_INVERSES }};/' "$TEMP_SOL"
7069

7170
# Replace the contract name
7271
sed -i 's/contract BlakeOptHonkVerifier/contract HonkVerifier/' "$TEMP_SOL"
@@ -83,7 +82,7 @@ awk '
8382
gsub(/POWERS_OF_EVALUATION_CHALLENGE_14_LOC/, "POWERS_OF_EVALUATION_CHALLENGE_{{ LOG_N_MINUS_ONE }}_LOC")
8483
gsub(/SUM_U_CHALLENGE_14/, "SUM_U_CHALLENGE_{{ LOG_N_MINUS_ONE }}")
8584
gsub(/GEMINI_A_EVAL_14/, "GEMINI_A_EVAL_{{ LOG_N_MINUS_ONE }}")
86-
gsub(/INVERTED_CHALLENEGE_POW_MINUS_U_14_LOC/, "INVERTED_CHALLENEGE_POW_MINUS_U_{{ LOG_N_MINUS_ONE }}_LOC")
85+
gsub(/INVERTED_CHALLENGE_POW_MINUS_U_14_LOC/, "INVERTED_CHALLENGE_POW_MINUS_U_{{ LOG_N_MINUS_ONE }}_LOC")
8786
gsub(/FOLD_POS_EVALUATIONS_14_LOC/, "FOLD_POS_EVALUATIONS_{{ LOG_N_MINUS_ONE }}_LOC")
8887
gsub(/mcopy\(0x20, GEMINI_FOLD_UNIVARIATE_0_X_LOC, 0x380\)/, "mcopy(0x20, GEMINI_FOLD_UNIVARIATE_0_X_LOC, {{ GEMINI_FOLD_UNIVARIATE_LENGTH }})")
8988
gsub(/prev_challenge := mod\(keccak256\(0x00, 0x3a0\), p\)/, "prev_challenge := mod(keccak256(0x00, {{ GEMINI_FOLD_UNIVARIATE_HASH_LENGTH }}), p)")

barretenberg/sol/src/honk/optimised/generate_offsets.py

Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22

33
## A mini python script to help generate the locations in memory of the indicies requred to generate a proof
44

5-
vk_fr = [
6-
"VK_CIRCUIT_SIZE_LOC",
7-
"VK_NUM_PUBLIC_INPUTS_LOC",
8-
"VK_PUB_INPUTS_OFFSET_LOC",
9-
]
10-
115
vk_g1 = [
126
"Q_M",
137
"Q_C",
@@ -169,10 +163,6 @@ def print_g1(pointer: int, name: str):
169163

170164

171165
def print_vk(pointer: int):
172-
for item in vk_fr:
173-
print_fr(pointer, item)
174-
pointer += 32
175-
176166
for item in vk_g1:
177167
print_small_g1(pointer, item)
178168
pointer += (4*32)
@@ -195,7 +185,7 @@ def print_proof(pointer: int):
195185
return pointer
196186

197187
BATCHED_RELATION_PARTIAL_LENGTH = 8
198-
PROOF_SIZE_LOG_N = 28
188+
PROOF_SIZE_LOG_N = 15
199189
NUMBER_OF_ENTITIES = 41
200190
NUMBER_OF_SUBRELATIONS = 28
201191
NUMBER_OF_ALPHAS = NUMBER_OF_SUBRELATIONS - 1
@@ -258,17 +248,19 @@ def print_challenges(pointer: int):
258248
return pointer
259249

260250
BARYCENTRIC_DOMAIN_SIZE = 8
261-
def print_barycentric_domain():
251+
def print_barycentric_domain(pointer: int):
262252
# use scratch space
263-
bary_pointer = SCRATCH_SPACE_POINTER
253+
bary_domain_pointer = 0x100;
264254
for i in range(0, BARYCENTRIC_DOMAIN_SIZE):
265-
print_fr(bary_pointer, "BARYCENTRIC_LAGRANGE_DENOMINATOR_" + str(i) + "_LOC")
266-
bary_pointer += 32
255+
print_fr(bary_domain_pointer , "BARYCENTRIC_LAGRANGE_DENOMINATOR_" + str(i) + "_LOC")
256+
bary_domain_pointer += 32
267257

268258
for i in range(0, PROOF_SIZE_LOG_N):
269259
for j in range(0, BARYCENTRIC_DOMAIN_SIZE):
270-
print_fr(bary_pointer, "BARYCENTRIC_DENOMINATOR_INVERSES_" + str(i) + "_" + str(j) + "_LOC")
271-
bary_pointer += 32
260+
print_fr(pointer, "BARYCENTRIC_DENOMINATOR_INVERSES_" + str(i) + "_" + str(j) + "_LOC")
261+
pointer += 32
262+
263+
return pointer
272264

273265

274266
def print_subrelation_eval(pointer: int):
@@ -305,7 +297,7 @@ def print_subrelation_intermediates(pointer: int):
305297

306298
def print_batch_scalars(pointer: int):
307299
BATCH_SIZE = 69
308-
for i in range(0, BATCH_SIZE):
300+
for i in range(1, BATCH_SIZE):
309301
print_fr(pointer, "BATCH_SCALAR_" + str(i) + "_LOC")
310302
pointer += 32
311303

@@ -317,12 +309,6 @@ def print_powers_of_evaluation_challenge(pointer: int):
317309
pointer += 32
318310
return pointer
319311

320-
def print_inverted_gemini_denominators(pointer: int):
321-
for i in range(0, PROOF_SIZE_LOG_N + 1):
322-
print_fr(pointer, "INVERTED_GEMINI_DENOMINATOR_" + str(i) + "_LOC")
323-
pointer += 32
324-
return pointer
325-
326312
# TODO: double check this value
327313
def print_batched_evaluation_accumulator_inversions(pointer: int):
328314
BATCH_SIZE = 15
@@ -331,23 +317,20 @@ def print_batched_evaluation_accumulator_inversions(pointer: int):
331317
pointer += 32
332318
return pointer
333319

334-
def print_batched_evaluation_location(pointer: int):
335-
print_fr(pointer, "BATCHED_EVALUATION_LOC")
320+
def print_constant_term_accumulator_location(pointer: int):
321+
print_fr(pointer, "CONSTANT_TERM_ACCUMULATOR_LOC")
336322
pointer += 32
337323
return pointer
338324

339-
def print_constant_term_accumulator_location(pointer: int):
340-
print_fr(pointer, "CONSTANT_TERM_ACCUMULATOR_LOC")
325+
def print_gemini_r_inv(pointer: int):
326+
print_fr(pointer, "GEMINI_R_INV_LOC")
341327
pointer += 32
342328
return pointer
343329

344-
def print_inversions():
345-
pointer = SCRATCH_SPACE_POINTER
346-
pointer = print_inverted_gemini_denominators(pointer)
330+
def print_inversions(pointer: int):
347331
pointer = print_batched_evaluation_accumulator_inversions(pointer)
348332

349333
print("")
350-
pointer = print_batched_evaluation_location(pointer)
351334
pointer = print_constant_term_accumulator_location(pointer)
352335

353336
print("")
@@ -368,6 +351,8 @@ def print_inversions():
368351
print("")
369352
pointer = print_fold_pos_evaluations(pointer)
370353

354+
return pointer
355+
371356

372357

373358
def print_pos_neg_inverted_denominators(pointer: int):
@@ -379,7 +364,7 @@ def print_pos_neg_inverted_denominators(pointer: int):
379364

380365
def print_inverted_challenge_pow_minus_u(pointer: int):
381366
for i in range(0, PROOF_SIZE_LOG_N):
382-
print_fr(pointer, "INVERTED_CHALLENEGE_POW_MINUS_U_" + str(i) + "_LOC")
367+
print_fr(pointer, "INVERTED_CHALLENGE_POW_MINUS_U_" + str(i) + "_LOC")
383368
pointer += 32
384369
return pointer
385370

@@ -401,6 +386,20 @@ def print_fold_pos_evaluations(pointer: int):
401386
pointer += 32
402387
return pointer
403388

389+
def print_barycentric_temp_mem(pointer: int):
390+
for i in range(0, PROOF_SIZE_LOG_N * 8):
391+
print_fr(pointer, "BARYCENTRIC_TEMP_" + str(i) + "_LOC")
392+
pointer += 32
393+
394+
print_fr(pointer, "PUBLIC_INPUTS_DENOM_TEMP_LOC")
395+
pointer += 32
396+
print_fr(pointer, "GEMINI_R_INV_TEMP_LOC")
397+
pointer += 32
398+
print_fr(pointer, "BATCH_PRODUCT_TEMP_LOC")
399+
pointer += 32
400+
401+
return pointer
402+
404403
def print_later_scratch_space(pointer: int):
405404
print_fr(pointer, "LATER_SCRATCH_SPACE")
406405
pointer += 32
@@ -470,7 +469,7 @@ def main():
470469
print_header_centered("SUMCHECK - RUNTIME MEMORY")
471470

472471
print_header_centered("SUMCHECK - RUNTIME MEMORY - BARYCENTRIC")
473-
print_barycentric_domain()
472+
pointer = print_barycentric_domain(pointer)
474473
print_header_centered("SUMCHECK - RUNTIME MEMORY - BARYCENTRIC COMPLETE")
475474

476475
print_header_centered("SUMCHECK - RUNTIME MEMORY - SUBRELATION EVALUATIONS")
@@ -494,15 +493,18 @@ def main():
494493
print_header_centered("SHPLEMINI - RUNTIME MEMORY - BATCH SCALARS COMPLETE")
495494

496495
print_header_centered("SHPLEMINI - RUNTIME MEMORY - INVERSIONS")
497-
print_inversions()
496+
pointer = print_gemini_r_inv(pointer)
497+
pointer = print_inversions(pointer)
498498
print_header_centered("SHPLEMINI RUNTIME MEMORY - INVERSIONS - COMPLETE")
499499
print_header_centered("SHPLEMINI RUNTIME MEMORY - COMPLETE")
500500

501-
print("")
502-
pointer = print_later_scratch_space(pointer)
501+
print_header_centered("Temporary space - for batch inversions")
503502

504-
print_header_centered("Temporary space")
503+
pointer = print_barycentric_temp_mem(pointer)
505504
pointer = print_temp_space(pointer)
505+
print("")
506+
507+
pointer = print_later_scratch_space(pointer)
506508
print_header_centered("Temporary space - COMPLETE")
507509

508510
print_scratch_space_aliases()

0 commit comments

Comments
 (0)