Skip to content

refactor(PR 0): add message mode and remove multi message id flag#403

Merged
vinhtc27 merged 13 commits intomasterfrom
refactor/pr0-add-message-mode-and-remove-multi-message-id-flag
Apr 30, 2026
Merged

refactor(PR 0): add message mode and remove multi message id flag#403
vinhtc27 merged 13 commits intomasterfrom
refactor/pr0-add-message-mode-and-remove-multi-message-id-flag

Conversation

@vinhtc27
Copy link
Copy Markdown
Contributor

Changes:

  • Removed multi-message-id feature flag
  • Removed all compiled time gated config flag #cfg
  • Update all related examples, documentations, and CI workflows

@vinhtc27 vinhtc27 changed the title refacor(rln): add message mode and remove multi message id flag (PR 0) refator(rln): add message mode and remove multi message id flag (PR 0) Apr 14, 2026
@vinhtc27 vinhtc27 changed the title refator(rln): add message mode and remove multi message id flag (PR 0) refator(PR 0): add message mode and remove multi message id flag Apr 14, 2026
@vinhtc27 vinhtc27 changed the title refator(PR 0): add message mode and remove multi message id flag refactor(PR 0): add message mode and remove multi message id flag Apr 14, 2026
@vinhtc27 vinhtc27 requested a review from seemenkina April 14, 2026 17:51
@github-actions
Copy link
Copy Markdown

Benchmark for e625b3e

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 9.3±0.47ms 9.7±0.65ms +4.30%
OptimalMerkleTree::::full_depth_gen 530.7±5.03µs 529.7±5.58µs -0.19%
Pmtree::delete 42.2±0.29µs 42.1±0.13µs -0.24%
Pmtree::get 254.6±3.62ns 248.2±1.99ns -2.51%
Pmtree::get_empty_leaves_indices 6.8±0.07ns 6.9±0.25ns +1.47%
Pmtree::get_subtree_root 289.0±3.52ns 296.8±4.81ns +2.70%
Pmtree::override_range 81.5±3.62µs 81.4±2.22µs -0.12%
Pmtree::set 42.3±0.52µs 42.1±0.48µs -0.47%
Set/FullMerkleTree::::set/1 401.6±2.58µs 402.4±3.98µs +0.20%
Set/FullMerkleTree::::set/10 4.0±0.00ms 4.0±0.07ms 0.00%
Set/FullMerkleTree::::set/100 40.5±0.48ms 40.5±0.06ms 0.00%
Set/FullMerkleTree::::set_range/1 401.5±2.58µs 402.9±5.91µs +0.35%
Set/FullMerkleTree::::set_range/10 542.4±5.17µs 542.0±2.84µs -0.07%
Set/FullMerkleTree::::set_range/100 1575.1±26.68µs 1578.5±15.43µs +0.22%
Set/OptimalMerkleTree::::set/1 402.3±4.58µs 402.9±5.82µs +0.15%
Set/OptimalMerkleTree::::set/10 4.0±0.00ms 4.0±0.00ms 0.00%
Set/OptimalMerkleTree::::set/100 40.7±0.55ms 40.5±0.04ms -0.49%
Set/OptimalMerkleTree::::set_range/1 402.0±1.44µs 402.2±3.17µs +0.05%
Set/OptimalMerkleTree::::set_range/10 552.2±4.33µs 552.2±4.31µs 0.00%
Set/OptimalMerkleTree::::set_range/100 1525.1±34.21µs 1543.6±34.89µs +1.21%
rln_finish_partial_proof 55.9±0.72ms 55.9±0.75ms 0.00%
rln_full_proof 154.4±5.27ms 153.2±1.13ms -0.78%
rln_partial_proof_generation 106.2±0.91ms 106.3±1.23ms +0.09%

@github-actions
Copy link
Copy Markdown

