aboutsummaryrefslogtreecommitdiff
path: root/zkvms/jolt
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-01-17 17:14:46 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-01-17 17:14:46 +0200
commit254e1ebf2127d2469639a2f0f786b6876a3eb78c (patch)
tree438625a3ba29a0997539e27b97e755e1b1d96057 /zkvms/jolt
parent35853dce806a2bb390459e308da4d4a23c253e28 (diff)
downloadzkVMs-benchmarks-254e1ebf2127d2469639a2f0f786b6876a3eb78c.tar
zkVMs-benchmarks-254e1ebf2127d2469639a2f0f786b6876a3eb78c.tar.gz
zkVMs-benchmarks-254e1ebf2127d2469639a2f0f786b6876a3eb78c.zip
feat(flake): Implement jolt package
Diffstat (limited to 'zkvms/jolt')
-rw-r--r--zkvms/jolt/default.nix72
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;
+ }))