Commit graph

451 commits

Author SHA1 Message Date
Bobbin Threadbare
337a57fa07
Merge branch 'next' into al-fix-falcon-sk-serialization 2025-03-10 17:48:26 -07:00
Krushimir
cd0821961d
test: adds property-based testing and fuzzing for SMT (#385)
* Adds concurrent proptests
* Adds fuzzing for SMT
* fix: concurrent mutations without mutated entries
* fix: key sorting
2025-03-10 11:51:16 -07:00
Al-Kindi-0
9acbf2f10c doc: changelog 2025-03-10 14:39:48 +01:00
Al-Kindi-0
49bf510ab0 fix: add bound checks on polynomials defining the secret key during generation 2025-03-10 14:28:35 +01:00
1e87cd60ff
docs: add SMT benchmarks (#384) 2025-02-25 13:33:19 -08:00
b97243c582
fix: dead_code warning on pairs_to_leaf when not(feature = "concurrent") (#380)
This also moves `pairs_to_leaf()` out of the `SparseMerkleTree` trait,
also removing it from `SimpleSmt`, as `pairs_to_leaf()` is only ever
used in concurrent code for `Smt`.

This fixes a warning with `--no-default-features`.
2025-02-24 10:26:56 -08:00
Philipp Gackstatter
d0e9ead6f4
feat: filter empty values in Smt::with_entries (#383) 2025-02-18 02:18:47 -08:00
Bobbin Threadbare
2ba30bf3bf
fix: error in Cargo.lock 2025-02-18 01:19:15 -08:00
Bobbin Threadbare
0514a8316a
Merge branch 'main' into next 2025-02-18 01:14:07 -08:00
Bobbin Threadbare
8ce7b68d68
chore: increment crate version to v0.13.3 and update changelog 2025-02-18 01:09:11 -08:00
Philipp Gackstatter
535637d7fb
fix: panic in PartialMmr::untrack (#382) 2025-02-18 01:04:21 -08:00
Philipp Gackstatter
ed14eaa90c
fix: PartialSmt stale proofs not resulting in error (#381) 2025-02-17 15:40:56 -08:00
Krushimir
bbe11964b1
fix: subtree8-rand benchmark panics with debug assertions enabled (#377) (#378) 2025-02-13 11:00:16 -08:00
Bobbin Threadbare
1e59686153
Merge branch 'main' into next 2025-02-11 16:45:57 -08:00
Philipp Gackstatter
12d0eefeb2
feat: implement PartialSmt (#372) 2025-02-10 23:48:32 -08:00
Al-Kindi-0
fe7bdae430
chore: update Winterfell dependencies to v0.12.0 (#374) 2025-02-10 10:29:33 -08:00
Bobbin Threadbare
117813f48d
chore: update changelog 2025-02-06 17:58:44 -08:00
Bobbin Threadbare
58d173ef7b
chore: minor code cleanup 2025-02-06 17:52:32 -08:00
Krushimir
1b77fa8039
feat: implements concurrent Smt::compute_mutations (#365) 2025-02-06 16:51:11 -08:00
arnaucube
d569c71666
feat: remove duplicated check in falcon verification (#368) 2025-01-26 00:22:28 -08:00
Bobbin Threadbare
a424652ba7
Merge branch 'main' into next 2025-01-24 17:34:50 -08:00
polydez
2a5b8ffb21
feat: implement functionality needed for computing openings for recent blocks (#367)
* refactor: make `InnerNode` and `NodeMutation` public
* feat: implement serialization for `LeafIndex`
2025-01-24 17:32:30 -08:00
Bobbin Threadbare
0e85398732
chore: update crate version to 0.14.0 and MSRV to 1.84 2025-01-23 00:11:36 -08:00
Bobbin Threadbare
a75dced6e9
chore: fix typo 2025-01-19 14:10:59 -08:00
Bobbin Threadbare
6da2a62b2b
docs: add Graviton 4 to hash benchmarks 2025-01-04 12:18:29 -08:00
Grzegorz Świrski
f825c23415
feat: add support for graviton4 (#364) 2025-01-04 12:01:42 -08:00
polydez
7ee6d7fb93
feat: add support for hashmaps in Smt and SimpleSmt (#363) 2025-01-02 10:23:12 -08:00
Bobbin Threadbare
e4373e54c9
chore: update lockfile 2024-12-28 16:38:54 -08:00
Bobbin Threadbare
d470a5087b
chore: fix lints 2024-12-26 23:12:49 -08:00
Bobbin Threadbare
43b2954d60
Merge branch 'main' into next 2024-12-26 23:10:26 -08:00
polydez
589839fef1
feat: reverse mutations generation, mutations serialization (#355)
* feat: revert mutations generation, mutations serialization
* tests: check both `apply_mutations` and `apply_mutations_with_reversion`
* feat: add `num_leaves` method for `Smt`
* refactor: improve ad-hoc benchmarks
* chore: update crate version to v0.13.1
2024-12-26 18:16:38 -08:00
Bobbin Threadbare
ef3183fc0b
chore: minor benchmark fixes 2024-12-24 01:12:51 -08:00
Bobbin Threadbare
8db71b66d9
chore: fix typo 2024-12-22 00:25:58 -08:00
crStiv
1444bbc0f2
fix: typos of different importance (#359) 2024-12-16 10:27:51 -08:00
RiceChuan
d2181f44c9
docs: remove repetitive words (#352) 2024-12-10 15:34:08 -08:00
b151773b0d
feat: implement concurrent Smt construction (#341)
* merkle: add parent() helper function on NodeIndex
* smt: add pairs_to_leaf() to trait
* smt: add sorted_pairs_to_leaves() and test for it
* smt: implement single subtree-8 hashing, w/ benchmarks & tests

This will be composed into depth-8-subtree-based computation of entire
sparse Merkle trees.

* merkle: add a benchmark for constructing 256-balanced trees

This is intended for comparison with the benchmarks from the previous
commit. This benchmark represents the theoretical perfect-efficiency
performance we could possibly (but impractically) get for computing
depth-8 sparse Merkle subtrees.

* smt: test that SparseMerkleTree::build_subtree() is composable

* smt: test that subtree logic can correctly construct an entire tree

This commit ensures that `SparseMerkleTree::build_subtree()` can
correctly compose into building an entire sparse Merkle tree, without
yet getting into potential complications concurrency introduces.

* smt: implement test for basic parallelized subtree computation w/ rayon

Building on the previous commit, this commit implements a test proving
that `SparseMerkleTree::build_subtree()` can be composed into itself not
just concurrently, but in parallel, without issue.

* smt: add from_raw_parts() to trait interface

This commit adds a new required method to the SparseMerkleTree trait,
to allow generic construction from pre-computed parts.

This will be used to add a generic version of `with_entries()` in a
later commit.

* smt: add parallel constructors to Smt and SimpleSmt

What the previous few commits have been leading up to: SparseMerkleTree
now has a function to construct the tree from existing data in parallel.
This is significantly faster than the singlethreaded equivalent.
Benchmarks incoming!

---------

Co-authored-by: krushimir <krushimir@reilabs.co>
Co-authored-by: krushimir <kresimir.grofelnik@reilabs.io>
2024-12-04 10:54:41 -08:00
Bobbin Threadbare
c64f43b262
chore: merge v0.13.0 release 2024-11-24 22:36:08 -08:00
Bobbin Threadbare
1867f842d3
chore: update changelog 2024-11-24 22:26:51 -08:00
Al-Kindi-0
e1072ecc7f
chore: update to winterfell dependencies to 0.11 (#346) 2024-11-24 22:20:19 -08:00
Bobbin Threadbare
063ad49afd
chore: update crate version to v0.13.0 2024-11-21 15:56:55 -08:00
Philipp Gackstatter
a27f9ad828
refactor: use thiserror to derive errors and update error messages (#344) 2024-11-21 15:52:20 -08:00
Al-Kindi-0
50dd6bda19
fix: skip using the field element containing the proof-of-work (#343) 2024-11-18 00:16:27 -08:00
Bobbin Threadbare
3909b01993
chore: merge v0.12.0 release from 0xPolygonMiden/next 2024-10-30 15:25:34 -07:00
Bobbin Threadbare
ee20a49953
chore: increment crate version to v0.12.0 and update changelog 2024-10-30 15:04:08 -07:00
Al-Kindi-0
0d75e3593b
chore: migrate to Winterfell v0.10.0 release (#338) 2024-10-29 15:02:46 -07:00
Bobbin Threadbare
d74e746a7f
chore: merge v0.11.0 release 2024-10-17 23:26:04 -07:00
Bobbin Threadbare
689cc93ed1
chore: update crate version to v0.11.0 and set MSRV to 1.82 2024-10-17 23:16:41 -07:00
Bobbin Threadbare
7970d3a736
Merge branch 'main' into next 2024-10-17 20:53:09 -07:00
Al-Kindi-0
a734dace1e
feat: update RPO's padding rule to use that in the xHash paper (#318) 2024-10-17 20:49:44 -07:00
Andrey Khmuro
940cc04670
feat: add Smt::is_empty (#337) 2024-10-17 14:27:50 -07:00