Benchmark for e625b3e

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 18.1±0.30µs 18.1±0.34µs 0.00%
FullMerkleTree::get 0.8±0.00ns 0.8±0.01ns 0.00%
FullMerkleTree::get_empty_leaves_indices 983.4±10.44µs 984.8±23.50µs +0.14%
FullMerkleTree::get_subtree_root 9.9±0.07ns 10.0±0.08ns +1.01%
FullMerkleTree::override_range 1901.2±38.56µs 1898.7±41.98µs -0.13%
FullMerkleTree::set 8.9±0.12µs 9.0±0.12µs +1.12%
OptimalMerkleTree::delete 21.0±0.30µs 21.0±0.31µs 0.00%
OptimalMerkleTree::get 51.7±0.76ns 51.4±0.51ns -0.58%
OptimalMerkleTree::get_empty_leaves_indices 987.7±24.89µs 985.0±16.02µs -0.27%
OptimalMerkleTree::get_subtree_root 26.1±0.20ns 26.2±0.41ns +0.38%
OptimalMerkleTree::override_range 4.7±0.31ms 5.4±0.42ms +14.89%
OptimalMerkleTree::set 10.7±0.19µs 10.7±0.14µs 0.00%
poseidon Fr/Array hash/10 140.8±0.34µs 69.3 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1512.9±3.97µs 64.5 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 15.2±0.03ms 64.1 KElem/sec N/A N/A
poseidon Fr/Single hash 13.9±0.02µs 68.4 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 477.2±21.75µs 472.3±13.70µs -1.03%
validate_override_range/FullMerkleTree/override_range/64 68.2±2.27µs 68.3±3.49µs +0.15%
validate_override_range/FullMerkleTree/override_range/65536 437.8±1.90ms 414.8±1.77ms -5.25%
validate_override_range/FullMerkleTree/override_range/8192 8.7±0.03ms 8.5±0.11ms -2.30%
validate_override_range/OptimalMerkleTree/override_range/1024 645.9±10.03µs 646.8±11.92µs +0.14%
validate_override_range/OptimalMerkleTree/override_range/64 93.3±6.31µs 93.6±4.90µs +0.32%
validate_override_range/OptimalMerkleTree/override_range/65536 460.1±2.83ms 458.4±5.20ms -0.37%
validate_override_range/OptimalMerkleTree/override_range/8192 9.9±0.04ms 10.0±0.09ms +1.01%
validate_override_range/validate_only/1024 8.3±0.07µs 11.3±1.63µs +36.14%
validate_override_range/validate_only/64 359.1±3.35ns 359.1±3.90ns 0.00%
validate_override_range/validate_only/65536 871.3±10.46µs 872.0±8.05µs +0.08%
validate_override_range/validate_only/8192 105.6±0.91µs 106.3±0.95µs +0.66%

@github-actions
Copy link
Copy Markdown

Benchmark for 88f5b5b

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 11.1±0.17ms 11.1±0.12ms 0.00%
OptimalMerkleTree::::full_depth_gen 700.4±5.80µs 688.0±11.59µs -1.77%
Pmtree::delete 50.8±0.44µs 50.3±0.54µs -0.98%
Pmtree::get 303.3±4.46ns 287.9±4.81ns -5.08%
Pmtree::get_empty_leaves_indices 8.4±0.11ns 8.4±0.06ns 0.00%
Pmtree::get_subtree_root 378.7±5.89ns 385.1±5.58ns +1.69%
Pmtree::override_range 100.4±0.98µs 100.1±0.96µs -0.30%
Pmtree::set 50.9±0.53µs 50.3±0.42µs -1.18%
Set/FullMerkleTree::::set/1 519.3±5.28µs 519.0±3.80µs -0.06%
Set/FullMerkleTree::::set/10 5.2±0.01ms 5.2±0.02ms 0.00%
Set/FullMerkleTree::::set/100 52.1±0.06ms 52.2±0.88ms +0.19%
Set/FullMerkleTree::::set_range/1 522.6±19.96µs 519.1±3.75µs -0.67%
Set/FullMerkleTree::::set_range/10 708.2±4.42µs 709.8±6.41µs +0.23%
Set/FullMerkleTree::::set_range/100 1883.9±32.28µs 1879.7±18.83µs -0.22%
Set/OptimalMerkleTree::::set/1 521.3±6.34µs 519.8±4.81µs -0.29%
Set/OptimalMerkleTree::::set/10 5.2±0.10ms 5.2±0.01ms 0.00%
Set/OptimalMerkleTree::::set/100 52.3±0.30ms 52.4±0.27ms +0.19%
Set/OptimalMerkleTree::::set_range/1 522.2±17.60µs 520.4±2.80µs -0.34%
Set/OptimalMerkleTree::::set_range/10 714.9±19.48µs 712.7±5.45µs -0.31%
Set/OptimalMerkleTree::::set_range/100 1820.2±13.64µs 1819.8±18.47µs -0.02%
rln_finish_partial_proof 67.0±0.99ms 67.0±1.04ms 0.00%
rln_full_proof 184.4±1.77ms 183.9±3.00ms -0.27%
rln_partial_proof_generation 127.4±1.05ms 127.0±2.38ms -0.31%

