Website Summary Files Commits Branches @commit @diff @stats
Commit message (Collapse)AuthorAgeLinesSHA
...
* feat(zkvms/sp1): Update to use FunctionDefinition
 Kamen Mladenov
2025-04-07-17/+17155f577
|
* feat(zkvms/risc0): Update to use FunctionDefinition
 Kamen Mladenov
2025-04-07-20/+173ea60f8
|
* feat(zkvms/jolt): Update to use FunctionDefinition
 Kamen Mladenov
2025-04-07-21/+417a6c3fcf
|
* feat(zkvms/nexus): Update to use FunctionDefinition
 Kamen Mladenov
2025-04-07-14/+7fef25f2
|
* feat(zkvms_host_io): Update to use FunctionDefinition
 Kamen Mladenov
2025-04-07-77/+36882f8e9
|
* feat(guests_macro): Replace parse_fn mod with struct
 Kamen Mladenov
2025-04-07-229/+2350fbc787
| | | | | | | | | | | 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 hack
 Kamen Mladenov
2025-04-04-6/+47498d60
| | | | | | | | | | 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 constant
 Kamen Mladenov
2025-04-04-1/+14716b96
|
* chore: Nix and Rust fmt
 Kamen Mladenov
2025-04-04-21/+32ff02260
|
* feat(zkvms/zkm): Update SDK usage, add witness generation command
 Kamen Mladenov
2025-04-04-65/+1056e8dc24
| | | | | | | 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 encoding
 Kamen Mladenov
2025-04-04-1/+29a30b402
| | | | | | | | | 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.
* feat(zkvms/risc0): Upper bound for bytemuck_derive
 Kamen Mladenov
2025-04-04-15/+17696e604
|
* feat(zkvms/nexus): Update SDK usage
 Kamen Mladenov
2025-04-04-67/+30e701885
| | | | Update according to their new methods.
* feat(zkvms_host_io): Add the "Return" type, which only contains the function ↵
 Kamen Mladenov
