Commit Graph

375 Commits

Author SHA1 Message Date
Kris Nuttycombe 4ea60ea18b
Merge pull request #98 from nuttycom/shardtree/insert_frontier
shardtree: Add `ShardTree::insert_frontier`
2024-03-11 16:51:19 -06:00
Kris Nuttycombe 17f2bcd037
Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
2024-03-11 16:51:06 -06:00
Kris Nuttycombe fa147c89c6 shardtree: Add `ShardTree::store_mut` 2024-03-11 13:03:03 -06:00
Kris Nuttycombe 25cb18973e shardtree: Add `ShardTree::insert_frontier` 2024-03-11 13:02:34 -06:00
Kris Nuttycombe 07564eace4
Merge pull request #97 from nuttycom/shardtree_store_ref
shardtree: Add an accessor for a `ShardTree`'s underlying `ShardStore`
2024-03-11 11:31:32 -06:00
Kris Nuttycombe 214d76e40a shardtree: Add an accessor for a `ShardTree`'s underlying `ShardStore` 2024-03-09 17:12:19 -07:00
Kris Nuttycombe 643e4ee5c9
Merge pull request #96 from nuttycom/frontier_size
incrementalmerkletree: Add `Frontier::tree_size`
2024-03-09 17:08:33 -07:00
Kris Nuttycombe 353db2efa2 incrementalmerkletree: Add `Frontier::tree_size` 2024-03-09 11:26:28 -07:00
Kris Nuttycombe 4d797cce13
Merge pull request #94 from nuttycom/shardtree/release-0.2.0
shardtree: Release version 0.2.0
2023-11-07 11:26:48 -07:00
Kris Nuttycombe 769fd2be45 shardtree: Release version 0.2.0 2023-11-07 09:57:48 -07:00
Kris Nuttycombe 302c91aa96
Merge pull request #93 from nuttycom/shardtree/root_at_checkpoint_id
shardtree: Add `root_at_checkpoint_id` methods.
2023-11-07 08:54:07 -07:00
Kris Nuttycombe 39ce028701 Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
2023-11-07 07:44:07 -07:00
Kris Nuttycombe b2c5cd9fc4 shardtree: Correct erroneous `ShardStore::get_checkpoint_at_depth` documentation 2023-11-07 07:44:07 -07:00
Kris Nuttycombe 8d301a14dd shardtree: Add `witness_at_checkpoint_id` methods.
It is useful to be able to refer to a specific checkpoint, rather than
just a checkpoint depth, when computing a witness.
2023-11-07 07:44:07 -07:00
Kris Nuttycombe 9359c8d1b8 shardtree: Add `root_at_checkpoint_id` methods.
It can be useful to refer to a specific checkpoint, rather than just a
checkpoint depth, for which one wishes to compute the root.
2023-11-07 07:44:05 -07:00
Kris Nuttycombe e2058845ef Add Cargo.lock file to avoid MSRV upgrade forced by `proptest` updates. 2023-11-07 07:35:27 -07:00
str4d 2ce18583d4
Merge pull request #92 from zcash/shardtree-0.1.0
`incrementalmerkletree 0.5.0`, `bridgetree 0.4.0`, `shardtree 0.1.0`
2023-09-08 18:00:18 +01:00
Jack Grigg 2dece0181a shardtree 0.1.0 2023-09-08 16:36:50 +00:00
Jack Grigg a73e51998e bridgetree 0.4.0 2023-09-08 16:34:39 +00:00
Jack Grigg 8c81d0bc4b incrementalmerkletree 0.5.0 2023-09-08 16:31:11 +00:00
str4d 9e7f5f0d28
Merge pull request #91 from zcash/pre-release-cleanups
Pre-release cleanups
2023-07-29 20:06:31 +01:00
Jack Grigg 3f8999816f shardtree: Migrate to `bitflags 2` 2023-07-27 23:17:06 +00:00
Jack Grigg 6628520585 shardtree: Remove unused dependencies 2023-07-27 23:17:06 +00:00
Jack Grigg 70930d8496 incrementalmerkletree: Fix changelog 2023-07-27 22:57:56 +00:00
Jack Grigg f5fd2a0a3e Add docs.rs feature flag labels to `incrementalmerkletree` and `shardtree` 2023-07-27 22:57:09 +00:00
Jack Grigg e7a38c0ee9 shardtree: Initial empty changelog 2023-07-27 22:30:38 +00:00
Jack Grigg 60caaeb99e shardtree: Update docs with content from readme 2023-07-27 22:28:55 +00:00
Jack Grigg 60c21dae6c shardtree: Add a readme 2023-07-27 22:28:24 +00:00
Jack Grigg 4fd57fc862 shardtree: Use edition 2021 and set MSRV 2023-07-27 22:08:07 +00:00
str4d da97e6c399
Merge pull request #90 from zcash/shardtree-docs
`shardtree`: Improve documentation
2023-07-25 19:35:35 +01:00
Jack Grigg 5753ce005d shardtree: Remove unnecessary methods from the public API 2023-07-25 17:19:43 +00:00
Jack Grigg 06199d6f45 shardtree: Improve documentation 2023-07-25 17:19:38 +00:00
str4d 9edfda1958
Merge pull request #89 from zcash/cleanups
Cleanups ahead of publishing `shardtree` crate
2023-07-25 17:28:17 +01:00
Jack Grigg 0a6964ad05 shardtree: Move `ShardStore`-related types into module 2023-07-25 15:54:44 +00:00
Jack Grigg fb894cdbb7 shardtree: Add `std::error::Error` bound to `ShardStore::Error` 2023-07-25 15:54:44 +00:00
Jack Grigg 1bd0a7c941 shardtree: Move error types into module 2023-07-25 15:54:44 +00:00
ebfull 2a667f5009
Merge pull request #88 from zcash/shardtree-insert_tree-checkpoints
shardtree: Pass checkpoints alongside tree to `ShardTree::insert_tree`
2023-07-25 09:27:20 -06:00
Jack Grigg 8d699c9667 shardtree: Pass checkpoints alongside tree to `ShardTree::insert_tree`
There are no `ShardTree` APIs that allow for checkpointing at arbitrary
positions, which makes sense as the relevant leaf may have been pruned.
For this API to be a viable substitute for `ShardTree::batch_insert`, it
therefore needs to support marking any checkpoints associated with the
inserted tree.
2023-07-25 13:50:27 +00:00
str4d 16d244210a
Merge pull request #87 from zcash/proptest-shardtree-insert_tree
`shardtree`: Fix bugs in `ShardTree::insert_tree`
2023-07-25 00:58:46 +01:00
Jack Grigg 4666e9e370 shardtree: Don't insert empty subtrees in `ShardTree::insert_tree`
`ShardTree::max_leaf_position` relies on the invariant that the last
shard in the subtrees vector is never created without a leaf then being
added to it. `LocatedTree::decompose_to_level` can return a trailing
empty subtree for some inputs, and given that it is always correct to
not insert an empty subtree into `self`, we maintain the invariant by
skipping empty subtrees.
2023-07-24 18:14:24 +00:00
Jack Grigg 1eda8b2e24 shardtree: Derive correct shard root addrs in `ShardTree::insert_tree`
`LocatedTree::decompose_to_level` will return the tree as-is if it is
smaller than a shard, so we can't assume that the address of `subtree`
is a valid shard address.
2023-07-24 18:13:05 +00:00
Jack Grigg f23b5f314f shardtree: Pin `tempfile < 3.7.0` in dev-dependencies to keep MSRV 2023-07-24 17:22:28 +00:00
Jack Grigg 8a62290ffe shardtree: Add tests comparing `insert_tree` to `batch_insert` 2023-07-24 17:22:28 +00:00
Jack Grigg faabef3106 shardtree: Extract an `arb_leaves` strategy from `arb_shardtree` 2023-07-24 02:16:12 +00:00
str4d bae25ad89c
Merge pull request #86 from zcash/shardtree-arc-wielder
shardtree: Switch from `Rc` to `Arc` to make trees `Send`
2023-07-17 23:01:17 +01:00
Jack Grigg 5b4dce85ca shardtree: Switch from `Rc` to `Arc` to make trees `Send` 2023-07-17 21:02:33 +00:00
str4d 099abbfc40
Merge pull request #85 from zcash/caching
Add `CachingShardStore` for batching writes to a backend `ShardStore`
2023-07-17 22:00:43 +01:00
Jack Grigg 7ec75fdd91 shardtree: Clarify documentation for `ShardStore::remove_checkpoint`
`CachingShardStore` relies on this method being a no-op when the
checkpoint doesn't exist.
2023-07-17 20:56:53 +00:00
Jack Grigg f5160a4790 shardtree: Pin `dashmap < 5.5.0` in dev-dependencies to keep MSRV 2023-07-14 19:26:32 +00:00
Jack Grigg 2715a24943 Add `CachingShardStore` for batching writes to a backend `ShardStore` 2023-07-14 19:26:32 +00:00