Commit graph

33 commits

Author SHA1 Message Date
polydez
7ee6d7fb93
feat: add support for hashmaps in Smt and SimpleSmt (#363) 2025-01-02 10:23:12 -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
689cc93ed1
chore: update crate version to v0.11.0 and set MSRV to 1.82 2024-10-17 23:16:41 -07:00
Paul-Henry Kajfasz
c5077b1683
updated readme 2024-08-21 14:18:41 +01:00
Paul-Henry Kajfasz
025fbb66a9
Update README.md change miden-crypto to crypto 2024-08-17 01:21:19 +01:00
Paul-Henry Kajfasz
374a10f340
Updated ci + added scripts 2024-08-16 15:32:03 -07:00
Paul-Henry Kajfasz
ad0f472708
Updated Makefile and Readme 2024-08-16 15:07:27 -07:00
Bobbin Threadbare
d92fae7f82
chore: update rust version badge 2024-08-06 16:59:31 -07:00
Bobbin Threadbare
f72add58cd chore: increment crate version to v0.9.3 and update changelog 2024-04-24 01:02:47 -07:00
Bobbin Threadbare
5a2e917dd5
Tracking PR for v0.9.0 release (#278)
* chore: update crate version to v0.9.0
* chore: remove deprecated re-exports
* chore: remove Box re-export
* feat: implement pure-Rust keygen and signing for RpoFalcon512 (#285)
* feat: add reproducible builds (#296)
* fix: address a few issues for migrating Miden VM  (#298)
* feat: add RngCore supertrait for FeltRng (#299)

---------

Co-authored-by: Al-Kindi-0 <82364884+Al-Kindi-0@users.noreply.github.com>
Co-authored-by: Paul-Henry Kajfasz <42912740+phklive@users.noreply.github.com>
2024-03-24 08:38:08 -07:00
Bobbin Threadbare
ce9b45fe77
chore: add badges to readme 2024-03-17 13:32:46 -07:00
Philippe Laferrière
552d90429b Remove TieredSmt (#277) 2024-02-14 11:52:40 -08:00
Bobbin Threadbare
457c985a92 refactor: remove sve feature flag 2024-02-14 11:52:40 -08:00
Bobbin Threadbare
004a3bc7a8 docs: update changelog and readme 2024-02-14 11:52:40 -08:00
Al-Kindi-0
36d3b8dc46 feat: move RpoRandomCoin and define Rng trait
nits: minor

chore: update log and readme
2024-02-14 11:52:40 -08:00
Bobbin Threadbare
9d52958f64 docs: update changelog 2024-02-14 11:52:40 -08:00
Bobbin Threadbare
41f03fbe91 chore: update main readme 2024-02-14 11:52:40 -08:00
Bobbin Threadbare
7ddcdc5e39 docs: add module descriptions 2023-10-06 21:13:42 -07:00
Bobbin Threadbare
aeadc96b05 docs: add signature section to main readme 2023-10-06 06:20:15 -07:00
Bobbin Threadbare
cf91c89845 refactor: clean up features 2023-10-03 23:26:45 -07:00
Andrey Khmuro
71b04d0734 refactor: replace MerklePathSet with PartialMerkleTree 2023-07-27 22:03:16 +03:00
Bobbin Threadbare
858f95d4a1 chore: update changelog 2023-06-25 01:54:34 -07:00
Bobbin Threadbare
2ed880d976 chore: add TieredSmt to readme 2023-05-26 14:41:22 -07:00
Victor Lopez
d37f3f5e84
feat: Add depth as store SMT argument
Prior to this commit, MerkleStore allowed the creation of Sparse Merkle
tree only with the maximum depth of 63. However, this doesn't fit the
Tiered Sparse Merkle tree requirements, as it will contain trees of
depth 16.

This commit adds the `depth` argument to the MerkleStore methods that
will create Sparse Merkle trees.
2023-03-30 01:13:05 +02:00
Bobbin Threadbare
d68be83bc4 chore: add Mmr to readme and changelog 2023-03-25 00:00:24 -07:00
Bobbin Threadbare
a58922756a chore: update crate versions, dependencies, and CHANGELOG 2023-03-24 14:58:19 -07:00
Bobbin Threadbare
3c9a5235a0 docs: fix typos in doc comments 2023-02-17 11:58:23 -08:00
Victor Lopez
325b3abf8b
chore: prepare for v0.1.2 release 2023-02-17 18:03:25 +01:00
Victor Lopez
0799b1bb9d
feat: add merkle node index
This commit introduces a wrapper structure to encapsulate the merkle
tree traversal.

related issue: #36
2023-02-15 23:53:01 +01:00
Bobbin Threadbare
527455f600 docs: minor updates to main and benchmark README files 2022-12-14 07:30:37 -08:00
Al-Kindi-0
c728423902 doc: benchmark hash functions
doc: benchmark hash functions

fix nits

fix: misc. nits

fix: nits and link

fix additional nits

fix: nits
2022-12-13 18:42:38 +01:00
Bobbin Threadbare
9b08ac731d docs: update main README file 2022-12-02 11:25:18 -08:00
Bobbin Threadbare
19a79d31ac
Initial commit 2022-10-03 14:30:23 -07:00