Skip to content

Commit 3de2ebf

Browse files
committed
feat(packages): Add rapidsnark-gpu package
1 parent 3a98920 commit 3de2ebf

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

packages/default.nix

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@
164164
rapidsnark = callPackage ./rapidsnark/default.nix {
165165
inherit ffiasm zqfield-bn254;
166166
};
167+
rapidsnark-gpu = callPackage ./rapidsnark-gpu/default.nix {
168+
inherit ffiasm zqfield-bn254;
169+
};
167170

168171
# Elrond / MultiversX
169172
# copied from https://github.com/NixOS/nixpkgs/blob/8df7949791250b580220eb266e72e77211bedad9/pkgs/development/python-modules/cryptography/default.nix
@@ -328,7 +331,7 @@
328331
};
329332

330333
pistache = callPackage ./pistache/default.nix { };
331-
inherit zqfield-bn254;
334+
inherit zqfield-bn254 rapidsnark-gpu;
332335
rapidsnark-server = callPackage ./rapidsnark-server/default.nix {
333336
inherit
334337
ffiasm
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
{
2+
lib,
3+
cudaPackages,
4+
stdenv,
5+
ffiasm,
6+
zqfield-bn254,
7+
nlohmann_json,
8+
gmp,
9+
libsodium,
10+
cmake,
11+
fetchFromGitHub,
12+
pkg-config,
13+
}:
14+
let
15+
ffiasm-c = "${ffiasm}/lib/node_modules/ffiasm/c";
16+
in
17+
stdenv.mkDerivation rec {
18+
pname = "rapidsnark-gpu";
19+
version = "2023-04-08";
20+
21+
src = fetchFromGitHub {
22+
owner = "Orbiter-Finance";
23+
repo = "rapidsnark";
24+
rev = "77016322808ac58a3acd25a6235510b55172f967";
25+
hash = "sha256-8vy+iXkSINFregve+rej1rXyXdWxm0n1wvYfoy/0idk=";
26+
};
27+
28+
nativeBuildInputs = [ pkg-config ];
29+
buildInputs = [
30+
nlohmann_json
31+
gmp
32+
libsodium
33+
cudaPackages.cudatoolkit
34+
] ++ ffiasm.passthru.openmp;
35+
36+
buildPhase = ''
37+
mkdir -p $out/bin
38+
c++ \
39+
-I{${ffiasm-c},${zqfield-bn254}/lib} \
40+
./src/{main_prover,binfile_utils,zkey_utils,wtns_utils,logger}.cpp \
41+
${ffiasm-c}/{alt_bn128,misc,naf,splitparstr}.cpp \
42+
${zqfield-bn254}/lib/{fq,fr}.{cpp,o} \
43+
$(pkg-config --cflags --libs libsodium gmp nlohmann_json) \
44+
-std=c++17 -pthread -O3 -fopenmp \
45+
-o $out/bin/prover
46+
'';
47+
48+
installPhase = ''
49+
# Already done in buildPhase
50+
'';
51+
52+
meta = {
53+
homepage = "https://github.com/iden3/rapidsnark";
54+
platforms = with lib.platforms; linux ++ darwin;
55+
};
56+
}

0 commit comments

Comments
 (0)