@github-actions
Copy link
Copy Markdown

Benchmark for 88f5b5b

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 21.4±0.30µs 21.5±0.32µs +0.47%
FullMerkleTree::get 0.9±0.00ns 0.9±0.00ns 0.00%
FullMerkleTree::get_empty_leaves_indices 1112.0±21.66µs 1109.0±5.96µs -0.27%
FullMerkleTree::get_subtree_root 10.9±0.09ns 10.9±0.07ns 0.00%
FullMerkleTree::override_range 2.1±0.02ms 2.1±0.02ms 0.00%
FullMerkleTree::set 10.6±0.13µs 10.7±0.35µs +0.94%
OptimalMerkleTree::delete 23.8±0.37µs 24.1±0.32µs +1.26%
OptimalMerkleTree::get 35.4±0.67ns 35.3±0.82ns -0.28%
OptimalMerkleTree::get_empty_leaves_indices 1111.2±23.41µs 1113.3±25.78µs +0.19%
OptimalMerkleTree::get_subtree_root 25.6±0.42ns 25.3±0.40ns -1.17%
OptimalMerkleTree::override_range 4.8±0.10ms 4.5±0.15ms -6.25%
OptimalMerkleTree::set 12.1±0.17µs 12.4±0.29µs +2.48%
poseidon Fr/Array hash/10 151.7±0.16µs 64.4 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1586.2±19.49µs 61.6 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 16.7±0.02ms 58.4 KElem/sec N/A N/A
poseidon Fr/Single hash 15.2±0.06µs 62.7 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 515.8±21.10µs 536.3±26.36µs +3.97%
validate_override_range/FullMerkleTree/override_range/64 76.2±2.15µs 76.2±1.59µs 0.00%
validate_override_range/FullMerkleTree/override_range/65536 479.1±9.88ms 481.1±8.35ms +0.42%
validate_override_range/FullMerkleTree/override_range/8192 9.5±0.13ms 9.7±0.05ms +2.11%
validate_override_range/OptimalMerkleTree/override_range/1024 707.2±17.04µs 705.7±29.91µs -0.21%
validate_override_range/OptimalMerkleTree/override_range/64 97.3±6.06µs 97.0±3.49µs -0.31%
validate_override_range/OptimalMerkleTree/override_range/65536 515.6±25.23ms 539.3±43.55ms +4.60%
validate_override_range/OptimalMerkleTree/override_range/8192 11.9±0.41ms 11.7±0.58ms -1.68%
validate_override_range/validate_only/1024 9.3±0.14µs 9.2±0.13µs -1.08%
validate_override_range/validate_only/64 374.2±5.19ns 369.2±2.99ns -1.34%
validate_override_range/validate_only/65536 913.9±10.77µs 908.2±11.79µs -0.62%
validate_override_range/validate_only/8192 93.6±1.17µs 93.6±1.45µs 0.00%

@github-actions
Copy link
Copy Markdown

