aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* feat(zkvms_host_io): Rename argument and metrics output "repeats" to "runs"Kamen Mladenov2025-05-052-4/+4
|
* fix(zkvms/zkwasm): Change default output paths to /tmpKamen Mladenov2025-05-052-5/+5
|
* fix(zkvms_guest_io): Expect instead of unwrap temporary filesKamen Mladenov2025-05-021-2/+8
|
* fix(zkvms_guest_io): Print a string above the command logKamen Mladenov2025-05-021-0/+1
| | | | | Thus, if a user sees "Command log" in their output, they'll be able to easily find where in the codebase the log is outputted.
* chore: nix fmtKamen Mladenov2025-05-023-23/+17
|
* chore: cargo fmtKamen Mladenov2025-05-0216-62/+142
|
* feat(zkvms_guest_io): Output proof sizeKamen Mladenov2025-05-028-3/+52
| | | | | | | In each zkVM we'll write the size to /tmp/proof_size and then guest_io will read that value and place it inside our metrics output. This is not the most elegant, and in certain zkVMs the file output is a part of the benchmark timing, but it will have to do.
* feat(zkvms_guest_io): Output command error when it exits unsuccessfullyKamen Mladenov2025-05-021-3/+9
|
* feat(zkvms_guest_io): Add "metadata" fields to metrics outputKamen Mladenov2025-05-023-6/+27
| | | | These are the zkvm name, rev, guest name and benchmarks repo rev
* feat(zkvms_guest_io): Add hardware information to metrics outputKamen Mladenov2025-05-023-1/+319
|
* fix(zkvms io): More detailed errors on metrics output failureKamen Mladenov2025-05-022-4/+4
|
* feat(zkvms_guest_io): Track and output memory usageKamen Mladenov2025-05-023-10/+29
| | | | | | We're using benchexec's runexec to track how much memory our program uses. Because of nix compatibility troubles, for now we've disabled runexec's container feature. This could result in less accurate data.
* feat(zkvms_guest_io): Allow output to be emmited into a fileKamen Mladenov2025-05-021-1/+30
|
* feat(zkvms_guest_io): Run all operations and output json formatKamen Mladenov2025-05-023-33/+68
| | | | | | | | | Following the new output format, we'll run the guest program for each zkVM, for each operation (execute, prove, verify with --benchmark flag). Then we'll combine the resultant JSON outputs into one big JSON object. For now we're only printing the result object. Later we'll add the ability to write it into any file.
* fix(zkvms_host_io): Truncate output file in emit_benchmark_results when ↵Kamen Mladenov2025-05-021-0/+1
| | | | | | | | | | | | appropriate If we're not appending to a file with contents, then when we write our data, we're going to be overwriting the old data. If the old data is longer than the new one, we'll have some leftover text in the end, which will cause a problem with JSON parsing. We'll be truncating the file (i.e. emptying it out), but only when not appending to it.
* feat(zkvms_host_io): Implement new output format for zkvm/guestKamen Mladenov2025-05-028-131/+1393
|
* feat(zkvms_host_io): Add json dependencyKamen Mladenov2025-05-0213-428/+1960
|
* feat(zkvms_host_io): Move metrics output from the benchmarkable macro to ↵Kamen Mladenov2025-05-022-58/+69
| | | | zkvsm_host_io lib
* feat(guests/rsa): Use risc0 precompilesKamen Mladenov2025-04-243-12/+112
|
* feat(zkvms/risc0): Use unstable featureKamen Mladenov2025-04-243-3/+9
|
* chore: Update mcl-blockchain dependencyKamen Mladenov2025-04-2423-587/+774
| | | | | | There are no package version updates. The primary difference is that RISC0 is now compiled with the unstable feature. All other hash updates come from the switch from rust-bin to fenix.
* feat(guests): Add rsa benchmarkKamen Mladenov2025-04-239-0/+1057
|
* fix(zkvms/zkwasm): Explicit type in argumentKamen Mladenov2025-04-231-1/+1
| | | | | In certain cases, we would get errors that the "x" type cannot be inferred.
* fix(zkvmLib): Don't remove final entry in lockfileKamen Mladenov2025-04-231-0/+1
| | | | | | | | The AWK script goes to the next line when a property is found. If the lock file ends on a property, the next line will be "fetched", but that is after the end of the file, so we'll never reach the printing logic. We're adding a blank line to the end of the lock file, so we never hit this edge case.
* fix(zkvms/zkm): Include string in guest wrapperKamen Mladenov2025-04-231-1/+1
|
* fix(zkvms_host_io/input_macros): Add comma on public_types countKamen Mladenov2025-04-231-1/+1
| | | | | | The `sep` variable is used below, in `output_type`, where the public types are laid out. Before, we checked the count of all types, including private ones, which caused a crash when we have no private inputs.
* feat(guests/sha256): Add SP1 and RISC0 precompile usageKamen Mladenov2025-04-143-7/+39
|
* feat(guests/keccak): Add SP1 and RISC0 precompile usageKamen Mladenov2025-04-143-6/+35
|
* feat(guests/keccak): Add ZKM precompile function callKamen Mladenov2025-04-145-9/+169
|
* fix(zkvmLib): Add zkVM feature on cargo addKamen Mladenov2025-04-141-1/+1
| | | | | `cargo add` modifies the Cargo.lock, and optional dependencies will be removed if the feature is not passed through
* feat(update-nix-dependencies): Use flake's nix-blockchain-development ↵Kamen Mladenov2025-04-142-18/+27
| | | | | | | | | | | instead of default To get the new Nix outPaths for all zkVMs, we used to execute a `nix run` command, which found the paths from the nix-blockchain-development repo, default branch on latest commit. Since that could differ from what repo our flake actually uses, we're updating the logic.
* feat(guests): Rename sha3 to keccakKamen Mladenov2025-04-146-1/+1
|
* feat(guests): Rename sha2 to sha256Kamen Mladenov2025-04-146-1/+1
|
* feat(guests): Add fibonacci implementation using matrix exponentiationKamen Mladenov2025-04-107-0/+340
| | | | | | Originally tried by Dimo Dimov Co-authored-by: Dimo99 <dimodimov1999@gmail.com>
* feat(guests): Add SHA3 programKamen Mladenov2025-04-106-0/+535
|
* feat(guests): Add SHA2 programKamen Mladenov2025-04-096-0/+533
| | | | Simple program which tests the SHA256 hashing algorithm
* fix(zkvms): Fix non-braced usages of grouped methodsKamen Mladenov2025-04-072-4/+4
| | | | | | Before grouping transformed vec![a,b,...] into "(a,b,...)", but with FunctionDefinition, grouping transforms vec![a,b,...] into "a,b,...". This change wasn't reflected in Nexus and ZKM
* feat(zkvms/zkwasm); Update to use FunctionDefinitionKamen Mladenov2025-04-071-16/+6
|
* feat(zkvms/zkm): Update to use FunctionDefinitionKamen Mladenov2025-04-071-21/+5
|
* feat(zkvms/sp1): Update to use FunctionDefinitionKamen Mladenov2025-04-071-17/+17
|
* feat(zkvms/risc0): Update to use FunctionDefinitionKamen Mladenov2025-04-071-20/+17
|
* feat(zkvms/jolt): Update to use FunctionDefinitionKamen Mladenov2025-04-073-21/+417
|
* feat(zkvms/nexus): Update to use FunctionDefinitionKamen Mladenov2025-04-072-14/+7
|
* feat(zkvms_host_io): Update to use FunctionDefinitionKamen Mladenov2025-04-071-77/+36
|
* feat(guests_macro): Replace parse_fn mod with structKamen Mladenov2025-04-073-229/+235
| | | | | | | | | | | The old method of having functions for every parsing action of a function definition produced messy results. We're replacing it with a struct which will hold a wide assortment of parsed values. This makes the interface much sleaker with only a minor increase in code. The downside is a lot of data gets repeated, however since this struct will only be used in macros, i.e. compile-time, that doesn't matter too much.
* fix(zkvms/zkm): Update SDK and remove hackKamen Mladenov2025-04-042-6/+4
| | | | | | | | | | Recently ZKM introduced a bug, where SNARK_SETUP would crash, but the witness would be generated. So we introduced a hack where we would run SNARK_SETUP, ignore the crash and rerun the program again, without SNARK_SETUP. Now they fixed it, so with SNARK_SETUP, the witnesses would be generated and the proving process will be done directly after.
* fix(guests/fibonacci): Update SEG_SIZE constantKamen Mladenov2025-04-041-1/+1
|
* chore: Nix and Rust fmtKamen Mladenov2025-04-046-21/+32
|
* feat(zkvms/zkm): Update SDK usage, add witness generation commandKamen Mladenov2025-04-043-65/+105
| | | | | | | We first need to generate witnesses before proving. This is done by running the binary with SNARK_SETUP=true. Currently, the command crashes right after those witnesses are generated. As a workaround, we ignore the crash and just start it normally, using the generated witnesses.
* feat(zkvms/risc0): Implement elf encodingKamen Mladenov2025-04-044-1/+29
| | | | | | | | | Recently, RISC0 have added code to their SDK which adds magic bytes to the (already compiled) ELF. Since we're taking another route than intended, we'll need to replicate this step too. We're doing things in a different fashion, because their SDK normally compiles the guest, and doesn't allow you to supply a prebuilt ELF.