Commit Graph

48 Commits

Author SHA1 Message Date
Richard Ramos 2455bea922
refactor(RLN): use iterators instead of loops (#33)
* refactor(RLN): use iterators instead of loops
* fix(rln): cargo fmt
* fix(rln): cargo clippy: avoid Vec object creation

Co-authored-by: s1fr0 <28568419+s1fr0@users.noreply.github.com>
2022-08-22 07:48:31 -04:00
G 824296e695
refactor(rln): use space-efficient Merkle tree implementation (#32)
* refactor(rln): replace merkle tree implementation

refactor(rln): before switch

refactor(rln): replace merkle tree implementation

fix(rln): cargo fmt, cargo clippy

cargo fmt

* chore(rln): add comments

* chore(rln): cargo fmt; cargo clippy

* refactor(rln): improve Merkle tree crate

- Integrate previous Full storage MT with Optimal (storage) MT implementation
- Align the two implementation to same API/traits implementations
- Align implementations as much as possible to same language and variable names/meaning
- Comment code
- Add descriptions to each module's crate
- address reviewer's comments

* refactor(rln): fmt, clippy, remove pub from next index, update output type for some proc
2022-08-17 11:08:14 +02:00
G 64f5083639
RLN: update README (#27)
* refactor(rln): update readme

* fix(rln): update README in light of https://github.com/vacp2p/zerokit/pull/30
2022-08-07 16:51:03 +02:00
G 3378aed857
refactor(rln): Update Merkle tree initialization method (#30)
* refactor(rln): fix merkle tree initialization

* fix(rln): cargo fmt; cargo clippy
2022-08-05 12:36:06 +02:00
G c1db14dd7c
refactor(rln): improve circuit loading performances and tests fix (#26)
* refactor(rln): change witness generation logic to improve performance

* rln(refactor): - change circuit loading logic; - update tests with tree size 20
2022-07-29 13:40:16 +08:00
Richard Ramos 7fe9bb4f94
chore(rln): add "staticlib" to crate-type in Cargo.toml (#24) 2022-07-25 12:54:13 -04:00
oskarth 42e1743198
fix(rln): Fix CI by updating ethers dependency (#25) 2022-07-25 14:18:50 +08:00
G 9cc333811b
RLN: Update API (#22)
* refactor(rln): integrate semaphore's merkle tree implementation

* feat(rln): expand API and refactor

* refactor(rln):  support external resource path for circuits/keys, add circuit for tree_height = 20

* feat(rln): add cargo library directives
2022-06-29 18:56:03 +02:00
G 95352a4a7c
RLN: Update Rust and C API (#20)
* fix(rln): ignore dirty rln submodule

* feat(rln): add RLN witness & proof values byte serialization/deserialization

* feat(RLN): add Merkle-tree public APIs

* fix(rln): use references to avoid unnecessary clone()

* fix(rln): fix rust public API, code refactor

* fix(rln): change vector length serialization from usize to u64; add random witness generation

* feat(rln): add C APIs

* chore(rln): cargo format/clippy

* feat(rln): add C APIs tests

* chore(rln): minor code restyling

* refactor(rln): change &Vec<u8> to &[u8] (avoids  new object creation)
2022-06-22 15:36:54 +01:00
s1fr0 8e065d4a83
fix(rln): fixed proof generation/verification and E2E tests
chore(rln): clippy and fmt

fix(rln): cargo fix

ci: update submodules

chore(rln): remove unnecessary test, restyle

fix(rln): switch to field type, add field arithmetic

feat(rln): public input computation from witness

fix(rln): fix semaphore crate version
2022-06-09 15:57:03 +02:00
Oskar Thoren 23171bb041
docs(rln): Compiling circuits 2022-05-24 12:14:02 +01:00
Oskar Thoren af0397fa09
chore(rln): Add git submodule 2022-05-24 12:08:42 +01:00
Oskar Thoren 45520e7869
refactor(rln): Upgrade semaphore-rs 2022-05-23 09:28:13 +01:00
Oskar Thoren 1d8408d743
style(rln): cargo fmt 2022-05-23 08:07:32 +01:00
Oskar Thoren f2f3c820ff
test(rln): Add passing semaphore test 2022-03-18 19:17:50 +08:00
Oskar Thoren ddb3efc4a5
docs(rln): more notes and todos 2022-03-18 15:55:41 +08:00
Oskar Thoren cb38360311
docs(rln): comments and notes 2022-03-18 15:01:37 +08:00
Oskar Thoren 6b3be4438e
refactor(rln): move out json spike to separate fn 2022-03-18 14:42:38 +08:00
Oskar Thoren 0d087e3f0a
test(rln): end to end test wip 2022-03-18 14:32:54 +08:00
Oskar Thoren 1e8e834887
feat(rln): add wip rln protocol abstraction 2022-03-18 14:23:44 +08:00
Oskar Thoren ceddd20ff1
fix(rln): correct rln wasm path 2022-03-18 14:23:23 +08:00
Oskar Thoren be1fafd27f
feat(rln): add rln zkey based circuit abstraction
Different from CircomConfig etc
2022-03-18 14:13:10 +08:00
Oskar Thoren c566b29c6d
docs: add notes and todos 2022-03-18 13:38:48 +08:00
Oskar Thoren 6fdaf3474b
docs: add todos 2022-03-18 13:21:09 +08:00
Oskar Thoren 9cb37a229d
refactor(rln): use semaphore-rs as dep
Instead of manually importing moving target

Assumes public functions etc are exposed and that code bases /
priorities end up developing in same way

1) Upstream changes
2) Keep fork up to date
3) Keep option open to embed it as appropriate
2022-03-18 12:57:11 +08:00
Oskar Thoren 3314aba6cc
refactor(rln): Use PoseidonTree
Some LE stuff to sort
2022-03-17 19:15:11 +08:00
Oskar Thoren 6881a078d6
feat(rln): Add IncrementalMerkleTree to RLN
- Sapling-based version
- Also Update ffi with get_root
2022-03-17 16:00:50 +08:00
Oskar Thoren 14aaf696d3
feat(rln): import sapling-based merkle impl 2022-03-17 15:39:14 +08:00
Oskar Thoren 445c12da29
feat(rln): import sapling-based poseidon
From RLN lib, should probably be rewritten to use arkworks
2022-03-17 15:24:36 +08:00
Oskar Thoren 0774674c6e
test(rln): merkle proof 2022-03-17 13:59:00 +08:00
Oskar Thoren ccdf1e75d7
feat(rln): add debug impl for PoseidonHash 2022-03-16 16:40:25 +08:00
Oskar Thoren 9b5cd131c6
test(rln): ignore expensive test by default 2022-03-16 16:05:41 +08:00
Oskar Thoren 826a02f652
feat(rln): add hash, merkle and poseidon tree
Import from existing semaphore-rs
2022-03-16 16:05:23 +08:00
Oskar Thoren 83ef5ae3c3
chore: make clippy happy 2022-03-16 14:30:51 +08:00
Oskar Thoren 292ece2945
style: cargo fmt 2022-03-16 14:18:54 +08:00
Oskar Thoren 6717a24c07
chore(rln): clippy ignore unsafe
Already wrapped in unsafe block but doesn't seem to work. Whole function
can be made unsafe but shouldn't be necessary from what I can tell.
2022-03-16 14:16:43 +08:00
Oskar Thoren abe67c8d4a
chore: use remote instead of local deps 2022-03-16 14:01:44 +08:00
Oskar Thoren 0dbf417e63
fix(rln): use rln in public module
Previously this was using Multipler boilerplate. This also fixes tests.
2022-03-16 13:54:02 +08:00
Oskar Thoren 15c331db36
Add identity poseidon test 2022-03-15 18:04:11 +08:00
Oskar Thoren c718101ff1
import util for fr/bigint 2022-03-15 17:51:13 +08:00
Oskar Thoren b2fe1bd99b
more deps 2022-03-15 17:48:42 +08:00
Oskar Thoren b2a301a967
Import identity.rs from semaphore-rs 2022-03-15 17:30:44 +08:00
Oskar Thoren 751fd22951
Add deps 2022-03-15 17:29:40 +08:00
Oskar Thoren f090f199ac
Add poseidon-rs 2022-03-15 17:27:24 +08:00
Oskar Thoren b23dabab4f
Update RLN README 2022-03-11 18:09:45 +08:00
Oskar Thoren 4737dd34c1
Adapt rln fields etc
Proof works!
2022-03-11 18:08:41 +08:00
Oskar Thoren 224589a1ed
Add rln r1cs wasm files 2022-03-11 17:55:55 +08:00
Oskar Thoren 2af04cc729
Init rln from poseidon-tornado 2022-03-11 17:55:46 +08:00