-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking PR for v0.4 release #129
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
config: add rustfmt config
re-export mmr proof
Consider the case of a MMR with one entry, and a new entry is being added. Both of these values are quite unique, they are at the same time the root and only leaf of their corresponding tree. Currently this representation is not supported by the [MerkleStore], so the leaves are not in it. Once the two values are merged, they both become leaves of a new tree under the new parent, and the existing validation didn't permit that promotion from happening. This lifts the validation, and changes the method to clarify that not only `root` are being merged, by arbitrary nodes of a tree (leafs, internal, or roots), with arbitrary mixing of each.
…eaves feat: allow merging of leaves
…ting-structures-to-store store: support adding existing structures
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR tracks progress for v0.4 release. The aim of this release is primarily to wrap up implementations various Merkle structures.
General
MerklePathSet
withPartialMerkleTree
#130Word
#59Sparse Merkle tree
As a part of this release we should close the following issues (one way or the other):
MerkleStore::{with_tiered_smt, add_tiered_smt}
#135One question is what are we looking for in the Rust implementation of the tiered SMT. In my mind, we'd use it for account storage and vaults and so the requirements should be driven by the needs of the account object.
There are two other use cases for a tiered SMT: (1) account database, and (2) nullifier database. Both of these will probably require different implementations as they are going to be too large for pure in-memory implementation. So, we'll do them in future releases.
Merkle mountain range
Current implementation of the MMR is good enough for the needs of the chain database, but for user wallets, we do need to maintain partial MMR for own notes.