aboutsummaryrefslogtreecommitdiff
path: root/zkvms
diff options
context:
space:
mode:
Diffstat (limited to 'zkvms')
-rw-r--r--zkvms/jolt/default.nix80
-rw-r--r--zkvms/nexus/default.nix66
-rw-r--r--zkvms/risc0/default.nix55
-rw-r--r--zkvms/sp1/default.nix43
-rw-r--r--zkvms/zkm/default.nix88
-rw-r--r--zkvms/zkwasm/default.nix75
6 files changed, 149 insertions, 258 deletions
diff --git a/zkvms/jolt/default.nix b/zkvms/jolt/default.nix
index 2e1ad9c..e749ac4 100644
--- a/zkvms/jolt/default.nix
+++ b/zkvms/jolt/default.nix
@@ -1,32 +1,18 @@
-{ zkvmLib,
- stdenv,
- lib,
- just,
- metacraft-labs,
- pkg-config,
- openssl,
- craneLib-default,
-}:
+{ zkvmLib, stdenv, lib, just, metacraft-labs, pkg-config, openssl
+, craneLib-default, }:
let
commonArgs = {
pname = "jolt";
inherit (metacraft-labs.jolt) version;
- src = with lib.fileset; toSource {
- root = ../..;
- fileset = intersection (gitTracked ../..) (unions [
- ./.
- ../../guests
- ../../guests_macro
- ../../zkvms_host_io
- ]);
- };
-
- nativeBuildInputs = [
- metacraft-labs.jolt
- openssl
- pkg-config
- ];
+ src = with lib.fileset;
+ toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..)
+ (unions [ ./. ../../guests ../../guests_macro ../../zkvms_host_io ]);
+ };
+
+ nativeBuildInputs = [ metacraft-labs.jolt openssl pkg-config ];
};
craneLib = craneLib-default.overrideToolchain metacraft-labs.jolt;
@@ -35,27 +21,25 @@ let
sed -i '/dependencies.guest/,+1d' zkvms/jolt/host/Cargo.toml
'';
});
-in
- zkvmLib.buildPackage craneLib (commonArgs
- // {
- inherit cargoArtifacts;
-
- guestTarget = "riscv32im-jolt-zkvm-elf";
- guestExtraArgs = "--features guest";
-
- preBuildGuest = ''
- RUSTUP_TOOLCHAIN="x"
- RUSTFLAGS="-C link-arg=-T${./guest/guest.ld} -C passes=lower-atomic -C panic=abort -C strip=symbols -C opt-level=z"
- export RUSTUP_TOOLCHAIN RUSTFLAGS
- '';
-
- preRunBinaries = [
- metacraft-labs.jolt
- ];
-
- preRun = ''
- export ELF_PATH="$out/bin/guest"
- '';
-
- doCheck = false;
- })
+in zkvmLib.buildPackage craneLib (commonArgs // {
+ inherit cargoArtifacts;
+
+ guestTarget = "riscv32im-jolt-zkvm-elf";
+ guestExtraArgs = "--features guest";
+
+ preBuildGuest = ''
+ RUSTUP_TOOLCHAIN="x"
+ RUSTFLAGS="-C link-arg=-T${
+ ./guest/guest.ld
+ } -C passes=lower-atomic -C panic=abort -C strip=symbols -C opt-level=z"
+ export RUSTUP_TOOLCHAIN RUSTFLAGS
+ '';
+
+ preRunBinaries = [ metacraft-labs.jolt ];
+
+ preRun = ''
+ export ELF_PATH="$out/bin/guest"
+ '';
+
+ doCheck = false;
+})
diff --git a/zkvms/nexus/default.nix b/zkvms/nexus/default.nix
index 7693836..44afc96 100644
--- a/zkvms/nexus/default.nix
+++ b/zkvms/nexus/default.nix
@@ -1,56 +1,38 @@
-{ zkvmLib,
- stdenv,
- lib,
- just,
- metacraft-labs,
- openssl,
- pkg-config,
- craneLib-default,
-}:
+{ zkvmLib, stdenv, lib, just, metacraft-labs, openssl, pkg-config
+, craneLib-default, }:
let
commonArgs = {
pname = "nexus";
inherit (metacraft-labs.nexus) version;
- src = with lib.fileset; toSource {
- root = ../..;
- fileset = intersection (gitTracked ../..) (unions [
- ./.
- ../../guests
- ../../guests_macro
- ../../zkvms_host_io
- ]);
- };
-
- nativeBuildInputs = [
- metacraft-labs.nexus
- openssl
- pkg-config
- ];
+ src = with lib.fileset;
+ toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..)
+ (unions [ ./. ../../guests ../../guests_macro ../../zkvms_host_io ]);
+ };
+
+ nativeBuildInputs = [ metacraft-labs.nexus openssl pkg-config ];
};
craneLib = craneLib-default.overrideToolchain metacraft-labs.nexus;
cargoArtifacts = zkvmLib.buildDepsOnly craneLib commonArgs;
-in
- zkvmLib.buildPackage craneLib (commonArgs
- // rec {
- inherit cargoArtifacts;
+in zkvmLib.buildPackage craneLib (commonArgs // rec {
+ inherit cargoArtifacts;
- preBuildGuest = ''
- export RUSTFLAGS="-C link-arg=-T${guest/guest.ld}"
- '';
+ preBuildGuest = ''
+ export RUSTFLAGS="-C link-arg=-T${guest/guest.ld}"
+ '';
- guestTarget = "riscv32i-unknown-none-elf";
- guestExtraArgs = "--features no_std";
+ guestTarget = "riscv32i-unknown-none-elf";
+ guestExtraArgs = "--features no_std";
- preRunLibraries = [
- openssl
- ];
+ preRunLibraries = [ openssl ];
- preRun = ''
- export ELF_PATH="$out/bin/guest"
- export PKG_CONFIG_PATH='${openssl.dev}/lib/pkgconfig' # Dirty hack
- '';
+ preRun = ''
+ export ELF_PATH="$out/bin/guest"
+ export PKG_CONFIG_PATH='${openssl.dev}/lib/pkgconfig' # Dirty hack
+ '';
- doCheck = false;
- })
+ doCheck = false;
+})
diff --git a/zkvms/risc0/default.nix b/zkvms/risc0/default.nix
index 4227fc4..6a4b796 100644
--- a/zkvms/risc0/default.nix
+++ b/zkvms/risc0/default.nix
@@ -1,50 +1,35 @@
-{ zkvmLib,
- stdenv,
- lib,
- metacraft-labs,
- pkg-config,
- craneLib-default,
-}:
+{ zkvmLib, stdenv, lib, metacraft-labs, pkg-config, craneLib-default, }:
let
commonArgs = {
pname = "risc0";
inherit (metacraft-labs.risc0) version;
- src = with lib.fileset; toSource {
- root = ../..;
- fileset = intersection (gitTracked ../..) (unions [
- ./.
- ../../guests
- ../../guests_macro
- ../../zkvms_host_io
- ]);
- };
+ src = with lib.fileset;
+ toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..)
+ (unions [ ./. ../../guests ../../guests_macro ../../zkvms_host_io ]);
+ };
};
craneLib = craneLib-default.overrideToolchain metacraft-labs.risc0;
cargoArtifacts = zkvmLib.buildDepsOnly craneLib commonArgs;
-in
- zkvmLib.buildPackage craneLib (commonArgs
- // {
- inherit cargoArtifacts;
+in zkvmLib.buildPackage craneLib (commonArgs // {
+ inherit cargoArtifacts;
- nativeBuildInputs = [
- metacraft-labs.risc0
- ];
+ nativeBuildInputs = [ metacraft-labs.risc0 ];
- guestToolchain = metacraft-labs.risc0-rust;
+ guestToolchain = metacraft-labs.risc0-rust;
- guestTarget = "riscv32im-risc0-zkvm-elf";
+ guestTarget = "riscv32im-risc0-zkvm-elf";
- preBuild = ''
- # Used for verification
- # https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/build/src/lib.rs#L192-L195
- export GUEST_ID="$(${metacraft-labs.risc0}/bin/r0vm --elf ./host/src/guest --id)"
- '';
+ preBuild = ''
+ # Used for verification
+ # https://github.com/risc0/risc0/blob/881e512732eca72849b2d0e263a1242aba3158af/risc0/build/src/lib.rs#L192-L195
+ export GUEST_ID="$(${metacraft-labs.risc0}/bin/r0vm --elf ./host/src/guest --id)"
+ '';
- preRunBinaries = [
- metacraft-labs.risc0
- ];
+ preRunBinaries = [ metacraft-labs.risc0 ];
- doCheck = false;
- })
+ doCheck = false;
+})
diff --git a/zkvms/sp1/default.nix b/zkvms/sp1/default.nix
index 86a019c..5ab313e 100644
--- a/zkvms/sp1/default.nix
+++ b/zkvms/sp1/default.nix
@@ -1,43 +1,28 @@
-{ zkvmLib,
- stdenv,
- lib,
- just,
- metacraft-labs,
- pkg-config,
- craneLib-default,
- gnum4,
-}:
+{ zkvmLib, stdenv, lib, just, metacraft-labs, pkg-config, craneLib-default
+, gnum4, }:
let
commonArgs = {
pname = "sp1";
inherit (metacraft-labs.sp1) version;
- nativeBuildInputs = [
- metacraft-labs.sp1
- gnum4
- ];
+ nativeBuildInputs = [ metacraft-labs.sp1 gnum4 ];
- src = with lib.fileset; toSource {
- root = ../..;
- fileset = intersection (gitTracked ../..) (unions [
- ./.
- ../../guests
- ../../guests_macro
- ../../zkvms_host_io
- ]);
- };
+ src = with lib.fileset;
+ toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..)
+ (unions [ ./. ../../guests ../../guests_macro ../../zkvms_host_io ]);
+ };
extraLockfile = "${metacraft-labs.sp1}/Cargo.lock";
};
craneLib = craneLib-default.overrideToolchain metacraft-labs.sp1;
cargoArtifacts = zkvmLib.buildDepsOnly craneLib commonArgs;
-in
- zkvmLib.buildPackage craneLib (commonArgs
- // {
- inherit cargoArtifacts;
+in zkvmLib.buildPackage craneLib (commonArgs // {
+ inherit cargoArtifacts;
- guestTarget = "riscv32im-succinct-zkvm-elf";
+ guestTarget = "riscv32im-succinct-zkvm-elf";
- doCheck = false;
- })
+ doCheck = false;
+})
diff --git a/zkvms/zkm/default.nix b/zkvms/zkm/default.nix
index 64f148b..7fc52f6 100644
--- a/zkvms/zkm/default.nix
+++ b/zkvms/zkm/default.nix
@@ -1,16 +1,5 @@
-{ zkvmLib,
- lib,
- just,
- metacraft-labs,
- metacraft-labs-old,
- rust-bin,
- protobuf,
- pkg-config,
- openssl,
- buildGoModule,
- fetchFromGitHub,
- craneLib-default,
-}:
+{ zkvmLib, lib, just, metacraft-labs, metacraft-labs-old, rust-bin, protobuf
+, pkg-config, openssl, buildGoModule, fetchFromGitHub, craneLib-default, }:
let
zkm_libsnark = buildGoModule rec {
pname = "zkm_libsnark";
@@ -40,63 +29,48 @@ let
pname = "zkm";
inherit (metacraft-labs.zkm) version;
- src = with lib.fileset; toSource {
- root = ../..;
- fileset = intersection (gitTracked ../..) (unions [
- ./.
- ../../guests
- ../../guests_macro
- ../../zkvms_host_io
- ]);
- };
+ src = with lib.fileset;
+ toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..)
+ (unions [ ./. ../../guests ../../guests_macro ../../zkvms_host_io ]);
+ };
- nativeBuildInputs = [
- pkg-config
- openssl
- protobuf
- metacraft-labs.zkm
- ];
+ nativeBuildInputs = [ pkg-config openssl protobuf metacraft-labs.zkm ];
overrideVendorGitCheckout = ps: drv:
- if drv.src.shortRev == "155221d" && builtins.any (p: p.name == "zkm-sdk") ps then
- drv.overrideAttrs (_: {
- patches = [
- ./0001-chore-Increase-DEGREE_BITS_RANGE.patch
- ];
- })
+ if drv.src.shortRev == "155221d"
+ && builtins.any (p: p.name == "zkm-sdk") ps then
+ drv.overrideAttrs
+ (_: { patches = [ ./0001-chore-Increase-DEGREE_BITS_RANGE.patch ]; })
else
drv;
};
craneLib = craneLib-default.overrideToolchain metacraft-labs.zkm;
cargoArtifacts = zkvmLib.buildDepsOnly craneLib commonArgs;
-in
- zkvmLib.buildPackage craneLib (commonArgs
- // {
- inherit cargoArtifacts;
+in zkvmLib.buildPackage craneLib (commonArgs // {
+ inherit cargoArtifacts;
- guestTarget = "mips-zkm-zkvm-elf";
+ guestTarget = "mips-zkm-zkvm-elf";
- preBuildGuest = ''
- # https://github.com/zkMIPS/zkm/blob/0e62a053970eb25c81aa409d0c7234f5611a192d/build/src/command/utils.rs#L45-L61
- export RUSTFLAGS="-C target-cpu=mips2 -C target-feature=+crt-static -C link-arg=-nostdlib -C link-arg=-g -C link-arg=--entry=main"
- '';
+ preBuildGuest = ''
+ # https://github.com/zkMIPS/zkm/blob/0e62a053970eb25c81aa409d0c7234f5611a192d/build/src/command/utils.rs#L45-L61
+ export RUSTFLAGS="-C target-cpu=mips2 -C target-feature=+crt-static -C link-arg=-nostdlib -C link-arg=-g -C link-arg=--entry=main"
+ '';
- preBuild = ''
- export RUSTFLAGS="-L ${zkm_libsnark}/lib"
- '';
+ preBuild = ''
+ export RUSTFLAGS="-L ${zkm_libsnark}/lib"
+ '';
- hostToolchain = metacraft-labs-old.zkm;
+ hostToolchain = metacraft-labs-old.zkm;
- preRunLibraries = [
- openssl
- zkm_libsnark
- ];
+ preRunLibraries = [ openssl zkm_libsnark ];
- preRun = ''
- export ELF_PATH="$out/bin/guest"
- export PKG_CONFIG_PATH='${openssl.dev}/lib/pkgconfig' # Dirty hack
- '';
+ preRun = ''
+ export ELF_PATH="$out/bin/guest"
+ export PKG_CONFIG_PATH='${openssl.dev}/lib/pkgconfig' # Dirty hack
+ '';
- doCheck = false;
- })
+ doCheck = false;
+})
diff --git a/zkvms/zkwasm/default.nix b/zkvms/zkwasm/default.nix
index b353bf7..88947ba 100644
--- a/zkvms/zkwasm/default.nix
+++ b/zkvms/zkwasm/default.nix
@@ -1,65 +1,46 @@
-{ zkvmLib,
- lib,
- rust-bin,
- metacraft-labs,
- wasm-pack,
- wasm-bindgen-cli,
- binaryen,
- craneLib-default,
- stdenv,
-}:
+{ zkvmLib, lib, rust-bin, metacraft-labs, wasm-pack, wasm-bindgen-cli, binaryen
+, craneLib-default, stdenv, }:
let
commonArgs = rec {
pname = "zkwasm";
inherit (metacraft-labs.zkwasm) version;
- src = with lib.fileset; toSource {
- root = ../..;
- fileset = intersection (gitTracked ../..) (unions [
- ./.
- ../../guests
- ../../guests_macro
- ../../zkvms_host_io
- ]);
- };
+ src = with lib.fileset;
+ toSource {
+ root = ../..;
+ fileset = intersection (gitTracked ../..)
+ (unions [ ./. ../../guests ../../guests_macro ../../zkvms_host_io ]);
+ };
};
rust-toolchain = rust-bin.nightly."2024-04-09".default.override {
- targets = ["wasm32-unknown-unknown"];
+ targets = [ "wasm32-unknown-unknown" ];
};
craneLib = craneLib-default.overrideToolchain rust-toolchain;
cargoArtifacts = zkvmLib.buildDepsOnly craneLib commonArgs;
-in
- zkvmLib.buildPackage craneLib (commonArgs
- // {
- inherit cargoArtifacts;
+in zkvmLib.buildPackage craneLib (commonArgs // {
+ inherit cargoArtifacts;
- nativeBuildInputs = [
- metacraft-labs.zkwasm
- wasm-pack
- wasm-bindgen-cli
- binaryen
- ];
+ nativeBuildInputs =
+ [ metacraft-labs.zkwasm wasm-pack wasm-bindgen-cli binaryen ];
- preBuildGuest = ''
- # Workaround from
- # https://github.com/rustwasm/wasm-pack/issues/1335
- export WASM_PACK_CACHE=.wasm-pack-cache
- '';
+ preBuildGuest = ''
+ # Workaround from
+ # https://github.com/rustwasm/wasm-pack/issues/1335
+ export WASM_PACK_CACHE=.wasm-pack-cache
+ '';
- buildGuestCommand = "wasm-pack build --release --frozen --features zkwasm";
+ buildGuestCommand = "wasm-pack build --release --frozen --features zkwasm";
- preBuild = ''
- export GUEST_PATH="$out/pkg/guest_bg.wasm"
- '';
+ preBuild = ''
+ export GUEST_PATH="$out/pkg/guest_bg.wasm"
+ '';
- postInstall = ''
- mv zkvms/zkwasm/guest/pkg "$out"/
- '';
+ postInstall = ''
+ mv zkvms/zkwasm/guest/pkg "$out"/
+ '';
- preRunBinaries = [
- metacraft-labs.zkwasm
- ];
+ preRunBinaries = [ metacraft-labs.zkwasm ];
- doCheck = false;
- })
+ doCheck = false;
+})