Benchmark for ac6b9eb

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 16.3±0.50ms 15.4±0.45ms -5.52%
OptimalMerkleTree::::full_depth_gen 823.8±9.07µs 808.9±8.25µs -1.81%
Pmtree::delete 49.1±0.47µs 48.8±0.31µs -0.61%
Pmtree::get 296.6±4.27ns 291.5±5.20ns -1.72%
Pmtree::get_empty_leaves_indices 7.9±0.39ns 7.6±0.16ns -3.80%
Pmtree::get_subtree_root 361.6±5.92ns 360.3±7.40ns -0.36%
Pmtree::override_range 97.4±1.74µs 97.5±1.99µs +0.10%
Pmtree::set 49.1±0.50µs 49.1±1.84µs 0.00%
Set/FullMerkleTree::::set/1 511.2±7.40µs 501.2±8.28µs -1.96%
Set/FullMerkleTree::::set/10 5.1±0.02ms 5.0±0.03ms -1.96%
Set/FullMerkleTree::::set/100 51.3±0.15ms 50.8±1.08ms -0.97%
Set/FullMerkleTree::::set_range/1 510.8±8.91µs 500.6±8.01µs -2.00%
Set/FullMerkleTree::::set_range/10 693.9±4.84µs 686.8±9.73µs -1.02%
Set/FullMerkleTree::::set_range/100 1945.6±23.57µs 1935.1±22.00µs -0.54%
Set/OptimalMerkleTree::::set/1 514.3±9.62µs 501.1±9.46µs -2.57%
Set/OptimalMerkleTree::::set/10 5.1±0.02ms 5.0±0.03ms -1.96%
Set/OptimalMerkleTree::::set/100 51.7±0.22ms 50.6±0.17ms -2.13%
Set/OptimalMerkleTree::::set_range/1 511.1±9.07µs 500.5±4.05µs -2.07%
Set/OptimalMerkleTree::::set_range/10 724.1±10.36µs 720.2±4.72µs -0.54%
Set/OptimalMerkleTree::::set_range/100 1893.0±23.83µs 1903.0±33.76µs +0.53%
rln_finish_partial_proof 76.8±1.49ms 76.0±1.18ms -1.04%
rln_full_proof 212.0±7.43ms 212.0±7.58ms 0.00%
rln_partial_proof_generation 144.8±1.95ms 145.2±2.66ms +0.28%

@github-actions
Copy link
Copy Markdown

Benchmark for ac6b9eb

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 20.8±0.33µs 20.9±0.24µs +0.48%
FullMerkleTree::get 0.9±0.00ns 0.9±0.00ns 0.00%
FullMerkleTree::get_empty_leaves_indices 1111.6±11.95µs 1113.3±12.13µs +0.15%
FullMerkleTree::get_subtree_root 10.9±0.08ns 10.9±0.11ns 0.00%
FullMerkleTree::override_range 2.1±0.02ms 2.1±0.02ms 0.00%
FullMerkleTree::set 10.3±0.18µs 10.3±0.21µs 0.00%
OptimalMerkleTree::delete 24.7±0.47µs 23.9±0.38µs -3.24%
OptimalMerkleTree::get 35.3±0.37ns 35.3±0.81ns 0.00%
OptimalMerkleTree::get_empty_leaves_indices 1109.9±9.96µs 1111.9±24.32µs +0.18%
OptimalMerkleTree::get_subtree_root 25.1±0.26ns 25.2±0.42ns +0.40%
OptimalMerkleTree::override_range 4.7±0.10ms 4.8±0.13ms +2.13%
OptimalMerkleTree::set 12.4±0.42µs 12.2±0.24µs -1.61%
poseidon Fr/Array hash/10 152.1±0.59µs 64.2 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1586.5±12.26µs 61.6 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 16.8±0.14ms 58.1 KElem/sec N/A N/A
poseidon Fr/Single hash 15.2±0.03µs 62.8 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 538.5±22.25µs 537.7±22.79µs -0.15%
validate_override_range/FullMerkleTree/override_range/64 78.8±3.04µs 78.4±4.72µs -0.51%
validate_override_range/FullMerkleTree/override_range/65536 483.6±8.90ms 490.4±5.17ms +1.41%
validate_override_range/FullMerkleTree/override_range/8192 9.7±0.20ms 10.1±0.07ms +4.12%
validate_override_range/OptimalMerkleTree/override_range/1024 713.7±18.76µs 717.6±25.08µs +0.55%
validate_override_range/OptimalMerkleTree/override_range/64 100.9±4.92µs 98.5±1.82µs -2.38%
validate_override_range/OptimalMerkleTree/override_range/65536 510.8±9.75ms 508.5±2.43ms -0.45%
validate_override_range/OptimalMerkleTree/override_range/8192 12.6±0.41ms 11.5±0.23ms -8.73%
validate_override_range/validate_only/1024 9.0±0.06µs 9.1±0.06µs +1.11%
validate_override_range/validate_only/64 362.4±4.09ns 364.0±12.22ns +0.44%
validate_override_range/validate_only/65536 890.2±15.38µs 888.7±10.87µs -0.17%
validate_override_range/validate_only/8192 91.0±1.24µs 94.3±1.11µs +3.63%

