Просмотр исходного кода

research/rln: Move v1 POC to rlnv1 directory

parazyd 2 лет назад
Родитель
Сommit
38f759ecac

+ 0 - 1
script/research/rln/.gitignore → script/research/rln/rlnv1/.gitignore

@@ -1,3 +1,2 @@
 Cargo.lock
 target/
-*.bin

+ 5 - 4
script/research/rln/Cargo.toml → script/research/rln/rlnv1/Cargo.toml

@@ -1,5 +1,5 @@
 [package]
-name = "rln"
+name = "rlnv1"
 version = "0.4.1"
 authors = ["Dyne.org foundation <foundation@dyne.org>"]
 license = "AGPL-3.0-only"
@@ -8,10 +8,11 @@ edition = "2021"
 [workspace]
 
 [dependencies]
-darkfi-sdk = {path = "../../../src/sdk"}
-darkfi = {path = "../../../", features = ["zk"]}
+darkfi-sdk = {path = "../../../../src/sdk"}
+darkfi = {path = "../../../../", features = ["zk"]}
 lazy_static = "1.4.0"
 rand = "0.8.5"
 
 [patch.crates-io]
-halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v3"}
+halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v4"}
+halo2_gadgets = {git="https://github.com/parazyd/halo2", branch="v4"}

+ 26 - 0
script/research/rln/rlnv1/Makefile

@@ -0,0 +1,26 @@
+.POSIX:
+
+# Cargo binary
+CARGO = cargo +nightly
+
+# Compile target
+RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
+
+PROOFS_SRC = signal.zk slash.zk
+PROOFS_BIN = $(PROOFS_SRC:=.bin)
+
+ZKAS = ../../../../zkas
+
+all: $(PROOFS_BIN)
+	$(CARGO) run --target=$(RUST_TARGET) --release
+
+$(ZKAS):
+	$(MAKE) -C ../../../../zkas
+
+$(PROOFS_BIN): $(ZKAS) $(PROOFS_SRC)
+	$(ZKAS) $(basename $@) -o $@
+
+clean:
+	rm -rf target $(PROOFS_BIN) Cargo.lock
+
+.PHONY: all clean

+ 0 - 0
script/research/rln/signal.zk → script/research/rln/rlnv1/signal.zk


+ 0 - 0
script/research/rln/slash.zk → script/research/rln/rlnv1/slash.zk


+ 5 - 5
script/research/rln/src/main.rs → script/research/rln/rlnv1/src/main.rs

@@ -109,7 +109,7 @@ fn main() {
     // zkSNARK things
     let signal_zkbin = include_bytes!("../signal.zk.bin");
     let rln_zkbin = ZkBinary::decode(signal_zkbin).unwrap();
-    let rln_empty_circuit = ZkCircuit::new(empty_witnesses(&rln_zkbin), rln_zkbin.clone());
+    let rln_empty_circuit = ZkCircuit::new(empty_witnesses(&rln_zkbin).unwrap(), &rln_zkbin);
 
     print!("[Interaction] Building Proving key... ");
     let now = Instant::now();
@@ -143,7 +143,7 @@ fn main() {
     // Build a circuit with these witnesses
     print!("[Interaction] Creating ZK proof... ");
     let now = Instant::now();
-    let rln_circuit = ZkCircuit::new(witnesses, rln_zkbin.clone());
+    let rln_circuit = ZkCircuit::new(witnesses, &rln_zkbin);
     let proof = Proof::create(&rln_pk, &[rln_circuit], &public_inputs, &mut OsRng).unwrap();
     println!("[{:?}]", now.elapsed());
 
@@ -187,7 +187,7 @@ fn main() {
     // Build a circuit with these witnesses
     print!("[Interaction] Creating ZK proof... ");
     let now = Instant::now();
-    let rln_circuit = ZkCircuit::new(witnesses, rln_zkbin);
+    let rln_circuit = ZkCircuit::new(witnesses, &rln_zkbin);
     let proof = Proof::create(&rln_pk, &[rln_circuit], &public_inputs, &mut OsRng).unwrap();
     println!("[{:?}]", now.elapsed());
 
@@ -213,7 +213,7 @@ fn main() {
     // Create a slash proof
     let slash_zkbin = include_bytes!("../slash.zk.bin");
     let slash_zkbin = ZkBinary::decode(slash_zkbin).unwrap();
-    let slash_empty_circuit = ZkCircuit::new(empty_witnesses(&slash_zkbin), slash_zkbin.clone());
+    let slash_empty_circuit = ZkCircuit::new(empty_witnesses(&slash_zkbin).unwrap(), &slash_zkbin);
 
     print!("[Slash] Building Proving key... ");
     let now = Instant::now();
@@ -243,7 +243,7 @@ fn main() {
 
     print!("[Slash] Creating ZK proof... ");
     let now = Instant::now();
-    let slash_circuit = ZkCircuit::new(witnesses, slash_zkbin);
+    let slash_circuit = ZkCircuit::new(witnesses, &slash_zkbin);
     let proof = Proof::create(&slash_pk, &[slash_circuit], &public_inputs, &mut OsRng).unwrap();
     println!("[{:?}]", now.elapsed());