Commit Graph

15 Commits

Author SHA1 Message Date
Kris Nuttycombe 257402db53 Address comments from review. 2023-03-20 16:12:30 -06:00
Kris Nuttycombe d7a04122ea Fix clippy complaints. 2023-03-13 11:42:57 -06:00
Kris Nuttycombe ac6e8e8212 Use direct recursion in shardtree instead of reduce/try_reduce
These more general functions weren't carrying their weight.
2023-03-09 16:29:24 -07:00
Kris Nuttycombe 664cead68b Use `bitflags` crate instead of hand-rolled `RetentionFlags` bit flags. 2023-03-09 13:51:56 -07:00
Kris Nuttycombe 37be939c0f Apply suggestions from code review
Co-authored-by: ebfull <ewillbefull@gmail.com>
2023-03-09 13:37:22 -07:00
Kris Nuttycombe fa7c6673fd Make `LocatedTree` and `LocatedPrunableTree` type aliases public. 2023-03-08 11:12:17 -07:00
Kris Nuttycombe 0cb1cec21f Add `shardtree` witness operation & implement property tests. 2023-03-08 11:12:17 -07:00
Kris Nuttycombe a7bb8bb749 Add `shardtree` batch insertion. 2023-03-08 11:12:17 -07:00
Kris Nuttycombe e209f3bf20 Add `shardtree` checkpointing & root computation. 2023-03-08 11:12:17 -07:00
Kris Nuttycombe ebe3efa135 Add ShardTree types & implement append operation. 2023-03-08 11:12:17 -07:00
Kris Nuttycombe dc5a3ed0e7 Add types & operations for individual shards.
This adds the `LocatedPrunableTree` type, which provides the complete
set of operations for individual shards within a larger tree.
2023-03-08 11:11:16 -07:00
Kris Nuttycombe 34f6bd7ce5 Add a `LocatedTree` type that pairs tree roots with address information. 2023-03-08 11:09:43 -07:00
Kris Nuttycombe 8644372c4e Add types and methods to support tree pruning.
Each leaf of the tree is annotated with retention metadata, and
ephemeral leaves can be aggressively pruned when performing insertions
into the tree.
2023-03-08 11:08:59 -07:00
Kris Nuttycombe 8864a84d19 Introduce a simple binary tree type. 2023-03-08 11:07:58 -07:00
Kris Nuttycombe 0ae9b499cc Introduce the `shardtree` crate: a sparse Merkle tree type. 2023-03-07 12:11:48 -07:00