@github-actions
Copy link
Copy Markdown

Benchmark for 3cb28fd

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 9.1±0.41ms 9.2±0.11ms +1.10%
OptimalMerkleTree::::full_depth_gen 530.9±4.56µs 530.9±4.09µs 0.00%
Pmtree::delete 42.3±0.81µs 42.2±0.23µs -0.24%
Pmtree::get 246.9±3.97ns 263.7±2.08ns +6.80%
Pmtree::get_empty_leaves_indices 6.8±0.08ns 6.9±0.21ns +1.47%
Pmtree::get_subtree_root 292.9±4.99ns 304.5±6.35ns +3.96%
Pmtree::override_range 82.5±1.23µs 81.8±5.09µs -0.85%
Pmtree::set 42.1±0.13µs 42.2±0.36µs +0.24%
Set/FullMerkleTree::::set/1 406.4±3.00µs 401.4±1.66µs -1.23%
Set/FullMerkleTree::::set/10 4.1±0.06ms 4.0±0.00ms -2.44%
Set/FullMerkleTree::::set/100 40.9±0.08ms 40.6±0.69ms -0.73%
Set/FullMerkleTree::::set_range/1 406.0±3.02µs 401.6±2.72µs -1.08%
Set/FullMerkleTree::::set_range/10 549.8±14.48µs 542.8±4.48µs -1.27%
Set/FullMerkleTree::::set_range/100 1592.5±25.13µs 1582.8±20.95µs -0.61%
Set/OptimalMerkleTree::::set/1 402.7±5.15µs 402.8±5.44µs +0.02%
Set/OptimalMerkleTree::::set/10 4.0±0.01ms 4.0±0.00ms 0.00%
Set/OptimalMerkleTree::::set/100 40.6±0.12ms 40.6±0.09ms 0.00%
Set/OptimalMerkleTree::::set_range/1 403.2±7.03µs 402.4±3.06µs -0.20%
Set/OptimalMerkleTree::::set_range/10 548.6±4.21µs 551.0±5.12µs +0.44%
Set/OptimalMerkleTree::::set_range/100 1529.9±23.15µs 1529.0±21.24µs -0.06%
rln_finish_partial_proof 56.0±0.76ms 56.1±0.81ms +0.18%
rln_full_proof 153.6±1.43ms 155.8±5.93ms +1.43%
rln_partial_proof_generation 106.2±1.00ms 106.6±1.08ms +0.38%

@github-actions
Copy link
Copy Markdown

Benchmark for 3cb28fd

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 20.6±0.30µs 21.0±0.30µs +1.94%
FullMerkleTree::get 0.9±0.00ns 0.9±0.00ns 0.00%
FullMerkleTree::get_empty_leaves_indices 1112.1±26.15µs 1112.0±27.88µs -0.01%
FullMerkleTree::get_subtree_root 10.9±0.06ns 10.9±0.13ns 0.00%
FullMerkleTree::override_range 2.1±0.02ms 2.1±0.02ms 0.00%
FullMerkleTree::set 10.2±0.28µs 10.4±0.15µs +1.96%
OptimalMerkleTree::delete 23.9±0.26µs 24.0±0.28µs +0.42%
OptimalMerkleTree::get 35.6±0.43ns 36.7±1.61ns +3.09%
OptimalMerkleTree::get_empty_leaves_indices 1110.6±11.27µs 1111.9±23.45µs +0.12%
OptimalMerkleTree::get_subtree_root 25.4±0.45ns 25.5±0.54ns +0.39%
OptimalMerkleTree::override_range 4.1±0.12ms 4.7±0.07ms +14.63%
OptimalMerkleTree::set 12.1±0.17µs 12.2±0.23µs +0.83%
poseidon Fr/Array hash/10 152.7±0.34µs 64.0 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1589.4±9.27µs 61.4 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 16.7±0.02ms 58.3 KElem/sec N/A N/A
poseidon Fr/Single hash 15.2±0.01µs 62.8 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 534.2±18.43µs 535.8±17.53µs +0.30%
validate_override_range/FullMerkleTree/override_range/64 77.0±3.15µs 77.1±2.13µs +0.13%
validate_override_range/FullMerkleTree/override_range/65536 487.9±6.28ms 478.7±8.17ms -1.89%
validate_override_range/FullMerkleTree/override_range/8192 9.7±0.04ms 9.5±0.21ms -2.06%
validate_override_range/OptimalMerkleTree/override_range/1024 714.0±18.13µs 710.7±22.77µs -0.46%
validate_override_range/OptimalMerkleTree/override_range/64 97.4±2.53µs 96.3±2.00µs -1.13%
validate_override_range/OptimalMerkleTree/override_range/65536 528.1±39.11ms 534.7±41.14ms +1.25%
validate_override_range/OptimalMerkleTree/override_range/8192 11.2±0.36ms 11.7±0.62ms +4.46%
validate_override_range/validate_only/1024 9.3±0.12µs 9.3±0.11µs 0.00%
validate_override_range/validate_only/64 369.5±2.40ns 375.6±3.15ns +1.65%
validate_override_range/validate_only/65536 919.5±15.80µs 908.0±7.98µs -1.25%
validate_override_range/validate_only/8192 94.5±0.90µs 93.4±1.13µs -1.16%

