diff options
| author | Kamen Mladenov <kamen@syndamia.com> | 2025-01-17 17:14:46 +0200 |
|---|---|---|
| committer | Kamen Mladenov <kamen@syndamia.com> | 2025-01-17 17:14:46 +0200 |
| commit | 254e1ebf2127d2469639a2f0f786b6876a3eb78c (patch) | |
| tree | 438625a3ba29a0997539e27b97e755e1b1d96057 /zkvms | |
| parent | 35853dce806a2bb390459e308da4d4a23c253e28 (diff) | |
| download | zkVMs-benchmarks-254e1ebf2127d2469639a2f0f786b6876a3eb78c.tar zkVMs-benchmarks-254e1ebf2127d2469639a2f0f786b6876a3eb78c.tar.gz zkVMs-benchmarks-254e1ebf2127d2469639a2f0f786b6876a3eb78c.zip | |
feat(flake): Implement jolt package
Diffstat (limited to 'zkvms')
| -rw-r--r-- | zkvms/jolt/default.nix | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/zkvms/jolt/default.nix b/zkvms/jolt/default.nix new file mode 100644 index 0000000..2c6399c --- /dev/null +++ b/zkvms/jolt/default.nix @@ -0,0 +1,72 @@ +{ zkVM-helpers, + stdenv, + lib, + just, + metacraft-labs, + pkg-config, + openssl, + craneLib-default, +}: +let + commonArgs = { + pname = "jolt"; + version = "infdev"; + + src = with lib.fileset; toSource { + root = ../..; + fileset = intersection (gitTracked ../..) (unions [ + ./. + ../../guests + ../../guests_macro + ../../zkvms_host_io + ../../Vertices-010.in + ]); + }; + + cargoLock = ./Cargo.lock; + + nativeBuildInputs = [ + metacraft-labs.jolt + openssl + pkg-config + ]; + }; + + craneLib = craneLib-default.overrideToolchain metacraft-labs.jolt; + cargoArtifacts = craneLib.buildDepsOnly (zkVM-helpers.fixDeps (commonArgs // { + postConfigure = '' + sed -i 's/"guest",//' zkvms/jolt/Cargo.toml + sed -i '/dependencies.guest/,+1d' zkvms/jolt/host/Cargo.toml + ''; + })); +in + craneLib.buildPackage (zkVM-helpers.withCustomPhases (commonArgs + // { + inherit cargoArtifacts; + + postPatch = '' + ln -s ../../../../guests/graph_coloring ./zkvms/jolt/guest/src/zkp + sed -i '/guest\/guests/d' ./zkvms/jolt/Cargo.toml + ''; + + hostBin = "host-jolt"; + guestTarget = "riscv32im-jolt-zkvm-elf"; + extraGuestArgs = "--features guest"; + + preBuildGuest = '' + export RUSTUP_TOOLCHAIN="x" + export RUSTFLAGS="-C link-arg=-T${./guest/guest.ld} -C passes=lower-atomic -C panic=abort -C strip=symbols -C opt-level=z" + ''; + + preBuild = '' + unset RUSTUP_TOOLCHAIN + export RUSTFLAGS="-Z macro-backtrace" + ''; + + preRun = '' + export ELF_PATH="$out/bin/guest" + export PATH="$PATH:${metacraft-labs.jolt}/bin" + ''; + + doCheck = false; + })) |