2025-04-04-1/+5023070d
| | | | | | | | | | | | | | return type Currently we create an "Output" type, which contains a tuple with all public inputs and the function return type. In most zkVMs, public and private inputs are not distinguished from the start, public inputs are returned by the guest program and private are not. Thus, most of the time we need a more complicated return type. However, sometimes this is not the case, and the public/private distinction is done upfront (and we don't need to output inputs). So we need to add the appropriate type.
* feat(zkvms/zkm): Remove SDK override, Go lib build, update SDK usage
 Kamen Mladenov
2025-04-04-84/+12c7a0a23
| | | | | | | Update SDK usage, according to their new methods. ZKM moved their Go library to the zkVM repo. Their updated SDK also don't require the patch.
* feat(zkvms/jolt): Add libcxx and openssl dependencies, upper bound for ↵
 Kamen Mladenov
2025-04-04-7/+82c82f0f
| | | | bytemuck_derive
* chore: Update flake.lock and Cargo.lock
 Kamen Mladenov
2025-04-04-4501/+26184fc242c
|
* chore(flake.nix): Replace rust-overlay with fenix
 Kamen Mladenov
2025-04-04-8/+16d02aef5
| | | | This follows the same change which was made in mcl-blockchain
* feat(flake.nix): Add script for updating all zkVM package dependencies
 Kamen Mladenov
2025-04-04-0/+38fe7d70a
| | | | | | | | | All crates use the zkVM packages (from nix-blockchain-development) as cargo path dependencies. For each zkVM, they're found in the host, guest and wrapper crates. Since there are a lot of places to update, we're introducing a script which automates this.
* fix(metrics): Do not remove leading zeros
 Aristotelis Papanis
2025-03-13-2/+22cb82e5
| | | | | | | With the commit for improving the metrics output we introduced a bug for the milliseconds where we would lose information about leading zeros. This has been now fixed.
* chore(metrics): Change output format of metrics
 Aristotelis Papanis
2025-03-13-17/+44dce57e6
| | | | | | | | | | | | | | | | We have improved the format of the benchmarking output. Now the metrics follow a more standard CSV style. Example: ``` name,guest,total duration,repeats,average jolt,fibonacci,1.33,2,0.516 nexus,fibonacci,177.388,2,88.694 risc0,fibonacci,3.828,2,1.914 sp1,fibonacci,13.330,2,6.665 zkm,fibonacci,279.394,2,139.697 zkwasm,fibonacci,106.161,2,53.80 ```
* feat(guests): Add program which test array iteration, modulo arithmetic and ↵
 Kamen Mladenov
2025-03-10-0/+255c32168b
| | | | | | early return This test should be pretty difficult for Noir, but less so for the zkVMs
* chore(zkvms_guest_io): Code style improvements
 Kamen Mladenov
2025-03-10-8/+159832b41
|
* feat(zkvms_guest_io): Make execution linear, instead of parallel
 Kamen Mladenov
2025-03-10-36/+248c3237c
| | | | | zkVMs are multithreaded, so having parallel execution will result in inconsistent results, as every zkVM is fighting for resources
* fix(zkvms_guest_io): Remove unnecessary panicking on failed command
 Kamen Mladenov
2025-03-10-5/+0821a5ea
|
* fix(zkvms_guest_io): Improve option error messages
 Kamen Mladenov
2025-03-10-2/+218dd7f7
|
* feat(README): Add information about single guest command
 Kamen Mladenov
2025-03-10-1/+2228ff6eb
|
* feat(zkvms_guest_io): Add the ability to fail all commands on a single failure
 Kamen Mladenov
2025-03-10-1/+211808b61
|
* feat: Replace guest script with a fully-fledged Rust program
 Kamen Mladenov
2025-03-10-19/+3385969acd
|
* feat(guests/zk_dungeon): Remove zkwasm block
 Kamen Mladenov
2025-03-05-1/+0eea1157
|
* feat(zkvms/zkwasm): Support non-numeric types as guest function output
 Kamen Mladenov
2025-03-05-25/+3494115de
|
* feat(zkvms/zkwasm): Export macro which converts to bytes vector as a library
 Kamen Mladenov
2025-03-05-112/+130776f0b6
|
* feat(guest): Add zk_dungeon program
 Kamen Mladenov
2025-03-04-0/+130298455c
| | | | | | | Ported from https://github.com/blocksense-network/noir/tree/6a4f172c0cbee1e2baea7d4c0684121d5921c09a/test_programs/plonky2_prove_success/zk_dungeon Co-authored-by: Stan Manilov <stanislav.manilov@gmail.com>
* fix(zkvms/jolt/host): Replace default formatting with debug formatting in print
 Kamen Mladenov
2025-03-04-2/+2b2635c1
|
* fix(guests_macro/parse_fn): Return unit ret type when main doesn't return ↵
 Kamen Mladenov
2025-03-04-0/+3b70295c
| | | | anything
* chore: Rust fmt
 Kamen Mladenov
2025-02-27-317/+4565b82ac7
|
* chore: Nix fmt
 Kamen Mladenov
2025-02-27-501/+41939ec264
|
* feat(flake): Add nixfmt formatter
 Kamen Mladenov
2025-02-27-0/+23b037df
|
* feat: Add script for formatting all rust files in a directory
 Kamen Mladenov
2025-02-27-1/+23a486a8e
| | | | This is meant to be used in our codebase, especially in CI pipelines
* docs(guest): Explain blacklisting feature
 Kamen Mladenov
2025-02-26-0/+127cae7ec
|
* fix(guest.nix): Make order of zkVM runs alphabetic
 Kamen Mladenov
2025-02-26-3/+30cc9b75
|
* feat(zkvmLib): Add ability to stop compilation and execution of certain ↵
 Kamen Mladenov
2025-02-26-101/+120c92624c
| | | | | | | | zkVMs with guests You need to add a ".no_zkvm" file in the guests/guest/ directory for your guest and zkvm. You may add details on why the zkVM is not supported inside the file itself, but it is not mandatory.
* feat: Add zkvm cargo features
 Kamen Mladenov
2025-02-26-4/+23aaedf9d
| | | | So you can make code modifications compile-time, based on the zkVM
* fix(zkvms/zkm): Downgrade host toolchain
 Kamen Mladenov
2025-02-26-1/+1438ec0bc2c
| | | | | | | The newest toolchain causes errors, an issue has been filed upstream: https://github.com/zkMIPS/toolchain/issues/4 However, it is not certain when it will be resolved, so for now this workaround will be used.
* fix(zkvms/zkm): Override zkm SDK
 Kamen Mladenov
2025-02-26-0/+524bba003
| | | | | | | The SDK is out of date. A PR is opened: https://github.com/zkMIPS/zkm-project-template/pull/54 However, its not certain it will be merged soon, so for now this workaround will have to do.
* chore: Update zkVM packages
 Kamen Mladenov
2025-02-26-2071/+136291fb361
| | | | | | | | This includes: - Updating flake.lock - Updating all host and guest Cargo.toml and Cargo.lock files - Making zkvm default.nix file modifications to account for toolchain and setup changes
* feat(zkvmLib): Attribute for specifying a guest or host specific Rust toolchains
 Kamen Mladenov
2025-02-26-0/+9c02d489
| | | | | Allows the host and guest program toolchains to differ. Generally, you should only need to set one.
* feat(zkvmLib): Ability to add an extra Cargo.lock
 Kamen Mladenov
2025-02-26-0/+697975be
| | | | | | | | | | Adds the ability to specify an `extraLockfile` attribute in args. Its value should evaluate to a string path. It's included in the beginning, so it overshadows dependencies, which are specified in the other Cargo.lock files. Must be added to commonArgs (i.e. to both `buildDepsOnly` and `buildPackage` args).
* feat(zkvmLib): Add the ability to override dependencies
 Kamen Mladenov
2025-02-26-5/+15a8264df
| | | | | | | | | Allows you to add `overrideVendorCargoPackage` and `overrideVendorGitCheckout` to args, which allow the overriding of vendored dependencies, as is implemented in crane.lib. The respective attribute must be added to commonArgs (i.e. to both `buildDepsOnly` and `buildPackage` args).
* fix(zkvms_host_io): Reduce version constraint for clap
 Kamen Mladenov
2025-02-26-1/+15904bf4
| | | | | | Certain zkVMs may use clap with versions lower than 4.5 (e.g. 4.5.9). Here we do not really care about the version, so this change will fix compatibility issues.