vacp2p / zerokit

A set of Zero Knowledge modules, written in Rust and designed to be used in other system programming environments.
Apache License 2.0
130 stars 7 forks source link

feat(rln): expose set_metadata and get_metadata public and ffi apis #178

Closed rymnc closed 1 year ago

rymnc commented 1 year ago

This feature is required so that downstream users of this library can set metadata related to the usage of the tree in the underlying database. This reduces client side complexity.

github-actions[bot] commented 1 year ago

Benchmark for 3762dbd

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | FullMerkleTree::compute_root | 0.1±0.00ns | 0.1±0.00ns | 0.00% | | FullMerkleTree::delete | **1475.9±1.34ns** | 1484.0±15.87ns | **+0.55%** | | FullMerkleTree::get | **3.6±0.01ns** | 3.8±0.16ns | **+5.56%** | | FullMerkleTree::override_range | 3.7±0.01µs | 3.7±0.01µs | 0.00% | | FullMerkleTree::set | 1481.9±3.56ns | **1473.9±3.70ns** | **-0.54%** | | OptimalMerkleTree::compute_root | 1666.3±2.62ns | **1654.4±4.83ns** | **-0.71%** | | OptimalMerkleTree::delete | 1699.0±55.14ns | 1737.9±80.60ns | +2.29% | | OptimalMerkleTree::get | 31.8±1.13ns | **30.8±0.08ns** | **-3.14%** | | OptimalMerkleTree::override_range | 8.4±0.01µs | 8.4±0.06µs | 0.00% | | OptimalMerkleTree::set | 1772.3±123.99ns | 1754.1±79.09ns | -1.03% |
github-actions[bot] commented 1 year ago

Benchmark for 3762dbd

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Pmtree::compute_root | **1.7±0.00ns** | 2.3±0.00ns | **+35.29%** | | Pmtree::get | 427.7±0.31ns | 427.8±0.33ns | +0.02% | | Pmtree::override_range | 175.3±5.74µs | 174.2±6.44µs | -0.63% | | Pmtree::set | 68.1±0.06µs | **67.9±0.18µs** | **-0.29%** | | Pmtree:delete | 68.8±0.13µs | **68.0±0.06µs** | **-1.16%** |
github-actions[bot] commented 1 year ago

Benchmark for 3762dbd

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | Pmtree::compute_root | **1.7±0.00ns** | 2.3±0.00ns | **+35.29%** | | Pmtree::get | **427.0±0.26ns** | 428.1±4.53ns | **+0.26%** | | Pmtree::override_range | 173.2±6.52µs | 171.9±6.89µs | -0.75% | | Pmtree::set | **69.5±0.05µs** | 69.7±0.05µs | **+0.29%** | | Pmtree:delete | 68.4±0.05µs | **68.0±0.04µs** | **-0.58%** |
rymnc commented 1 year ago

Cool PR. It's missing exposing the function in wasm but that can be done in a separate PR

Good point! Will create a follow up pr for it.