@vinhtc27 vinhtc27 requested a review from sydhds April 27, 2026 08:47
Comment thread rln/src/protocol/mode.rs Outdated
Comment thread rln/src/protocol/mode.rs
Comment thread rln/src/protocol/proof.rs
Comment thread rln/src/protocol/serialize.rs Outdated
Comment thread rln/src/protocol/serialize.rs
}

impl RLNWitnessInputSingle {
pub fn new(
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't forget to add validation of inputs into new functions

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added it in the PR4, merge later to avoid conflict.

Comment thread rln/src/protocol/witness.rs Outdated
Comment on lines +297 to +298
// TODO: new enum for partial witness instead of reusing SingleV1 version byte, which is technically not correct
// TODO: current master branch return SingleV1 or MultiV1 version byte based compile-time feature flag
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this todo doesn't make sense in V3, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes u right, the whole serialize format gonna change anyway

Comment thread rln/src/protocol/witness.rs
Comment thread rln/src/public.rs Outdated
Comment thread rln/src/public.rs
}
}

pub struct RLNV3<Mode, ZkProof> {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So, I suppose here just part of the function that would be implemented, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes this will be in PR4, its just all dummy methods for now, didnt cover all old public API yet

@vinhtc27 vinhtc27 requested review from seemenkina and removed request for sydhds April 30, 2026 09:05
@github-actions
Copy link
Copy Markdown

Benchmark for 6851d3d

Click to view benchmark
Test Base PR %
FullMerkleTree::::full_depth_gen 12.3±0.10ms 11.3±0.30ms -8.13%
OptimalMerkleTree::::full_depth_gen 697.9±8.42µs 691.7±5.64µs -0.89%
Pmtree::delete 50.8±0.71µs 50.4±0.39µs -0.79%
Pmtree::get 300.6±7.35ns 301.8±4.17ns +0.40%
Pmtree::get_empty_leaves_indices 8.4±0.07ns 8.7±0.15ns +3.57%
Pmtree::get_subtree_root 376.1±8.95ns 377.2±11.33ns +0.29%
Pmtree::override_range 104.9±3.26µs 105.3±5.41µs +0.38%
Pmtree::set 50.7±0.53µs 50.4±0.74µs -0.59%
Set/FullMerkleTree::::set/1 519.1±4.74µs 520.7±5.61µs +0.31%
Set/FullMerkleTree::::set/10 5.2±0.02ms 5.2±0.03ms 0.00%
Set/FullMerkleTree::::set/100 52.2±0.09ms 52.4±0.16ms +0.38%
Set/FullMerkleTree::::set_range/1 518.9±3.41µs 520.7±5.31µs +0.35%
Set/FullMerkleTree::::set_range/10 708.1±3.74µs 711.7±5.40µs +0.51%
Set/FullMerkleTree::::set_range/100 1895.7±16.62µs 1894.6±48.69µs -0.06%
Set/OptimalMerkleTree::::set/1 516.3±3.98µs 520.8±7.22µs +0.87%
Set/OptimalMerkleTree::::set/10 5.2±0.02ms 5.2±0.03ms 0.00%
Set/OptimalMerkleTree::::set/100 52.4±0.16ms 52.4±0.29ms 0.00%
Set/OptimalMerkleTree::::set_range/1 519.6±3.71µs 519.1±6.59µs -0.10%
Set/OptimalMerkleTree::::set_range/10 718.1±8.76µs 721.0±11.66µs +0.40%
Set/OptimalMerkleTree::::set_range/100 1834.5±16.48µs 1844.9±70.04µs +0.57%
rln_finish_partial_proof 66.9±0.91ms 66.9±1.27ms 0.00%
rln_full_proof 184.7±1.91ms 186.0±8.34ms +0.70%
rln_partial_proof_generation 128.2±1.27ms 127.5±2.62ms -0.55%

@github-actions
Copy link
Copy Markdown

Benchmark for 6851d3d

Click to view benchmark
Test Base PR %
FullMerkleTree::delete 20.8±0.29µs 20.7±0.32µs -0.48%
FullMerkleTree::get 0.9±0.00ns 0.9±0.00ns 0.00%
FullMerkleTree::get_empty_leaves_indices 1110.7±12.30µs 1110.8±10.68µs +0.01%
FullMerkleTree::get_subtree_root 10.9±0.08ns 10.9±0.16ns 0.00%
FullMerkleTree::override_range 2.1±0.02ms 2.1±0.03ms 0.00%
FullMerkleTree::set 10.2±0.18µs 10.2±0.16µs 0.00%
OptimalMerkleTree::delete 24.0±0.32µs 24.5±0.57µs +2.08%
OptimalMerkleTree::get 35.2±0.56ns 35.4±0.58ns +0.57%
OptimalMerkleTree::get_empty_leaves_indices 1121.7±65.09µs 1112.6±23.15µs -0.81%
OptimalMerkleTree::get_subtree_root 25.6±0.71ns 25.6±0.74ns 0.00%
OptimalMerkleTree::override_range 4.3±0.24ms 3.9±0.07ms -9.30%
OptimalMerkleTree::set 12.3±0.34µs 12.5±0.65µs +1.63%
poseidon Fr/Array hash/10 151.9±0.19µs 64.3 KElem/sec N/A N/A
poseidon Fr/Array hash/100 1584.9±3.80µs 61.6 KElem/sec N/A N/A
poseidon Fr/Array hash/1000 16.7±0.03ms 58.4 KElem/sec N/A N/A
poseidon Fr/Single hash 15.2±0.02µs 62.8 MElem/sec N/A N/A
validate_override_range/FullMerkleTree/override_range/1024 533.2±17.61µs 532.6±19.86µs -0.11%
validate_override_range/FullMerkleTree/override_range/64 77.3±2.42µs 77.5±4.14µs +0.26%
validate_override_range/FullMerkleTree/override_range/65536 484.3±13.04ms 488.3±4.81ms +0.83%
validate_override_range/FullMerkleTree/override_range/8192 9.7±0.21ms 9.8±0.20ms +1.03%
validate_override_range/OptimalMerkleTree/override_range/1024 711.2±22.35µs 714.8±38.73µs +0.51%
validate_override_range/OptimalMerkleTree/override_range/64 98.0±2.83µs 97.5±3.55µs -0.51%
validate_override_range/OptimalMerkleTree/override_range/65536 527.1±37.88ms 508.3±3.73ms -3.57%
validate_override_range/OptimalMerkleTree/override_range/8192 11.3±0.55ms 11.1±0.26ms -1.77%
validate_override_range/validate_only/1024 9.3±0.15µs 9.3±0.11µs 0.00%
validate_override_range/validate_only/64 369.4±2.14ns 395.1±5.38ns +6.96%
validate_override_range/validate_only/65536 908.1±10.72µs 915.4±19.95µs +0.80%
validate_override_range/validate_only/8192 93.2±1.07µs 94.4±2.99µs +1.29%

@vinhtc27 vinhtc27 merged commit a59a731 into master Apr 30, 2026
17 checks passed
@vinhtc27 vinhtc27 deleted the refactor/pr0-add-message-mode-and-remove-multi-message-id-flag branch April 30, 2026 09:20
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.

2 participants