2 releases (1 unstable)

new 26.1.0-non-semver-compat Jan 22, 2025
0.1.0 Jul 12, 2024

#244 in Magic Beans

Download history 57/week @ 2024-10-02 32/week @ 2024-10-09 59/week @ 2024-10-16 56/week @ 2024-10-23 83/week @ 2024-10-30 30/week @ 2024-11-06 34/week @ 2024-11-13 70/week @ 2024-11-20 108/week @ 2024-11-27 149/week @ 2024-12-04 73/week @ 2024-12-11 47/week @ 2024-12-18 49/week @ 2024-12-25 65/week @ 2025-01-01 34/week @ 2025-01-08 26/week @ 2025-01-15

187 downloads per month
Used in 52 crates (2 directly)

MIT/Apache

185KB
4K SLoC

In-memory Merkle tree

Simple in-memory binary Merkle tree implementation. The tree is of bounded depth (up to 1,024 leaves) and uses the keccak-256 hash function.

Benchmarking

The tree implementation comes with a criterion benchmark that can be run with a command like this:

cargo bench -p zksync_mini_merkle_tree --bench tree

The order of timings should be 2M elements/s for all tree sizes (measured on MacBook Pro with 12-core Apple M2 Max CPU), both for calculating the root and the root + Merkle path. This translates to approximately 130µs for a tree with 512 leaves (the tree size used for L2ToL1Logs).


lib.rs:

Crate allowing to calculate root hashes and Merkle proofs for small in-memory Merkle trees.

Dependencies

~13MB
~186K SLoC