zebra/zebra-state/Cargo.toml

56 lines
1.7 KiB
TOML
Raw Normal View History

[package]
name = "zebra-state"
version = "1.0.0-beta.4"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"
[features]
proptest-impl = ["proptest", "proptest-derive", "zebra-test"]
[dependencies]
bincode = "1"
chrono = "0.4.19"
dirs = "4.0.0"
displaydoc = "0.2.2"
futures = "0.3.19"
hex = "0.4.3"
lazy_static = "1.4.0"
metrics = "0.17.1"
Track anchors and note commitment trees in zebra-state (#2458) * Tidy chain Cargo.toml * Organize imports * Add method to get note commitments from all Actions in Orchard shielded data * Add method to get note commitments from all JoinSplits in Sprout JoinSplitData * Add Request and Response variants for awaiting anchors * Add anchors and note commitment trees to finalized state db * Add (From|Into)Disk impls for tree::Roots and stubs for NoteCommitmentTrees * Track anchors and note commitment trees in Chain Append note commitments to their trees when doing update_chain_state_with, then use the resulting Sapling and Orchard roots to pass to history_tree, and add new roots to the anchor sets. * Handle errors when appending to note commitment trees * Add comments explaining why note commitment are not removed from the tree in revert_chain_state_with * Implementing note commitments in finalized state * Finish serialization of Orchard tree; remove old tree when updating finalize state * Add serialization and finalized state updates for Sprout and Sapling trees * Partially handle trees in non-finalized state. Use Option for trees in Chain * Rebuild trees when forking; change finalized state tree getters to not require height * Pass empty trees to tests; use empty trees by default in Chain * Also rebuild anchor sets when forking * Use empty tree as default in finalized state tree getters (for now) * Use HashMultiSet for anchors in order to make pop_root() work correctly * Reduce DEFAULT_PARTIAL_CHAIN_PROPTEST_CASES and MAX_PARTIAL_CHAIN_BLOCKS * Reduce DEFAULT_PARTIAL_CHAIN_PROPTEST_CASES and MAX_PARTIAL_CHAIN_BLOCKS even more * Apply suggestions from code review * Add comments about order of note commitments and related methods/fields * Don't use Option for trees * Set DEFAULT_PARTIAL_CHAIN_PROPTEST_CASES=1 and restore MAX_PARTIAL_CHAIN_BLOCKS * Remove unneeded anchor set rebuilding in fork() * Improve proptest formatting * Add missing comparisons to eq_internal_state * Renamed sprout::tree::NoteCommitmentTree::hash() to root() * Improve comments * Add asserts, add issues to TODOs * Remove impl Default for Chain since it was only used by tests * Improve documentation and assertions; add tree serialization tests * Remove Sprout code, which will be moved to another branch * Add todo! in Sprout tree append() * Remove stub request, response *Anchor* handling for now * Add test for validating Sapling note commitment tree using test blocks * Increase database version (new columns added for note commitment trees and anchors) * Update test to make sure the order of sapling_note_commitments() is being tested * Improve comments and structure of the test * Improve variable names again * Rustfmt Co-authored-by: Deirdre Connolly <deirdre@zfnd.org> Co-authored-by: Conrado P. L. Gouvea <conradoplg@gmail.com> Co-authored-by: Conrado Gouvea <conrado@zfnd.org> Co-authored-by: teor <teor@riseup.net>
2021-07-29 06:37:18 -07:00
# TODO: this crate is not maintained anymore. Replace it?
# https://github.com/ZcashFoundation/zebra/issues/2523
#
# Pinned to a commit which includes bug fix https://github.com/jmitchell/multiset/pull/21
# The fix should be included in multiset 0.0.6.
multiset = { git = "https://github.com/jmitchell/multiset", rev = "91ef8550b518f75ae87ae0d8771150f259fd34d5" }
proptest = { version = "0.10.1", optional = true }
proptest-derive = { version = "0.3", optional = true }
regex = "1"
rlimit = "0.5.4"
rocksdb = "0.17.0"
serde = { version = "1", features = ["serde_derive"] }
tempfile = "3.3.0"
thiserror = "1.0.30"
tokio = { version = "1.16.1", features = ["sync"] }
tower = { version = "0.4.11", features = ["buffer", "util"] }
tracing = "0.1"
zebra-chain = { path = "../zebra-chain" }
zebra-test = { path = "../zebra-test/", optional = true }
[dev-dependencies]
color-eyre = "0.5.11"
once_cell = "1.9"
Track anchors and note commitment trees in zebra-state (#2458) * Tidy chain Cargo.toml * Organize imports * Add method to get note commitments from all Actions in Orchard shielded data * Add method to get note commitments from all JoinSplits in Sprout JoinSplitData * Add Request and Response variants for awaiting anchors * Add anchors and note commitment trees to finalized state db * Add (From|Into)Disk impls for tree::Roots and stubs for NoteCommitmentTrees * Track anchors and note commitment trees in Chain Append note commitments to their trees when doing update_chain_state_with, then use the resulting Sapling and Orchard roots to pass to history_tree, and add new roots to the anchor sets. * Handle errors when appending to note commitment trees * Add comments explaining why note commitment are not removed from the tree in revert_chain_state_with * Implementing note commitments in finalized state * Finish serialization of Orchard tree; remove old tree when updating finalize state * Add serialization and finalized state updates for Sprout and Sapling trees * Partially handle trees in non-finalized state. Use Option for trees in Chain * Rebuild trees when forking; change finalized state tree getters to not require height * Pass empty trees to tests; use empty trees by default in Chain * Also rebuild anchor sets when forking * Use empty tree as default in finalized state tree getters (for now) * Use HashMultiSet for anchors in order to make pop_root() work correctly * Reduce DEFAULT_PARTIAL_CHAIN_PROPTEST_CASES and MAX_PARTIAL_CHAIN_BLOCKS * Reduce DEFAULT_PARTIAL_CHAIN_PROPTEST_CASES and MAX_PARTIAL_CHAIN_BLOCKS even more * Apply suggestions from code review * Add comments about order of note commitments and related methods/fields * Don't use Option for trees * Set DEFAULT_PARTIAL_CHAIN_PROPTEST_CASES=1 and restore MAX_PARTIAL_CHAIN_BLOCKS * Remove unneeded anchor set rebuilding in fork() * Improve proptest formatting * Add missing comparisons to eq_internal_state * Renamed sprout::tree::NoteCommitmentTree::hash() to root() * Improve comments * Add asserts, add issues to TODOs * Remove impl Default for Chain since it was only used by tests * Improve documentation and assertions; add tree serialization tests * Remove Sprout code, which will be moved to another branch * Add todo! in Sprout tree append() * Remove stub request, response *Anchor* handling for now * Add test for validating Sapling note commitment tree using test blocks * Increase database version (new columns added for note commitment trees and anchors) * Update test to make sure the order of sapling_note_commitments() is being tested * Improve comments and structure of the test * Improve variable names again * Rustfmt Co-authored-by: Deirdre Connolly <deirdre@zfnd.org> Co-authored-by: Conrado P. L. Gouvea <conradoplg@gmail.com> Co-authored-by: Conrado Gouvea <conrado@zfnd.org> Co-authored-by: teor <teor@riseup.net>
2021-07-29 06:37:18 -07:00
# TODO: replace w/ crate version when released: https://github.com/ZcashFoundation/zebra/issues/2083
# Note: if updating this, also update the workspace Cargo.toml to match.
Update shared NU5 dependencies, set the NU5 testnet activation network upgrade parameters (#2825) * Check return value of zcash_script_new_precomputed_tx * Set the NU5 testnet activation height to 1_590_000 * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> * Update Nu5 constants to new values * Update ZIP-244 test vectors for new branch ID * Squashed commit of the following: commit bdb120a249e3e889a913114a712505defdade1d4 Author: Deirdre Connolly <durumcrustulum@gmail.com> Date: Tue Oct 5 11:54:01 2021 -0400 Use pallas::Base::from_str_vartime() in sinsemilla tests commit e99fa4925857840fa65ccfb4a076ec412e416576 Author: Deirdre Connolly <durumcrustulum@gmail.com> Date: Tue Oct 5 11:45:24 2021 -0400 Compiles commit a5200181146bfd2aa1e09abea2caaa7a7ceb006e Author: Deirdre Connolly <durumcrustulum@gmail.com> Date: Tue Oct 5 10:15:17 2021 -0400 Incomplete upgrade of deps * Squashed commit of the following: commit 8d1b76ec5626517817c3a4d9f3950acc90a359df Author: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com> Date: Tue Oct 5 04:02:26 2021 +0000 Update `zcash_script` to support V5 transactions Use a newer version of `zcash_script` that has been updated to support V5 transactions. commit 371233628ae61e0c25d6ba8f31d9dba42823becb Author: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com> Date: Tue Oct 5 03:06:20 2021 +0000 Update Zcash dependencies Update some Zcash crates: - `halo2` - `incrementalmerkletree' (patch version) - `orchard` (patch version) - `zcash_history` (patch version) - `zcash_note_encryption` (patch version) - `zcash_primitives` (patch version) And also update the `group` dependency so that the code remains compatible. commit de5cf1ec40c3fc08670fc971cdf3e65e13d9f4c7 Author: Janito Vaqueiro Ferreira Filho <janito.vff@gmail.com> Date: Tue Oct 5 03:04:13 2021 +0000 Update error message assertion Use the updated message for the expected error variant. * Update `zcash_script` to support V5 transactions Use a newer version of `zcash_script` that has been updated to support V5 transactions. Co-authored-by: Conrado Gouvea <conrado@zfnd.org> Co-authored-by: teor <teor@riseup.net>
2021-10-05 18:08:41 -07:00
halo2 = "=0.1.0-beta.1"
itertools = "0.10.3"
jubjub = "0.8.0"
2020-10-02 15:51:51 -07:00
proptest = "0.10.1"
proptest-derive = "0.3"
spandoc = "0.2"
tokio = { version = "1.16.1", features = ["full"] }
zebra-chain = { path = "../zebra-chain", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test/" }