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

chore(rln): further refactoring of interface #261

Closed rymnc closed 2 months ago

rymnc commented 2 months ago

Refactored the conditional compilation and import statements in the circuit.rs and updated method signatures to improve code clarity. Also, updated error handling in function vk_from_raw for better legibility.

github-actions[bot] commented 2 months ago

Benchmark for 049c601

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | FullMerkleTree::compute_root | 0.0±0.00ns | 0.0±0.00ns | NaN% | | FullMerkleTree::delete | 848.1±29.31ns | 851.3±22.13ns | +0.38% | | FullMerkleTree::get | 0.0±0.00ns | 0.0±0.00ns | NaN% | | FullMerkleTree::get_empty_leaves_indices | 7.4±0.11ns | 7.5±0.25ns | +1.35% | | FullMerkleTree::get_subtree_root | 0.9±0.02ns | 0.9±0.01ns | 0.00% | | FullMerkleTree::override_range | 1316.2±23.71ns | 1311.3±20.01ns | -0.37% | | FullMerkleTree::set | **841.9±7.78ns** | 850.3±12.70ns | **+1.00%** | | OptimalMerkleTree::compute_root | **1009.8±9.55ns** | 1040.3±118.34ns | **+3.02%** | | OptimalMerkleTree::delete | **1006.6±20.06ns** | 1022.7±14.79ns | **+1.60%** | | OptimalMerkleTree::get | 24.0±0.93ns | **23.7±0.19ns** | **-1.25%** | | OptimalMerkleTree::get_empty_leaves_indices | **7.1±0.04ns** | 7.2±0.56ns | **+1.41%** | | OptimalMerkleTree::get_subtree_root | 24.4±0.37ns | 24.3±0.33ns | -0.41% | | OptimalMerkleTree::override_range | 4.2±0.08µs | 4.2±0.10µs | 0.00% | | OptimalMerkleTree::set | 1006.8±29.86ns | 1022.6±26.47ns | +1.57% |
github-actions[bot] commented 2 months ago

Benchmark for 049c601

Click to view benchmark | Test | Base | PR | % | |------|--------------|------------------|---| | FullMerkleTree::::full_height_gen | 15.5±0.65ms | 15.4±0.11ms | -0.65% | | OptimalMerkleTree::::full_height_gen | 574.7±8.34µs | **568.1±6.26µs** | **-1.15%** | | Pmtree::compute_root | 0.0±0.00ns | 0.0±0.00ns | NaN% | | Pmtree::get | 339.2±4.99ns | 337.5±4.60ns | -0.50% | | Pmtree::get_empty_leaves_indices | 8.7±0.16ns | 8.7±0.18ns | 0.00% | | Pmtree::get_subtree_root | 486.6±7.44ns | 480.9±22.58ns | -1.17% | | Pmtree::override_range | **236.2±7.51µs** | 240.7±3.28µs | **+1.91%** | | Pmtree::set | **53.6±1.01µs** | 58.2±0.87µs | **+8.58%** | | Pmtree:delete | **53.7±0.64µs** | 61.4±1.19µs | **+14.34%** | | Set/FullMerkleTree::::set/1 | 552.7±19.33µs | **544.2±7.25µs** | **-1.54%** | | Set/FullMerkleTree::::set/10 | 5.6±0.02ms | **5.4±0.06ms** | **-3.57%** | | Set/FullMerkleTree::::set/100 | 55.7±0.20ms | **54.8±0.10ms** | **-1.62%** | | Set/FullMerkleTree::::set_range/1 | 552.7±7.43µs | **544.4±6.19µs** | **-1.50%** | | Set/FullMerkleTree::::set_range/10 | 756.6±3.14µs | **745.6±4.69µs** | **-1.45%** | | Set/FullMerkleTree::::set_range/100 | 3.3±0.01ms | 3.3±0.01ms | 0.00% | | Set/OptimalMerkleTree::::set/1 | 560.7±7.11µs | **544.0±9.38µs** | **-2.98%** | | Set/OptimalMerkleTree::::set/10 | 5.6±0.01ms | **5.5±0.01ms** | **-1.79%** | | Set/OptimalMerkleTree::::set/100 | 56.0±0.44ms | **55.0±0.28ms** | **-1.79%** | | Set/OptimalMerkleTree::::set_range/1 | 557.6±8.91µs | **543.7±5.64µs** | **-2.49%** | | Set/OptimalMerkleTree::::set_range/10 | 5.6±0.02ms | **5.4±0.02ms** | **-3.57%** | | Set/OptimalMerkleTree::::set_range/100 | 55.7±0.18ms | **54.8±0.15ms** | **-1.62%** | | vk::vk_from_ark_serialized | 1513.7±13.67ns | 1508.7±15.40ns | -0.33% | | zkey::zkey_from_raw | 3.3±0.01s | 3.3±0.01s | 0.00% |