aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamen Mladenov <kamen@syndamia.com>2025-01-14 14:06:54 +0200
committerKamen Mladenov <kamen@syndamia.com>2025-01-14 14:06:54 +0200
commit4e8e7fdece91540ca9b521012373660e3dea73dd (patch)
tree9432c8032099400c83fe0876ed621de24c0504d7
parentdb0c1b91f44394e2056a30283c1376cc003e3f5f (diff)
downloadzkVMs-benchmarks-4e8e7fdece91540ca9b521012373660e3dea73dd.tar
zkVMs-benchmarks-4e8e7fdece91540ca9b521012373660e3dea73dd.tar.gz
zkVMs-benchmarks-4e8e7fdece91540ca9b521012373660e3dea73dd.zip
feat(flake): Implement sp1 nix package
-rw-r--r--zkvms/sp1/default.nix56
1 files changed, 56 insertions, 0 deletions
diff --git a/zkvms/sp1/default.nix b/zkvms/sp1/default.nix
new file mode 100644
index 0000000..47d94f1
--- /dev/null
+++ b/zkvms/sp1/default.nix
@@ -0,0 +1,56 @@
+{ zkVM-helpers,
+ stdenv,
+ lib,
+ just,
+ metacraft-labs,
+ pkg-config,
+ craneLib-default,
+}:
+let
+ commonArgs = {
+ pname = "sp1";
+ version = "infdev";
+
+ src = with lib.fileset; toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..) (unions [
+ ./.
+ ../../guests
+ ../../guests_macro
+ ../../Vertices-010.in
+ ]);
+ };
+
+ cargoLock = ./Cargo.lock;
+
+ preBuild = ''
+ cd zkvms/sp1
+ '';
+ };
+
+ craneLib = craneLib-default.overrideToolchain metacraft-labs.sp1;
+ cargoArtifacts = craneLib.buildDepsOnly (zkVM-helpers.fixDeps commonArgs);
+in
+ craneLib.buildPackage (zkVM-helpers.withCustomPhases (commonArgs
+ // {
+ inherit cargoArtifacts;
+
+ nativeBuildInputs = [
+ metacraft-labs.sp1
+ ];
+
+ postPatch = ''
+ ln -s ../../../../guests/graph_coloring ./zkvms/sp1/guest/src/zkp
+ '';
+
+ preBuild = ''
+ pushd ./guest
+ cargo build --release --target riscv32im-succinct-zkvm-elf
+ ln -s ../../../../zkvms/sp1/guest/target/riscv32im-succinct-zkvm-elf/release/guest ../host/src/guest
+ popd
+ '';
+
+ hostBin = "host-sp1";
+
+ doCheck = false;
+ }))