Skip to content

Add rust overlay and update shell dependencies #302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

markoburcul
Copy link
Contributor

@markoburcul markoburcul commented Apr 23, 2025

It was requested to use newer version of Rust, so I added the https://github.com/oxalica/rust-overlay to have the most recent rust toolchain. Some of the dependencies needed to compile everything (make all) within shell weren't there so I had to add them. Also, within the Makefile the installation of wasm-pack using script downloaded from the internet was replaced with installation using cargo - same result but more safe.

@markoburcul markoburcul requested review from jakubgs and vinhtc27 April 23, 2025 10:06
Copy link

Benchmark for 0507291

Click to view benchmark
Test Base PR %
FullMerkleTree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::delete 888.7±31.57ns 876.6±12.38ns -1.36%
FullMerkleTree::get 0.0±0.00ns 0.0±0.00ns NaN%
FullMerkleTree::get_empty_leaves_indices 7.8±0.12ns 7.8±0.13ns 0.00%
FullMerkleTree::get_subtree_root 3.7±0.24ns 3.7±0.12ns 0.00%
FullMerkleTree::override_range 1365.0±17.81ns 1357.1±18.18ns -0.58%
FullMerkleTree::set 878.4±14.00ns 868.3±11.20ns -1.15%
OptimalMerkleTree::compute_root 1001.8±13.93ns 1000.7±11.95ns -0.11%
OptimalMerkleTree::delete 1007.8±9.76ns 1006.6±12.64ns -0.12%
OptimalMerkleTree::get 22.5±0.27ns 22.6±0.43ns +0.44%
OptimalMerkleTree::get_empty_leaves_indices 7.5±0.08ns 7.5±0.11ns 0.00%
OptimalMerkleTree::get_subtree_root 24.1±0.36ns 24.1±0.32ns 0.00%
OptimalMerkleTree::override_range 1155.1±15.00ns 1158.0±23.34ns +0.25%
OptimalMerkleTree::set 1004.3±11.77ns 1004.2±12.22ns -0.01%
poseidon Fr/Array hash/10 139.5±0.87µs 70.0 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1502.1±1.45µs 65.0 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.1±0.01ms 64.5 KElem/sec N/A N/A
poseidon Fr/Single hash 13.8±0.02µs 69.1 MElem/sec N/A N/A

Copy link

Benchmark for 0507291

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 13.6±0.20ms 13.6±0.19ms 0.00%
OptimalMerkleTree::::full_height_gen 802.8±4.89µs 793.7±16.16µs -1.13%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 373.0±4.90ns 376.4±5.49ns +0.91%
Pmtree::get_empty_leaves_indices 8.7±0.12ns 8.7±0.08ns 0.00%
Pmtree::get_subtree_root 548.9±8.40ns 540.8±7.10ns -1.48%
Pmtree::override_range 232.5±3.96µs 233.4±7.48µs +0.39%
Pmtree::set 50.6±0.40µs 50.7±0.57µs +0.20%
Pmtree:delete 50.7±0.55µs 50.8±1.08µs +0.20%
Set/FullMerkleTree::::set/1 514.2±4.43µs 515.7±5.20µs +0.29%
Set/FullMerkleTree::::set/10 5.2±0.01ms 5.2±0.07ms 0.00%
Set/FullMerkleTree::::set/100 51.6±0.20ms 51.8±0.59ms +0.39%
Set/FullMerkleTree::::set_range/1 513.3±2.38µs 512.7±3.94µs -0.12%
Set/FullMerkleTree::::set_range/10 703.7±4.64µs 703.9±3.68µs +0.03%
Set/FullMerkleTree::::set_range/100 3.1±0.01ms 3.1±0.07ms 0.00%
Set/OptimalMerkleTree::::set/1 511.9±5.24µs 514.8±3.16µs +0.57%
Set/OptimalMerkleTree::::set/10 5.3±0.03ms 5.3±0.02ms 0.00%
Set/OptimalMerkleTree::::set/100 53.2±0.12ms 53.1±0.16ms -0.19%
Set/OptimalMerkleTree::::set_range/1 515.5±5.80µs 515.1±3.31µs -0.08%
Set/OptimalMerkleTree::::set_range/10 704.9±2.40µs 706.9±3.19µs +0.28%
Set/OptimalMerkleTree::::set_range/100 3.0±0.01ms 3.0±0.01ms 0.00%
zkey::zkey_from_raw 678.6±0.23ms 686.5±7.16ms +1.16%

Copy link

Benchmark for 0507291

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_height_gen 12.7±0.18ms 12.4±0.16ms -2.36%
OptimalMerkleTree::::full_height_gen 783.4±5.11µs 783.0±4.84µs -0.05%
Pmtree::compute_root 0.0±0.00ns 0.0±0.00ns NaN%
Pmtree::get 370.3±4.82ns 375.3±5.85ns +1.35%
Pmtree::get_empty_leaves_indices 8.7±0.07ns 8.7±0.13ns 0.00%
Pmtree::get_subtree_root 548.0±5.05ns 536.7±9.50ns -2.06%
Pmtree::override_range 225.8±3.47µs 225.7±4.08µs -0.04%
Pmtree::set 49.9±0.32µs 50.2±1.24µs +0.60%
Pmtree:delete 50.3±1.78µs 50.1±0.54µs -0.40%
Set/FullMerkleTree::::set/1 515.1±4.70µs 513.6±4.42µs -0.29%
Set/FullMerkleTree::::set/10 5.1±0.06ms 5.1±0.01ms 0.00%
Set/FullMerkleTree::::set/100 51.9±0.93ms 51.5±0.11ms -0.77%
Set/FullMerkleTree::::set_range/1 514.3±4.62µs 513.3±4.43µs -0.19%
Set/FullMerkleTree::::set_range/10 704.1±5.22µs 703.2±4.98µs -0.13%
Set/FullMerkleTree::::set_range/100 3.1±0.01ms 3.1±0.00ms 0.00%
Set/OptimalMerkleTree::::set/1 515.3±4.46µs 514.6±4.35µs -0.14%
Set/OptimalMerkleTree::::set/10 5.3±0.01ms 5.3±0.06ms 0.00%
Set/OptimalMerkleTree::::set/100 53.2±0.11ms 53.2±0.12ms 0.00%
Set/OptimalMerkleTree::::set_range/1 514.5±5.45µs 515.4±5.73µs +0.17%
Set/OptimalMerkleTree::::set_range/10 705.0±3.43µs 704.8±3.88µs -0.03%
Set/OptimalMerkleTree::::set_range/100 3.0±0.00ms 3.0±0.01ms 0.00%
arkzkey::arkzkey_from_raw_uncompressed 5.7±0.00ms 5.7±0.00ms 0.00%
zkey::zkey_from_raw 680.6±0.43ms 682.1±3.97ms +0.22%

@vinhtc27
Copy link
Contributor

Hey! I’ve made some changes related to the rln-wasm module in this PR, which now requires installing wasm-bindgen-cli and binaryen. That PR is currently under review for merging into master.

This PR may need updates to stay in sync, so it's best to wait until the other PR is merged before reviewing.

@markoburcul
Copy link
Contributor Author

This PR may need updates to stay in sync, so it's best to wait until the other PR is merged before reviewing.

Sure, just ping me when that PR is merged :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Nix environment build: Environment build time report, and project build failure.
2 participants