Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
acb49bc
refactor: move pmtree's sled wrapper into rln module and cleanup erro…
vinhtc27 Jun 23, 2026
ec8aa83
refactor: share Merkle root calc, drop needless allocations
vinhtc27 Jun 24, 2026
c83349f
refactor: make PmTree generic over the hash
vinhtc27 Jun 24, 2026
d8e4beb
refactor: per-backend tree error type and use new pmtree v3.0.0
vinhtc27 Jun 25, 2026
16ba60a
refactor: rewrite override_range as a shared default trait method rou…
vinhtc27 Jun 25, 2026
599a047
chore: update Cargo.lock [ci-skip]
vinhtc27 Jun 25, 2026
0b7ae75
fix(utils): make delete reject out-of-range index across all backends
vinhtc27 Jun 25, 2026
530dfcf
refactor: de-overload ZerokitMerkleTreeError and unify error across a…
vinhtc27 Jun 25, 2026
a20da1c
chore: remove unwrap from ffi_rln.rs [ci-skip]
vinhtc27 Jun 25, 2026
9f8aeaa
refactor: address PR11's comments
vinhtc27 Jun 30, 2026
2eb127e
refactor: make PmTree generic over the pmtree Database backend
vinhtc27 Jun 30, 2026
3c9485c
chore: bump pmtree to v3.0.0
vinhtc27 Jun 30, 2026
d70acba
feat: enhance override_range and validate_override_range for atomic o…
vinhtc27 Jun 30, 2026
569b582
chore: MemDb -> MemDB
vinhtc27 Jun 30, 2026
bc5a7f2
chore(rln-wasm) reduce iterations in browser to avoid crash
vinhtc27 Jul 1, 2026
f4e423d
chore: update Coverage CI
vinhtc27 Jul 1, 2026
ca56a61
refactor: continue address PR11's comments
vinhtc27 Jul 2, 2026
3ee3838
refactor: use IdSecret for seeded_keygen
vinhtc27 Jul 2, 2026
9c490c8
chore: add TODO
vinhtc27 Jul 2, 2026
dccd0c2
chore: add more TODO(PR12) [skip-ci]
vinhtc27 Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ jobs:
run: cargo install cargo-tarpaulin
- name: Run coverage
run: |
cargo tarpaulin --out Html --output-dir ./coverage -- --test-threads 1
cargo tarpaulin --engine llvm --timeout 300 --out Html --output-dir ./coverage -- --test-threads 1
- name: Upload coverage reports
uses: actions/upload-artifact@v7
with:
Expand Down
51 changes: 44 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 44 additions & 7 deletions rln-cli/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 9 additions & 5 deletions rln-cli/src/examples/multi_message_id.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ use std::{
use clap::{Parser, Subcommand};
use rln::prelude::{
default_graph_multi, default_zkey_multi, hash_to_field_le, keygen, poseidon_hash,
ArkGroth16Backend, Fr, IdSecret, PmTree, PmTreeConfig, PoseidonHash, RLNBuilder,
RLNProofValues, RLNWitnessInput, RecoverSecret, Stateful, RLN,
ArkGroth16Backend, Fr, IdSecret, PmTree, PmTreeSledConfig, PoseidonHash, RLNBuilder,
RLNProofValues, RLNWitnessInput, RecoverSecret, SledDB, Stateful, RLN,
};
use zerokit_utils::merkle_tree::{Hasher, ZerokitMerkleProof, ZerokitMerkleTree};

Expand Down Expand Up @@ -61,14 +61,14 @@ impl Identity {
}

struct RLNSystem {
rln: RLN<Stateful<PmTree>, ArkGroth16Backend>,
rln: RLN<Stateful<PmTree<SledDB, PoseidonHash>>, ArkGroth16Backend>,
used_nullifiers: HashMap<Fr, RLNProofValues>,
local_identities: HashMap<usize, Identity>,
}

impl RLNSystem {
fn new() -> Result<Self> {
let pm_tree_config: PmTreeConfig = r#"{
let pm_tree_config: PmTreeSledConfig = r#"{
"path": "./database",
"temporary": false,
"cache_capacity": 1073741824,
Expand All @@ -78,7 +78,11 @@ impl RLNSystem {
"tree_depth": 20
}"#
.parse()?;
let pm_tree = PmTree::new(TREE_DEPTH, PoseidonHash::default_leaf(), pm_tree_config)?;
let pm_tree = PmTree::<SledDB, PoseidonHash>::new(
TREE_DEPTH,
PoseidonHash::default_leaf(),
pm_tree_config,
)?;
let rln = RLNBuilder::stateful()
.tree(pm_tree)
.graph(default_graph_multi().clone())
Expand Down
15 changes: 6 additions & 9 deletions rln-cli/src/examples/relay.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,10 @@ use std::{
use clap::{Parser, Subcommand};
use rln::prelude::{
graph_from_raw, hash_to_field_le, keygen, poseidon_hash, zkey_from_raw, ArkGroth16Backend, Fr,
IdSecret, PmTree, PmTreeConfig, PoseidonHash, RLNBuilder, RLNProofValues, RLNWitnessInput,
RecoverSecret, Stateful, RLN,
};
use zerokit_utils::{
merkle_tree::{Hasher, ZerokitMerkleProof, ZerokitMerkleTree},
pm_tree::Mode,
IdSecret, PmTree, PmTreeMode, PmTreeSledConfig, PoseidonHash, RLNBuilder, RLNProofValues,
RLNWitnessInput, RecoverSecret, SledDB, Stateful, RLN,
};
use zerokit_utils::merkle_tree::{Hasher, ZerokitMerkleProof, ZerokitMerkleTree};

const MESSAGE_LIMIT: u32 = 1;

Expand Down Expand Up @@ -62,7 +59,7 @@ impl Identity {
}

struct RLNSystem {
rln: RLN<Stateful<PmTree>, ArkGroth16Backend>,
rln: RLN<Stateful<PmTree<SledDB, PoseidonHash>>, ArkGroth16Backend>,
used_nullifiers: HashMap<Fr, RLNProofValues>,
local_identities: HashMap<usize, Identity>,
}
Expand All @@ -82,12 +79,12 @@ impl RLNSystem {
}
let zkey = zkey_from_raw(&resources[0])?;
let graph = graph_from_raw(&resources[1], Some(TREE_DEPTH), None)?;
let pm_tree_config = PmTreeConfig::new()
let pm_tree_config = PmTreeSledConfig::new()
.path("./database")
.temporary(false)
.cache_capacity(1073741824)
.flush_every_ms(500)
.mode(Mode::HighThroughput)
.mode(PmTreeMode::HighThroughput)
.use_compression(false)
.build()?;
let pm_tree = PmTree::new(TREE_DEPTH, PoseidonHash::default_leaf(), pm_tree_config)?;
Expand Down
Loading
Loading