diff --git a/barretenberg/Earthfile b/barretenberg/Earthfile index 510f7a0758a..26233dfa6ab 100644 --- a/barretenberg/Earthfile +++ b/barretenberg/Earthfile @@ -110,8 +110,17 @@ barretenberg-acir-tests-bb.js: # We have diminishing returns after 32 cores, and unnecessarily use resources ENV HARDWARE_CONCURRENCY=32 + # TODO(https://github.com/AztecProtocol/aztec-packages/issues/6672): Try to enable double_verify + # Run UltraHonk recursive verification through bb.js on chrome testing multi-threaded browser support. + # TODO: Currently headless webkit doesn't seem to have shared memory so skipping multi-threaded test. + RUN BROWSER=chrome THREAD_MODEL=mt ./run_acir_tests_browser.sh verify_honk_proof + # Run UltraHonk recursive verification through bb.js on chrome testing single-threaded browser support. + RUN BROWSER=chrome THREAD_MODEL=st ./run_acir_tests_browser.sh verify_honk_proof + # Commenting for now as fails intermittently. Unreproducable on mainframe. + # See https://github.com/AztecProtocol/aztec-packages/issues/2104 + #RUN BROWSER=webkit THREAD_MODEL=st ./run_acir_tests_browser.sh 1_mul # TODO(https://github.com/noir-lang/noir/issues/5106) - # TODO(https://github.com/AztecProtocol/aztec-packages/issues/6672)c + # TODO(https://github.com/AztecProtocol/aztec-packages/issues/6672) # Run ecdsa_secp256r1_3x through bb.js on node to check 256k support. RUN BIN=../ts/dest/node/main.js FLOW=prove_then_verify ./run_acir_tests.sh ecdsa_secp256r1_3x # Run a single arbitrary test not involving recursion through bb.js for UltraHonk @@ -124,12 +133,3 @@ barretenberg-acir-tests-bb.js: RUN BIN=../ts/dest/node/main.js FLOW=fold_and_verify_program ./run_acir_tests.sh fold_basic # Run 1_mul through bb.js build, all_cmds flow, to test all cli args. RUN BIN=../ts/dest/node/main.js FLOW=all_cmds ./run_acir_tests.sh 1_mul - # TODO(https://github.com/AztecProtocol/aztec-packages/issues/6672) - # Run 6_array through bb.js on chrome testing multi-threaded browser support. - # TODO: Currently headless webkit doesn't seem to have shared memory so skipping multi-threaded test. - RUN BROWSER=chrome THREAD_MODEL=mt ./run_acir_tests_browser.sh 6_array - # Run 1_mul through bb.js on chrome/webkit testing single threaded browser support. - RUN BROWSER=chrome THREAD_MODEL=st ./run_acir_tests_browser.sh 1_mul - # Commenting for now as fails intermittently. Unreproducable on mainframe. - # See https://github.com/AztecProtocol/aztec-packages/issues/2104 - #RUN BROWSER=webkit THREAD_MODEL=st ./run_acir_tests_browser.sh 1_mul diff --git a/barretenberg/acir_tests/browser-test-app/src/index.ts b/barretenberg/acir_tests/browser-test-app/src/index.ts index 02b94ccff29..a3080453677 100644 --- a/barretenberg/acir_tests/browser-test-app/src/index.ts +++ b/barretenberg/acir_tests/browser-test-app/src/index.ts @@ -9,18 +9,20 @@ async function runTest( witness: Uint8Array, threads?: number ) { - const { UltraPlonkBackend, BarretenbergVerifier } = await import("@aztec/bb.js"); + const { UltraHonkBackend, BarretenbergVerifier } = await import("@aztec/bb.js"); debug("starting test..."); - const backend = new UltraPlonkBackend(bytecode, { threads }); + const backend = new UltraHonkBackend(bytecode, { threads }); const proof = await backend.generateProof(witness); + debug(`getting the verification key...`); const verificationKey = await backend.getVerificationKey(); + debug(`destroying the backend...`); await backend.destroy(); debug(`verifying...`); const verifier = new BarretenbergVerifier({ threads }); - const verified = await verifier.verifyUltraplonkProof(proof, verificationKey); + const verified = await verifier.verifyUltrahonkProof(proof, verificationKey); debug(`verified: ${verified}`); await verifier.destroy(); @@ -41,18 +43,20 @@ function base64ToUint8Array(base64: string) { return bytes; } -// This is the 1_mul test, for triggering via the button click. +// This is the verify_honk_proof test, for triggering via the button click. // Will likely rot as acir changes. -// Update by extracting from ../acir_tests/1_mul/target/* as needed. +// Update by extracting from ../acir_tests/verify_honk_proof. Specifically: +// - The base64 representation of the ACIR is the bytecode section of program.json +// - The base64 representation of the witness is obtained by encoding witness.gz const acir = inflate( base64ToUint8Array( - "H4sIAAAAAAAA/+2W3W6CQBCFB7AqVak/VdM0TXmAXuzyo3BXH6Wm+P6P0G5cZCS2N5whkrCJmWUjh505zPKFRPRB5+H8/lwbQ3bt1q49e82HY+OnjbHaJUmxjwod6y8V5ccsVUl63GU602mWfkdZHBdZku3zY75XuU7iQp/SPD6p8xg014qslvbY/v7bs2o29ACnpfh+H9h8YKPL1jwbhwI5Ue059ToGN9agD5cw6UFAd0i4l18q7yHeI8UkRWuqGg6PqkaR2Gt5OErWF6StBbUvz+C1GNk4Zmu+jeUHxowh86b0yry3B3afw6LDNA7snlv/cf7Q8dlaeX9AMr0icEAr0QO4fKmNgSFVBDCmigCkGglNFC8k05QeZp8XWhkBcx4DfZGqH9pnH+hFW+To47SuyPGRzXtybKjp24KidSd03+Ro8p7gPRIlxwlwn9LkaA7psXB9Qdqtk+PUxhlb68kRo9kKORoDQ6rIcUZy5Fg2EpooXkmmKdHkOAXmPAP6IlU/tM8BdY8cA5Ihxyc278mxoWZgC4rWndN9k6PJe473SJQc59QdcjSH9Ey4viDt1slxYeOSrfXkiNFshRyNgSFV5LgkOXIsGwlNFG8k05RoclwAc14CfZGqH9rnFXWPHFckQ47PbN6TY0PNlS0oWndN902OJu813iNRclxTd8jRHNJL4fqCtFsnx42NW7bWkyNGsxVyNAaGVJHjluTIsWwkNFG8k0xToslxA8x5C/RFqn4u2GcPmDOwfoofTi5df4zq4we8wQQCRCoAAA==" + "H4sIAAAAAAAA/2XaY5CeZxhH8eeNbXNj297YqJ2mqW236TZ1Y9u2bdu2bTtpT5/NzJnpziT57e7k407u/7kSCcKPFnGCIBJr/kz5768Yfc7Hw1hH5DhyXDmeHF9OICeUE8mJ5SRyUjmZnFxOIaeUU8mp5TRyWjmdnF7OIGeUM8mZ5SxyVjmbnF3OIeeUo+Rccm45j5xXzifnlwvIBeVCcmG5iFxULiYXl0vIJeVScmm5jFxWLieXlyvIFeVKcmW5ilxVriZXl2vI0XJNuZZcW64j15XryfXlBnJDuZHcWG4iN5Wbyc3lFvIT8pPyU/LT8jPys/Jz8vPyC/KL8kvyy/Irckv5VbmV/JrcWn5dfkN+U35Lflt+R35Xfk9+X/5A/lD+SP5Y/kT+VP5M/lz+Qv5S/kr+Wv5G/lb+Tv5e/kH+UW4j/xTrTXwS+7UYff9nua38i/yr/Jv8u/yH/Kf8l/y33E5uL3eQO8qd5M5yF7mr3E3uLveQe8q95N5yH7mv3E/uLw+QB8qD5MHyEHmoPEweLo+QR8qj5NHyGHmsPE4eL0+QJ8qT5MnyFHmqPE2eLs+QZ8qz5NnyHHmuPE+eLy+QF8qL5MXyEnmpvExeLq+QV8qr5NXyGnmtvE5eL2+QN8qb5M3yFnmrvE3eLu+Qd8q75N3yHnmvvE/eLx+QD8qH5MPyEfmofEw+Lp+QT8qn5NPyGfmsfE4+L1+QL8qX5MvyFfmqfE2+Lt+Qb8q35NvyHfmufE++Lz+QH8qPZH577IgcR44rx5PjywnkhHIiObGcRE4qJ5OTyynklHIqObWcRk4rp5PTyxnkjHImObOcRc4qZ5OzyznknHKUnEvOLeeR88r55PxyAbmgXEguLBeRi8rF5OJyCbmkXEouLZeRy8rl5PJyBbmiXEmuLFeRq8rV5OpyDTlarinXkmvLdeS6cj25vtxAbig3khvLTeSmcjO5udxCfkJ+Un5Kflp+Rn5Wfk5+Xn5BflF+SX5ZfkVuKb8qt5Jfk1vLr8tvyG/Kb8lvy+/I78rvye/LH8gfyh/JH8ufyJ/Kn8mfy1/IX8pfyV/L38jfyt/J38s/yD/KbeSf5Bj5Z7mt/Iv8q/yb/Lv8h/yn/Jf8t9xObi93kDvKneTOche5q9xN7i73kHvKveTech+5r9xP7i8PkAfKg+TB8hB5qDxMHi6PkEfKo+TR8hh5rDxOHi9PkCfKk+TJ8hR5qjxNni7PkGfKs+TZ8hx5rjxPni8vkBfKi+TF8hJ5qbxMXi6vkFfKq+TV8hp5rbxOXi9vkDfKm+TN8hZ5q7xN3i7vkHfKu+Td8h55r7xP3i8fkA/Kh+TD8hH5qHxMPi6fkE/Kp+TT8hn5rHxOPi9fkC/Kl+TL8hX5qnxNvi7fkG/Kt+Tb8h35rnxPvi8/kB/Kj2SC/2NH5DhyXDmeHF9OICeUE8mJ5SRyUjmZnFxOIaeUU8mp5TRyWjmdnF7OIGeUM8mZ5SxyVjmbnF3OIeeUo+Rccm45j5xXzifnlwvIBeVCcmG5iFxULiYXl0vIJeVScmm5jFxWLieXlyvIFeVKcmW5ilxVriZXl2vI0XJNuZZcW64j15XryfXlBnJDuZHcWG4iN5WbyUHsn831tRb+OQ7Ce10Q+/VAf4dP48Z+nzse9zvudtzruNNxn+Muxz2OOxz3N+5u3Nu4s3Ff467GPY07Gvcz7mbcy7iTcR/jLsY9jDtYjiC8e0UF4Z0rdxDetbhnccfifsXdinsVdyruU9yluEdxh+L+xN2JexN3Ju5L3JW4J3FH4n7E3Yh7EXci7kPchbgHcQeqHoR3n+ggvPPUCsK7Dvcc7jjcb7jbcK/hTsN9hrsM9xjuMNxfuLtwb+HOwn2Fuwr3FO4o3E+4m3Av4U7CfYS7CPcQ7iAtg/Du0SoI7xytg/CuwT2DOwb3C+4W3Cu4U3Cf4C7BPYI7BPcH7g7cG7gzcF/grsA9gTsC9wPuBtwLuBNwH+AuwD2AO0CbIOz+MUHY99sGYc+n49Pv6fb0ejo9fZ4uT4+nw9Pf6e70djo7fZ2uTk+no9PP6eb0cjo5fZwuTg+ng9O/BwZh7x4chH17aBD2bDo2/ZpuTa+mU9On6dL0aDo0/ZnuTG+mM9OX6cr0ZDoy/ZhuTC+mE9OH6cL0YDow/XdhEPbexUHYd5cGYc+l49Jv6bb0WjotfZYuS4+lw9Jf6a70VjorfZWuSk+lo9JP6ab0UjopfZQuSg+lg9I/DwZh7zwchH3zaBD2TDom/ZJuSa+kU9In6ZL0SDok/ZHuSG+kM9IX6Yr0RDoi/ZBuSC+kE9IH6YL0QDrg4/5H7+OHn75H16Pn0fHod3Q7eh2djj5Hl6PH0eHob3Q3ehudjb5GV6On0dHoZ3QzehmdjD5GF6OH0cHoX3QveldUJOxbdC16Fh2LfkW3olfRqehTdCl6FB2K/kR3ojfRmehLdCV6Eh2JfkQ3ohfRiehDdCF6EB2I/kP3ofdER8K+Q9eh59Bx6Dd0G3oNnYY+Q5ehx9Bh6C90F3oLnYW+Qlehp9BR6Cd0E3oJnYQ+Qhehh9BB6B90D3pHq0jYN+ga9Aw6Bv2CbkGvoFPQJ+gS9Ag6BP2B7kBvoDPQF+gK9AQ6Av2AbkAvoBPQB+gC9AA6APuf3c/ej4mE+55dz55nx7Pf2e3sdXY6+5xdzh5nh7O/2d3sbXY2+5pdzZ5mR7Of2c3sZXYy+5hdzB5mB7N/2b3s3cGRcN+ya9mz7Fj2K7uVvcpOZZ+yS9mj7FD2J7uTvcnOZF+yK9mT7Ej2I7uRvchOZB+yC9mD7ED2H7uPvbc4Eu47dh17jh3HfmO3sdfYaewzdhl7jB3G/mJ3sbfYWewrdhV7ih3FfmI3sZfYSewjdhF7iB3E/mH3sHcOR8J9w65hz7Bj2C/sFvYKO4V9wi5hj7BD2B/sDvYGO4N9wa5gT7Aj2A/sBvYCO4F9wC5gD7AD/nv/R8L3Pv/w877nXc97nnc873fe7bzXeafzPuddznucdzjvb97dvLd5Z/O+5l3Ne5p3NO9n3s28l3kn8z7mXcx7mHcw71/evbx3eefyvuVdy3uWdyzvV96tvFd5p/I+5V3Ke5R3KO9P3p28N3ln8r7kXcl7knck70fejbwXeSfyPuRdyHuQdyDvP959vPd45/G+413He453HO833m2813in8T7jXcZ7jHcY7y/eXf6/VM31nvrfxz+gr1AKfSUAAA==" ) ); const witness = inflate( base64ToUint8Array( - "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" ) ); diff --git a/barretenberg/acir_tests/browser-test-app/yarn.lock b/barretenberg/acir_tests/browser-test-app/yarn.lock index 2e0e1b3e195..a4762d5b6c8 100644 --- a/barretenberg/acir_tests/browser-test-app/yarn.lock +++ b/barretenberg/acir_tests/browser-test-app/yarn.lock @@ -3,7 +3,7 @@ "@aztec/bb.js@../../ts": - version "0.27.2" + version "0.57.0" dependencies: comlink "^4.4.1" commander "^10.0.1" @@ -2973,8 +2973,3 @@ yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yarn-upgrade-all@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.7.2.tgz#5d2afa9230661c55f22d3f848f22258db732ae20" - integrity sha512-iVxmoBuNdpxeahAIehJ039Pp6S8zQ/qTENQRMV5hp7x/2tLGUzytCODIKZFjfUwcRRKT3boGgHheUEWC7+VlQw== diff --git a/barretenberg/acir_tests/headless-test/yarn.lock b/barretenberg/acir_tests/headless-test/yarn.lock index 058faaf6185..8826bed6c29 100644 --- a/barretenberg/acir_tests/headless-test/yarn.lock +++ b/barretenberg/acir_tests/headless-test/yarn.lock @@ -268,10 +268,10 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -commander@^12.0.0: - version "12.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" - integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== cosmiconfig@9.0.0: version "9.0.0" @@ -931,11 +931,6 @@ yargs@17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yarn-upgrade-all@^0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.7.2.tgz#5d2afa9230661c55f22d3f848f22258db732ae20" - integrity sha512-iVxmoBuNdpxeahAIehJ039Pp6S8zQ/qTENQRMV5hp7x/2tLGUzytCODIKZFjfUwcRRKT3boGgHheUEWC7+VlQw== - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" diff --git a/barretenberg/acir_tests/run_acir_tests.sh b/barretenberg/acir_tests/run_acir_tests.sh index 081428ad0c8..1b8d413afe6 100755 --- a/barretenberg/acir_tests/run_acir_tests.sh +++ b/barretenberg/acir_tests/run_acir_tests.sh @@ -59,15 +59,15 @@ function test() { cd $1 set +e - start=$(date +%s%3N) + start=$SECONDS $FLOW_SCRIPT result=$? - end=$(date +%s%3N) + end=$SECONDS duration=$((end - start)) set -eu if [ $result -eq 0 ]; then - echo -e "\033[32mPASSED\033[0m ($duration ms)" + echo -e "\033[32mPASSED\033[0m ($duration s)" else echo -e "\033[31mFAILED\033[0m" touch "$error_file" diff --git a/barretenberg/cpp/CMakePresets.json b/barretenberg/cpp/CMakePresets.json index c525451b8c0..da2930e37a6 100644 --- a/barretenberg/cpp/CMakePresets.json +++ b/barretenberg/cpp/CMakePresets.json @@ -375,6 +375,7 @@ "WASI_SDK_PREFIX": "/opt/wasi-sdk", "CC": "$env{WASI_SDK_PREFIX}/bin/clang", "CXX": "$env{WASI_SDK_PREFIX}/bin/clang++", + "CXXFLAGS": "-DBB_VERBOSE", "AR": "$env{WASI_SDK_PREFIX}/bin/llvm-ar", "RANLIB": "$env{WASI_SDK_PREFIX}/bin/llvm-ranlib" }, @@ -392,6 +393,7 @@ { "name": "wasm-dbg", "displayName": "Build for debug WASM", + "binaryDir": "build-wasm-dbg", "description": "Build with wasi-sdk to create debug wasm", "inherits": "wasm", "environment": { diff --git a/barretenberg/cpp/src/barretenberg/common/log.cpp b/barretenberg/cpp/src/barretenberg/common/log.cpp index 94ff4f0045a..60c9679cedb 100644 --- a/barretenberg/cpp/src/barretenberg/common/log.cpp +++ b/barretenberg/cpp/src/barretenberg/common/log.cpp @@ -5,7 +5,7 @@ #ifndef __wasm__ bool verbose_logging = std::getenv("BB_VERBOSE") == nullptr ? false : std::string(std::getenv("BB_VERBOSE")) == "1"; #else -bool verbose_logging = false; +bool verbose_logging = true; #endif // Used for `debug` in log.hpp. diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp index 99d27ce387c..7f357b0f736 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/acir_format.cpp @@ -435,6 +435,8 @@ UltraCircuitBuilder create_circuit(AcirFormat& constraint_system, build_constraints( builder, constraint_system, has_valid_witness_assignments, honk_recursion, collect_gates_per_opcode); + vinfo("created circuit"); + return builder; }; diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.cpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.cpp index 9d065853096..d4bf4f3e46c 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.cpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.cpp @@ -25,30 +25,6 @@ secp256k1_ct::g1_ct ecdsa_convert_inputs(Builder* ctx, const bb::secp256k1::g1:: return { x, y }; } -// vector of bytes here, assumes that the witness indices point to a field element which can be represented -// with just a byte. -// notice that this function truncates each field_element to a byte -template -bb::stdlib::byte_array ecdsa_array_of_bytes_to_byte_array(Builder& builder, - std::array vector_of_bytes) -{ - using byte_array_ct = bb::stdlib::byte_array; - using field_ct = bb::stdlib::field_t; - - byte_array_ct arr(&builder); - - // Get the witness assignment for each witness index - // Write the witness assignment to the byte_array - for (const auto& witness_index : vector_of_bytes) { - - field_ct element = field_ct::from_witness_index(&builder, witness_index); - size_t num_bytes = 1; - - byte_array_ct element_bytes(element, num_bytes); - arr.write(element_bytes); - } - return arr; -} witness_ct ecdsa_index_to_witness(Builder& builder, uint32_t index) { fr value = builder.get_variable(index); diff --git a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.hpp b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.hpp index 3a00798ab2f..3cbfae1ded6 100644 --- a/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.hpp +++ b/barretenberg/cpp/src/barretenberg/dsl/acir_format/ecdsa_secp256k1.hpp @@ -44,7 +44,25 @@ template void dummy_ecdsa_constraint(Builder& builder, EcdsaS witness_ct ecdsa_index_to_witness(Builder& builder, uint32_t index); template bb::stdlib::byte_array ecdsa_array_of_bytes_to_byte_array(Builder& builder, - std::array vector_of_bytes); + std::array vector_of_bytes) +{ + using byte_array_ct = bb::stdlib::byte_array; + using field_ct = bb::stdlib::field_t; + + byte_array_ct arr(&builder); + + // Get the witness assignment for each witness index + // Write the witness assignment to the byte_array + for (const auto& witness_index : vector_of_bytes) { + + field_ct element = field_ct::from_witness_index(&builder, witness_index); + size_t num_bytes = 1; + + byte_array_ct element_bytes(element, num_bytes); + arr.write(element_bytes); + } + return arr; +} // We have the implementation of this template in the header as this method is used // by other ecdsa constraints over different curves (e.g. secp256r1). diff --git a/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck.hpp b/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck.hpp index 5b7e8df06b2..c9904412467 100644 --- a/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck.hpp +++ b/barretenberg/cpp/src/barretenberg/sumcheck/sumcheck.hpp @@ -229,6 +229,7 @@ template class SumcheckProver { // release memory? // All but final round // We operate on partially_evaluated_polynomials in place. } + vinfo("completed sumcheck round 0"); for (size_t round_idx = 1; round_idx < multivariate_d; round_idx++) { #ifdef TRACY_MEMORY @@ -254,6 +255,7 @@ template class SumcheckProver { gate_separators.partially_evaluate(round_challenge); round.round_size = round.round_size >> 1; + vinfo("completed sumcheck round ", round_idx); } // Check that the challenges \f$ u_0,\ldots, u_{d-1} \f$ do not satisfy the equation \f$ u_0(1-u_0) + \ldots + // u_{d-1} (1 - u_{d-1}) = 0 \f$. This equation is satisfied with probability ~ 1/|FF|, in such cases the prover diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp index 3267249f982..4e98d307bfe 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_prover.cpp @@ -53,6 +53,7 @@ template void DeciderProver_::execute_pcs_rounds( proving_key->proving_key.commitment_key = std::make_shared(proving_key->proving_key.circuit_size); } + vinfo("made commitment key"); using OpeningClaim = ProverOpeningClaim; const OpeningClaim prover_opening_claim = @@ -62,7 +63,9 @@ template void DeciderProver_::execute_pcs_rounds( sumcheck_output.challenge, proving_key->proving_key.commitment_key, transcript); + vinfo("executed multivariate-to-univarite reduction"); PCS::compute_opening_proof(proving_key->proving_key.commitment_key, prover_opening_claim, transcript); + vinfo("computed opening proof"); } template HonkProof DeciderProver_::export_proof() @@ -76,10 +79,12 @@ template HonkProof DeciderProver_::construct_proo BB_OP_COUNT_TIME_NAME("Decider::construct_proof"); // Run sumcheck subprotocol. + vinfo("executing relation checking rounds..."); execute_relation_check_rounds(); // Fiat-Shamir: rho, y, x, z // Execute Zeromorph multilinear PCS + vinfo("executing pcd opening rounds..."); execute_pcs_rounds(); return export_proof(); diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.hpp b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.hpp index e2fe206d9e0..25762158e61 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.hpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/decider_proving_key.hpp @@ -47,6 +47,8 @@ template class DeciderProvingKey_ { std::shared_ptr commitment_key = nullptr) { BB_OP_COUNT_TIME_NAME("DeciderProvingKey(Circuit&)"); + vinfo("creating decider proving key"); + circuit.finalize_circuit(/*ensure_nonzero=*/true); // Set flag indicating whether the polynomials will be constructed with fixed block sizes for each gate type @@ -76,6 +78,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("constructing proving key"); #endif + vinfo("constructing proving key"); proving_key = ProvingKey(dyadic_circuit_size, circuit.public_inputs.size(), commitment_key); if (IsGoblinFlavor && !is_structured) { // Allocate full size polynomials @@ -86,6 +89,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("allocating wires"); #endif + vinfo("allocating wires"); for (auto& wire : proving_key.polynomials.get_wires()) { wire = Polynomial::shiftable(proving_key.circuit_size); } @@ -94,6 +98,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("allocating gate selectors"); #endif + vinfo("allocating gate selectors"); // Define gate selectors over the block they are isolated to for (auto [selector, block] : zip_view(proving_key.polynomials.get_gate_selectors(), circuit.blocks.get_gate_blocks())) { @@ -116,6 +121,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("allocating non-gate selectors"); #endif + vinfo("allocating non-gate selectors"); // Set the other non-gate selector polynomials to full size for (auto& selector : proving_key.polynomials.get_non_gate_selectors()) { selector = Polynomial(proving_key.circuit_size); @@ -125,6 +131,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("allocating ecc op wires and selector"); #endif + vinfo("allocating ecc op wires and selector"); // Allocate the ecc op wires and selector const size_t ecc_op_block_size = circuit.blocks.ecc_op.get_fixed_size(is_structured); const size_t op_wire_offset = Flavor::has_zero_row ? 1 : 0; @@ -164,6 +171,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("allocating table polynomials"); #endif + vinfo("allocating table polynomials"); ASSERT(dyadic_circuit_size > max_tables_size); // Allocate the table polynomials @@ -177,6 +185,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("allocating sigmas and ids"); #endif + vinfo("allocating sigmas and ids"); for (auto& sigma : proving_key.polynomials.get_sigmas()) { sigma = typename Flavor::Polynomial(proving_key.circuit_size); } @@ -187,6 +196,7 @@ template class DeciderProvingKey_ { { ZoneScopedN("allocating lookup read counts and tags"); // Allocate the read counts and tags polynomials + vinfo("allocating lookup read counts and tags"); proving_key.polynomials.lookup_read_counts = typename Flavor::Polynomial(max_tables_size, dyadic_circuit_size, table_offset); proving_key.polynomials.lookup_read_tags = @@ -195,6 +205,7 @@ template class DeciderProvingKey_ { { ZoneScopedN("allocating lookup and databus inverses"); // Allocate the lookup_inverses polynomial + vinfo("allocating lookup and databus inverses"); const size_t lookup_offset = static_cast(circuit.blocks.lookup.trace_offset); // TODO(https://github.com/AztecProtocol/barretenberg/issues/1033): construct tables and counts // at top of trace @@ -224,6 +235,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("constructing z_perm"); #endif + vinfo("constructing z_perm"); // Allocate the z_perm polynomial proving_key.polynomials.z_perm = Polynomial::shiftable(proving_key.circuit_size); } @@ -232,6 +244,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("allocating lagrange polynomials"); #endif + vinfo("allocating lagrange polynomials"); // First and last lagrange polynomials (in the full circuit size) proving_key.polynomials.lagrange_first = Polynomial(1, dyadic_circuit_size, 0); proving_key.polynomials.lagrange_last = Polynomial(1, dyadic_circuit_size, dyadic_circuit_size - 1); @@ -248,12 +261,14 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("constructing prover instance after trace populate"); #endif + vinfo("constructing prover instance after trace populate"); // If Goblin, construct the databus polynomials if constexpr (IsGoblinFlavor) { #ifdef TRACY_MEMORY ZoneScopedN("constructing databus polynomials"); #endif + vinfo("constructing databus polynomials"); construct_databus_polynomials(circuit); } @@ -265,6 +280,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("constructing lookup table polynomials"); #endif + vinfo("constructing lookup table polynomials"); construct_lookup_table_polynomials( proving_key.polynomials.get_tables(), circuit, dyadic_circuit_size); } @@ -273,6 +289,7 @@ template class DeciderProvingKey_ { #ifdef TRACY_MEMORY ZoneScopedN("constructing lookup read counts"); #endif + vinfo("constructing lookup read counts"); construct_lookup_read_counts(proving_key.polynomials.lookup_read_counts, proving_key.polynomials.lookup_read_tags, circuit, diff --git a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.cpp b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.cpp index 2470b6a1c15..b7554a90f96 100644 --- a/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.cpp +++ b/barretenberg/cpp/src/barretenberg/ultra_honk/ultra_prover.cpp @@ -50,11 +50,14 @@ template void UltraProver_::generate_gate_challen template HonkProof UltraProver_::construct_proof() { OinkProver oink_prover(proving_key, transcript); + vinfo("created oink prover"); oink_prover.prove(); + vinfo("created oink proof"); generate_gate_challenges(); DeciderProver_ decider_prover(proving_key, transcript); + vinfo("created decider prover"); return decider_prover.construct_proof(); } diff --git a/barretenberg/ts/scripts/build_wasm.sh b/barretenberg/ts/scripts/build_wasm.sh index d7aa1e0dee0..b12348a16e8 100755 --- a/barretenberg/ts/scripts/build_wasm.sh +++ b/barretenberg/ts/scripts/build_wasm.sh @@ -4,8 +4,8 @@ set -e if [ -z "$SKIP_CPP_BUILD" ]; then # Build the wasms and strip debug symbols. cd ../cpp - cmake --preset wasm-threads && cmake --build --preset wasm-threads - cmake --preset wasm && cmake --build --preset wasm + cmake --preset wasm-threads -DCMAKE_MESSAGE_LOG_LEVEL=Warning && cmake --build --preset wasm-threads + cmake --preset wasm -DCMAKE_MESSAGE_LOG_LEVEL=Warning && cmake --build --preset wasm ./scripts/strip-wasm.sh cd ../ts fi diff --git a/barretenberg/ts/src/barretenberg/index.ts b/barretenberg/ts/src/barretenberg/index.ts index 1d225f6f060..471a3df41af 100644 --- a/barretenberg/ts/src/barretenberg/index.ts +++ b/barretenberg/ts/src/barretenberg/index.ts @@ -56,7 +56,8 @@ export class Barretenberg extends BarretenbergApi { async initSRSForCircuitSize(circuitSize: number): Promise { const crs = await Crs.new(circuitSize + Math.floor((circuitSize * 6) / 10) + 1, this.options.crsPath); - await this.commonInitSlabAllocator(circuitSize); + // TODO(https://github.com/AztecProtocol/barretenberg/issues/1129): Do slab allocator initialization? + // await this.commonInitSlabAllocator(circuitSize); await this.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data())); } diff --git a/barretenberg/ts/src/examples/simple.rawtest.ts b/barretenberg/ts/src/examples/simple.rawtest.ts index bc705341b58..77151d92862 100644 --- a/barretenberg/ts/src/examples/simple.rawtest.ts +++ b/barretenberg/ts/src/examples/simple.rawtest.ts @@ -12,8 +12,9 @@ async function main() { debug('starting test...'); const api = await Barretenberg.new(); - // Important to init slab allocator as first thing, to ensure maximum memory efficiency. - await api.commonInitSlabAllocator(CIRCUIT_SIZE); + // // Important to init slab allocator as first thing, to ensure maximum memory efficiency. + // TODO(https://github.com/AztecProtocol/barretenberg/issues/1129): Do slab allocator initialization? + // await api.commonInitSlabAllocator(CIRCUIT_SIZE); // Plus 1 needed! const crs = await Crs.new(CIRCUIT_SIZE + 1); diff --git a/barretenberg/ts/src/examples/simple.test.ts b/barretenberg/ts/src/examples/simple.test.ts index 29405ebc84d..5b36f8f753a 100644 --- a/barretenberg/ts/src/examples/simple.test.ts +++ b/barretenberg/ts/src/examples/simple.test.ts @@ -8,11 +8,12 @@ describe('simple', () => { beforeAll(async () => { api = await Barretenberg.new(); - // Important to init slab allocator as first thing, to ensure maximum memory efficiency. - const CIRCUIT_SIZE = 2 ** 19; - await api.commonInitSlabAllocator(CIRCUIT_SIZE); + // // Important to init slab allocator as first thing, to ensure maximum memory efficiency. + // TODO(https://github.com/AztecProtocol/barretenberg/issues/1129): Do slab allocator initialization? + // const CIRCUIT_SIZE = 2 ** 19; + // await api.commonInitSlabAllocator(CIRCUIT_SIZE); - const crs = await Crs.new(2 ** 19 + 1); + const crs = await Crs.new(2 ** 20 + 1); await api.srsInitSrs(new RawBuffer(crs.getG1Data()), crs.numPoints, new RawBuffer(crs.getG2Data())); }, 60000); diff --git a/barretenberg/ts/src/main.ts b/barretenberg/ts/src/main.ts index 736ee0b7bf7..6ed32aa0e17 100755 --- a/barretenberg/ts/src/main.ts +++ b/barretenberg/ts/src/main.ts @@ -71,8 +71,9 @@ async function initUltraPlonk(bytecodePath: string, crsPath: string, subgroupSiz // Plus 1 needed! (Move +1 into Crs?) const crs = await Crs.new(subgroupSize + Math.floor((subgroupSize * 6) / 10) + 1, crsPath); - // Important to init slab allocator as first thing, to ensure maximum memory efficiency for Plonk. - await api.commonInitSlabAllocator(subgroupSize); + // // Important to init slab allocator as first thing, to ensure maximum memory efficiency for Plonk. + // TODO(https://github.com/AztecProtocol/barretenberg/issues/1129): Do slab allocator initialization? + // await api.commonInitSlabAllocator(subgroupSize); // Load CRS into wasm global CRS state. // TODO: Make RawBuffer be default behavior, and have a specific Vector type for when wanting length prefixed.