From 254e1ebf2127d2469639a2f0f786b6876a3eb78c Mon Sep 17 00:00:00 2001 From: Kamen Mladenov Date: Fri, 17 Jan 2025 17:14:46 +0200 Subject: feat(flake): Implement jolt package --- zkvms/jolt/default.nix | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 zkvms/jolt/default.nix (limited to 'zkvms/jolt') 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; + })) -- cgit v1.2.3