Skip to content

v0.42.0-alpha.7

@aszepieniec aszepieniec tagged this 02 Aug 12:49
✨ Features

 - New struct: `MmrSuccessorProof` which helps to prive that one MMR
   accumulator is a predecessor (or successor) of another.

📚 Documentation

 - Conform to new (rust v1.80.0) indentation rules in doc strings.
 - Drop instructions for installing leveldb, which is no longer
   a dependency.

🧪 Test

 - Add tests for mismatching lengths in leaf index lists.
 - Implement `Arbitrary` for `MmrAccumulator` so that it produces an
   object that is consistent (number of peaks equals number of set
   bits in num leafs).
 - Add tests for edge cases.
 - Add positive and negative tests for `MmrSuccessorProof`.

🚀 Performance

 - Benchmark `par_interpolate`.
 - Use separate dispatcher threshold for `par_interpolate`, different
   from sequential counterpart, with separate threshold.
 - In `par_interpolate`, recurse to parallel version.

♻️  Refactor

 - (!) Drop generic type argument `<H>` from MMR functions and
       structs.
 - (!) Copy (don't point to) auth path in struct `LeafMutation`.
 - (!) Rename `MmrAccumulator`'s `new` to `new_from_leafs`, which
       better describes what's going on.
 - (!) Drop unused `get_height_from_leaf_index`.

🔨 Fixes

 - Fix membership proof crash of peak list is too short in MMR batch
   functions.
 - Various bugs exposed by proptest's edge cases.

⚙️  Miscellaneous

 - Conform to new rust version (v1.80.0) linting rules.
 - Update perflog.
Assets 2
Loading