Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Use UltraRollupHonk in rollup #10342

Merged
merged 134 commits into from
Dec 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
744114c
add ultra rollup flows to main
lucasxia01 Nov 22, 2024
76d4271
Merge remote-tracking branch 'origin/master' into lx/rollup-flavor-in…
lucasxia01 Nov 26, 2024
481cf87
make the evaluation a witness
lucasxia01 Nov 27, 2024
11da990
add TODOs
lucasxia01 Nov 27, 2024
e713818
fix test
lucasxia01 Nov 27, 2024
99d526e
modify honk recursion constraint to handle ipa claim
lucasxia01 Nov 27, 2024
18dee52
Merge branch 'lx/rollup-flavor-interfaces' into lx/ipa-in-rollup
lucasxia01 Nov 27, 2024
2aaa8f1
change rollup to use ultra rollup honk flavor
lucasxia01 Dec 2, 2024
95326e9
add some WORKTODOs
lucasxia01 Dec 2, 2024
f36694a
Merge commit 'c53f4cf84c60b8d81cc62d5827ec4408da88cc4e' into lx/ipa-i…
lucasxia01 Dec 2, 2024
ab088af
Merge branch 'master' into lx/ipa-in-rollup
lucasxia01 Dec 2, 2024
c05678d
fix build
lucasxia01 Dec 3, 2024
f1c1e67
fix build
lucasxia01 Dec 3, 2024
e0a5a20
change and add some constants, account for IPA claim size in public i…
lucasxia01 Dec 4, 2024
d22b910
ipa claim length
lucasxia01 Dec 4, 2024
11f3904
fix typo of IPA_CLAIM_LENGTH
lucasxia01 Dec 5, 2024
8b758c9
fix avm integration test
lucasxia01 Dec 5, 2024
aa9c61c
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 5, 2024
5cbc954
update make fake proofs to use roll up honk
lucasxia01 Dec 5, 2024
dbecd1b
update vk generation to use ultra rollup honk
lucasxia01 Dec 5, 2024
010ecd8
fix to_field_elements function in ultra rollup flavor
lucasxia01 Dec 5, 2024
ff1971d
fix vk as fields
lucasxia01 Dec 5, 2024
1dfc906
updating rollup circuits to use the correct flavor of honk for recurs…
lucasxia01 Dec 6, 2024
bb99e16
change back to rollup honk in parity circuits
lucasxia01 Dec 6, 2024
d811caf
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 9, 2024
222d383
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 9, 2024
7b864df
fix build
lucasxia01 Dec 9, 2024
051e730
change tube to use UltraRollupFlavor
lucasxia01 Dec 10, 2024
7a8b90f
changes to try to split out honk and rollup honk constants
lucasxia01 Dec 10, 2024
399147f
fix build
lucasxia01 Dec 10, 2024
e41d38e
update IPA proof constant
lucasxia01 Dec 10, 2024
9a30580
fix build
lucasxia01 Dec 10, 2024
7b39066
fix build
lucasxia01 Dec 10, 2024
e42f50a
init grumpkin crs earlier
lucasxia01 Dec 10, 2024
d84209e
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 10, 2024
7a77731
fix build
lucasxia01 Dec 10, 2024
5df5cb8
fix constants
lucasxia01 Dec 11, 2024
2eafb7c
feat: sayonara old hints (#10547)
IlyasRidhuan Dec 10, 2024
6fce0f8
fix: Bad merge on boxes (#10579)
spalladino Dec 10, 2024
f266e82
fix: bump hard coded SRS size for wasm from 2^19 to 2^10 (#10596)
ledwards2225 Dec 10, 2024
76c51f5
fix: simulation error enriching (#10595)
dbanks12 Dec 10, 2024
5fbf767
feat: unified create circuit from acir (#10440)
ledwards2225 Dec 10, 2024
e54185b
fix: temporary fix for private kernel tail proving (#10593)
LeilaWang Dec 10, 2024
915c8b8
feat!: rm outgoing logs (#10486)
iAmMichaelConnor Dec 10, 2024
41adcc9
chore: Tweak validator logs (#10597)
spalladino Dec 10, 2024
2ada2b0
feat: metrics via terraform (#10594)
just-mitch Dec 10, 2024
d2259ff
chore: remove warnings from protocol circuits (#10556)
LeilaWang Dec 11, 2024
ed67b4c
feat: persistence in helm chart for validator and boot node (#10543)
just-mitch Dec 11, 2024
9aacd97
fix: remove otel collector endpoint (#10604)
just-mitch Dec 11, 2024
aa1f903
git subrepo push --branch=master barretenberg
AztecBot Dec 11, 2024
13e5e33
chore: replace relative paths to noir-protocol-circuits
AztecBot Dec 11, 2024
343a68a
git_subrepo.sh: Fix parent in .gitrepo file. [skip ci]
AztecBot Dec 11, 2024
7467dda
git subrepo push --branch=master noir-projects/aztec-nr
AztecBot Dec 11, 2024
d79abdf
chore: Handle errors in e2e teardown to fix e2e token (#10590)
spalladino Dec 11, 2024
c3d9fd7
feat: Add verify proof calls to private kernels (#10533)
sirasistant Dec 11, 2024
a61d42f
feat: add rollup circuit sample inputs (#10608)
MirandaWood Dec 11, 2024
8cad312
chore: Disable ivc integration yarn tests (#10625)
spalladino Dec 11, 2024
9f4ac42
chore: bump prover agents (#10626)
just-mitch Dec 11, 2024
4de8362
fix: always respect aztec image pull policy (#10617)
just-mitch Dec 11, 2024
db37318
chore!: l2 gas maximum is per-TX-public-portion. AVM startup gas is n…
dbanks12 Dec 11, 2024
225cda6
feat: AVM inserts fee write on txs with public calls (#10394)
sirasistant Dec 11, 2024
49d1068
Merge remote-tracking branch 'origin/master' into lx/ultra-rollup-hon…
lucasxia01 Dec 11, 2024
af82ba1
ran yarn format
lucasxia01 Dec 11, 2024
309daf6
add todo and update vk generation
lucasxia01 Dec 11, 2024
40a86ec
fix formatting
lucasxia01 Dec 11, 2024
4fdb211
fix build
lucasxia01 Dec 11, 2024
2c117b1
fix build
lucasxia01 Dec 11, 2024
fbcc930
fix build part 3
lucasxia01 Dec 11, 2024
b724055
4th times the charm right
lucasxia01 Dec 11, 2024
0bd7c24
fix: attempt to fix flake in e2e cross chain messaging test (#10634)
dbanks12 Dec 11, 2024
266cb9a
chore(avm): Gas constants adjustment based on trace rows accounting (…
jeanmon Dec 11, 2024
a3c3d84
fix: remove auto verify in cbind ivc prove (#10627)
ledwards2225 Dec 11, 2024
03c84f4
chore(avm): Reduce the number of gates for fake AVM recursive verifie…
jeanmon Dec 11, 2024
99708e8
feat: deploy faucet (#10580)
alexghr Dec 11, 2024
92873fa
fix: memory leak in the broker (#10567)
alexghr Dec 11, 2024
9737e61
chore: merge queue CI (#10629)
ludamad Dec 11, 2024
aaf0efc
Merge branch 'master' into lx/ultra-rollup-honk-in-rollup-attempt
lucasxia01 Dec 11, 2024
7b922af
Merge remote-tracking branch 'origin/lx/ultra-rollup-honk-in-rollup-a…
lucasxia01 Dec 11, 2024
9f5201e
fixed up things relating to the new constants for rollup honk
lucasxia01 Dec 11, 2024
368fa3a
attempt to fix yarn build
lucasxia01 Dec 12, 2024
79d177d
fix some tests
lucasxia01 Dec 12, 2024
2d4aa00
Merge branch 'master' into lx/ipa-in-rollup
lucasxia01 Dec 12, 2024
7ad955b
add dummy vk for ipa proof
lucasxia01 Dec 12, 2024
695b917
Merge branch 'lx/ipa-in-rollup' of github.com:AztecProtocol/aztec-pac…
lucasxia01 Dec 12, 2024
3235255
fix log poly length for ipa for dummy vk
lucasxia01 Dec 12, 2024
cde2550
try to fix vk gen
lucasxia01 Dec 12, 2024
65cd39c
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 12, 2024
e27bd79
fix build
lucasxia01 Dec 12, 2024
e50483c
fix wasm build hackily
lucasxia01 Dec 12, 2024
5c44b30
fix some yarn errors
lucasxia01 Dec 12, 2024
27f407e
try turning empty nested and private kernel empty to rollup honk circ…
lucasxia01 Dec 12, 2024
9ca4587
fix weird type error (thanks adam!!!!!!)
lucasxia01 Dec 12, 2024
da18a8b
fix yarn formatting
lucasxia01 Dec 12, 2024
16cad70
fix verify_tube
lucasxia01 Dec 13, 2024
f30810f
fix gates report
lucasxia01 Dec 13, 2024
7931884
modify honk_recursion bool so that it also supports ultrarolluphonk a…
lucasxia01 Dec 13, 2024
0719e83
fix -h uses
lucasxia01 Dec 13, 2024
ed2df60
fix one more usage of -h
lucasxia01 Dec 13, 2024
b849f19
fix some tests
lucasxia01 Dec 14, 2024
38eb12c
Merge branch 'master' into lx/ipa-in-rollup
lucasxia01 Dec 14, 2024
d3692ef
make ultra recursive verifier do the breakdown of proof, and upd
lucasxia01 Dec 16, 2024
f56fa31
Merge branch 'lx/ipa-in-rollup' of github.com:AztecProtocol/aztec-pac…
lucasxia01 Dec 17, 2024
4dbf50b
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 17, 2024
dac5484
Merge branch 'master' into lx/ipa-in-rollup
lucasxia01 Dec 17, 2024
0824a93
fix wasm build
lucasxia01 Dec 17, 2024
1e80f9c
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 17, 2024
bd6e4bf
Merge remote-tracking branch 'origin/lx/ipa-in-rollup' into lx/ipa-in…
lucasxia01 Dec 17, 2024
e619c25
try making the IPA claim more legit in dummy vk
lucasxia01 Dec 17, 2024
b2cd39f
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 17, 2024
ae2837d
new test program for ultra rollup honk verification
lucasxia01 Dec 18, 2024
8d4df67
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 18, 2024
0b21b52
change proof sizes to match master
lucasxia01 Dec 18, 2024
3db0fba
fix build
lucasxia01 Dec 18, 2024
65e9996
push the prover toml oops
lucasxia01 Dec 18, 2024
56c00a9
put ipa claim and agg obj in correct order in public inputs
lucasxia01 Dec 19, 2024
a0c992c
fix honk recursion test
lucasxia01 Dec 19, 2024
e002b73
fix test to not double add ipa claims
lucasxia01 Dec 19, 2024
8a4e3c3
fix assertion
lucasxia01 Dec 19, 2024
734792e
fix acir tests
lucasxia01 Dec 19, 2024
821dde5
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 19, 2024
c4c2ffb
update bootstraps
lucasxia01 Dec 19, 2024
8b7e3ea
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 19, 2024
5179487
else if to elif
lucasxia01 Dec 19, 2024
c689bc2
fix regex
lucasxia01 Dec 19, 2024
2053fd6
fix gates report
lucasxia01 Dec 19, 2024
68260bc
update flame graph
lucasxia01 Dec 19, 2024
a9c4dcb
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 20, 2024
1620e02
fix build
lucasxia01 Dec 20, 2024
314c5a2
call self reduce on ipa evaluation after accumulation
lucasxia01 Dec 22, 2024
7a45458
Merge branch 'master' into lx/ipa-in-rollup
lucasxia01 Dec 23, 2024
584d122
Merge remote-tracking branch 'origin/master' into lx/ipa-in-rollup
lucasxia01 Dec 23, 2024
ea7adae
clean up and add TODOs
lucasxia01 Dec 23, 2024
3f12ef1
remove assert
lucasxia01 Dec 24, 2024
9a67a82
init grumpkin crs
lucasxia01 Dec 24, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion aztec-nargo/compile_then_postprocess.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ for artifact in $artifacts_to_process; do

echo "Generating verification key for function $fn_name"
# BB outputs the verification key to stdout as raw bytes, however, we need to base64 encode it before storing it in the artifact
verification_key=$($BB write_vk_for_ivc -h -b ${fn_artifact_path} -o - | base64)
verification_key=$($BB write_vk_for_ivc -b ${fn_artifact_path} -o - | base64)
rm $fn_artifact_path
jq ".functions[$fn_index].verification_key = \"$verification_key\"" $artifact > $artifact.tmp
mv $artifact.tmp $artifact
Expand Down
6 changes: 4 additions & 2 deletions barretenberg/acir_tests/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ function test {
}

local plonk_tests=$(find ./acir_tests -maxdepth 1 -mindepth 1 -type d | \
grep -vE 'verify_honk_proof|double_verify_honk_proof')
grep -vE 'verify_honk_proof|double_verify_honk_proof|verify_rollup_honk_proof')
local honk_tests=$(find ./acir_tests -maxdepth 1 -mindepth 1 -type d | \
grep -vE 'single_verify_proof|double_verify_proof|double_verify_nested_proof')
grep -vE 'single_verify_proof|double_verify_proof|double_verify_nested_proof|verify_rollup_honk_proof')

# barretenberg-acir-tests-sol:
run FLOW=sol ./run_test.sh assert_statement
Expand Down Expand Up @@ -119,6 +119,8 @@ function test {
run SYS=ultra_honk FLOW=prove_then_verify RECURSIVE=true ./run_test.sh assert_statement
run SYS=ultra_honk FLOW=prove_then_verify RECURSIVE=true ./run_test.sh double_verify_honk_proof
run SYS=ultra_honk FLOW=prove_and_verify_program ./run_test.sh merkle_insert
run SYS=ultra_rollup_honk FLOW=prove_and_verify ./run_test.sh verify_rollup_honk_proof


# barretenberg-acir-tests-bb-client-ivc:
run FLOW=prove_then_verify_client_ivc ./run_test.sh 6_array
Expand Down
44 changes: 29 additions & 15 deletions barretenberg/acir_tests/regenerate_verify_honk_proof_inputs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,44 @@ CRS_PATH=~/.bb-crs
BRANCH=master
VERBOSE=${VERBOSE:+-v}

if [ -f $BIN ]; then
BIN=$(realpath $BIN)
if [ -f "$BIN" ]; then
BIN=$(realpath "$BIN")
else
BIN=$(realpath $(which $BIN))
BIN=$(realpath "$(which "$BIN")")
fi

export BRANCH

# the program for which a proof will be recursively verified
# The program for which a proof will be recursively verified
PROGRAM=assert_statement
# the program containing the recursive verifier
RECURSIVE_PROGRAM=verify_honk_proof
# The programs containing the recursive verifier
RECURSIVE_PROGRAMS=(verify_honk_proof verify_rollup_honk_proof)

./reset_acir_tests.sh --programs "$PROGRAM"
./reset_acir_tests.sh --no-rebuild-nargo --programs "$PROGRAM"
cd "acir_tests/$PROGRAM"

TOML_DIR=../../../../noir/noir-repo/test_programs/execution_success/"$RECURSIVE_PROGRAM"
if [ ! -d "$TOML_DIR" ]; then
echo "Error: Directory $TOML_DIR does not exist."
exit 1
fi
# Base directory for TOML outputs
BASE_TOML_DIR=../../../../noir/noir-repo/test_programs/execution_success

for RECURSIVE_PROGRAM in "${RECURSIVE_PROGRAMS[@]}"; do
TOML_DIR="$BASE_TOML_DIR/$RECURSIVE_PROGRAM"

if [ ! -d "$TOML_DIR" ]; then
echo "Error: Directory $TOML_DIR does not exist."
exit 1
fi

echo "Generating recursion inputs for $RECURSIVE_PROGRAM and writing to directory $TOML_DIR"

# Decide the command based on the recursive program
if [[ "$RECURSIVE_PROGRAM" == "verify_rollup_honk_proof" ]]; then
COMMAND="write_recursion_inputs_rollup_honk"
else
COMMAND="write_recursion_inputs_honk"
fi

echo "Generating recursion inputs and writing to directory $TOML_DIR"
$BIN write_recursion_inputs_honk --recursive $VERBOSE -c $CRS_PATH -b ./target/program.json -o "$TOML_DIR"
$BIN "$COMMAND" --recursive $VERBOSE -c "$CRS_PATH" -b ./target/program.json -o "$TOML_DIR"
done

cd ../..
./reset_acir_tests.sh --programs "$RECURSIVE_PROGRAM"
./reset_acir_tests.sh --no-rebuild-nargo --programs "${RECURSIVE_PROGRAMS[@]}"
4 changes: 2 additions & 2 deletions barretenberg/acir_tests/run_acir_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ SKIP_ARRAY+=(regression_5045)
# if HONK is false, we should skip verify_honk_proof
if [ "$HONK" = false ]; then
# Don't run programs with Honk recursive verifier
SKIP_ARRAY+=(verify_honk_proof double_verify_honk_proof)
SKIP_ARRAY+=(verify_honk_proof double_verify_honk_proof verify_rollup_honk_proof)
fi

if [ "$HONK" = true ]; then
# Don't run programs with Plonk recursive verifier(s)
SKIP_ARRAY+=(single_verify_proof double_verify_proof double_verify_nested_proof)
SKIP_ARRAY+=(single_verify_proof double_verify_proof double_verify_nested_proof verify_rollup_honk_proof)
fi

if [ "$CLIENT_IVC_SKIPS" = true ]; then
Expand Down
4 changes: 2 additions & 2 deletions barretenberg/cpp/src/barretenberg/bb/acir_format_getters.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ acir_format::WitnessVector get_witness(std::string const& witness_path)
return acir_format::witness_buf_to_witness_data(witness_data);
}

acir_format::AcirFormat get_constraint_system(std::string const& bytecode_path, bool honk_recursion)
acir_format::AcirFormat get_constraint_system(std::string const& bytecode_path, uint32_t honk_recursion)
{
auto bytecode = get_bytecode(bytecode_path);
return acir_format::circuit_buf_to_acir_format(bytecode, honk_recursion);
Expand All @@ -25,7 +25,7 @@ acir_format::WitnessVectorStack get_witness_stack(std::string const& witness_pat
return acir_format::witness_buf_to_witness_stack(witness_data);
}

std::vector<acir_format::AcirFormat> get_constraint_systems(std::string const& bytecode_path, bool honk_recursion)
std::vector<acir_format::AcirFormat> get_constraint_systems(std::string const& bytecode_path, uint32_t honk_recursion)
{
auto bytecode = get_bytecode(bytecode_path);
return acir_format::program_buf_to_acir_format(bytecode, honk_recursion);
Expand Down
5 changes: 2 additions & 3 deletions barretenberg/cpp/src/barretenberg/bb/api_client_ivc.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ class ClientIVCAPI : public API {

// TODO(https://github.com/AztecProtocol/barretenberg/issues/1162): Efficiently unify ACIR stack parsing
if (input_type == "compiletime_stack") {
auto program_stack =
acir_format::get_acir_program_stack(bytecode_path, witness_path, /*honk_recursion=*/false);
auto program_stack = acir_format::get_acir_program_stack(bytecode_path, witness_path, /*honk_recursion=*/0);
// Accumulate the entire program stack into the IVC
while (!program_stack.empty()) {
auto stack_item = program_stack.back();
Expand All @@ -116,7 +115,7 @@ class ClientIVCAPI : public API {
std::vector<uint8_t> witness_buf =
decompress(reinterpret_cast<uint8_t*>(wit.data()), wit.size()); // NOLINT

AcirFormat constraints = circuit_buf_to_acir_format(constraint_buf, /*honk_recursion=*/false);
AcirFormat constraints = circuit_buf_to_acir_format(constraint_buf, /*honk_recursion=*/0);
WitnessVector witness = witness_buf_to_witness_data(witness_buf);

folding_stack.push_back(AcirProgram{ constraints, witness });
Expand Down
Loading
Loading