From 32ae211aa4df34956b61d39cce384483597a60f2 Mon Sep 17 00:00:00 2001 From: Marek Date: Sat, 23 Sep 2023 01:24:11 +0200 Subject: [PATCH 01/14] Update `CHANGELOG.md` --- CHANGELOG.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a45994e65c..bf0a9e8d2af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,59 @@ All notable changes to Zebra are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org). +## [Zebra 1.3.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.3.0) - 2023-09-25 + +This release provides support for the Spend before Sync synchronization +strategy, and contains the following updates: + +### Security + +- Avoid panics and history tree consensus database concurrency bugs (#7590) + +### Added + +- Add missing elasticsearch flag feature to lib docs (#7568) +- Add self hosted runner for long tests (#7520) +- Add missing Docker variables and examples (#7552) + +#### Spend before Sync support + +- Add state requests and support code for the `z_getsubtreesbyindex` RPC (#7408) +- Implement the `z_getsubtreesbyindex` RPC (#7436) +- Add snapshot tests for the `z_getsubtreesbyindex` RPC (#7514) +- Add fixed test vectors for `z_getsubtreesbyindex` from zcashd to zebra ([#7515] +- Test `z_getsubtreesbyindex` using a lightwalletd gRPC request (#7521) +- Refactor docs for `z_getsubtreesbyindex` RPC state requests (#7462) +- Use correct end heights for end of block subtrees during the full sync (#7566) +- Format subtree roots in little-endian order (#7466) +- Add note subtree indexes for new and existing blocks (#7437) +- Upgrade subtrees from the tip backwards, for compatibility with wallet syncing (#7531) +- Add code comments to state validity test for subtree format upgrade (#7496) +- Format subtree roots in little-endian order (#7466) +- Compare subtrees in non-finalized chains when evaluating chain equality (#7562) +- Handle a subtree comparison edge case correctly (#7587) +- Use correct end heights for end of block subtrees during the full sync (#7566) +- Upgrade subtrees from the tip backwards, for compatibility with wallet syncing (#7531) +- Add code comments to state validity test for subtree format upgrade (#7496) + +### Changed + +- Check database format is valid every 5 minutes, to catch format errors in new block code (#7602) +- Check database format is valid on shutdown, to catch format errors in new block code (#7606) +- Restrict access to types for database writes (#7440) +- Return errors instead of panicking in methods for Heights (#7591) +- Update tests for new lightwalletd version used in Zebra ([#7349] + +### Fixed + +- Refactor docs for feature flags (#7567) +- Match zcashd's getblockchaininfo capitalisation for NU5 (#7454) + +### Contributors + +Thank you to everyone who contributed to this release, we couldn't make Zebra without you: +@arya2, @gustavovalverde, @oxarbitrage, @rex4539, @teor2345 and @upbqdn. + ## [Zebra 1.2.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.2.0) - 2023-09-01 ### Highlights From 0a980df786a1068c5721908b0480154dbe85e981 Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 25 Sep 2023 17:55:34 +0200 Subject: [PATCH 02/14] Apply suggestions from code review Co-authored-by: teor --- CHANGELOG.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf0a9e8d2af..b1c4ee8e421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,12 +12,11 @@ strategy, and contains the following updates: ### Security -- Avoid panics and history tree consensus database concurrency bugs (#7590) +- Fix database concurrency bugs that could have led to panics or incorrect history tree data (#7590) ### Added - Add missing elasticsearch flag feature to lib docs (#7568) -- Add self hosted runner for long tests (#7520) - Add missing Docker variables and examples (#7552) #### Spend before Sync support @@ -27,26 +26,18 @@ strategy, and contains the following updates: - Add snapshot tests for the `z_getsubtreesbyindex` RPC (#7514) - Add fixed test vectors for `z_getsubtreesbyindex` from zcashd to zebra ([#7515] - Test `z_getsubtreesbyindex` using a lightwalletd gRPC request (#7521) -- Refactor docs for `z_getsubtreesbyindex` RPC state requests (#7462) - Use correct end heights for end of block subtrees during the full sync (#7566) - Format subtree roots in little-endian order (#7466) - Add note subtree indexes for new and existing blocks (#7437) - Upgrade subtrees from the tip backwards, for compatibility with wallet syncing (#7531) -- Add code comments to state validity test for subtree format upgrade (#7496) -- Format subtree roots in little-endian order (#7466) -- Compare subtrees in non-finalized chains when evaluating chain equality (#7562) - Handle a subtree comparison edge case correctly (#7587) -- Use correct end heights for end of block subtrees during the full sync (#7566) -- Upgrade subtrees from the tip backwards, for compatibility with wallet syncing (#7531) -- Add code comments to state validity test for subtree format upgrade (#7496) ### Changed - Check database format is valid every 5 minutes, to catch format errors in new block code (#7602) - Check database format is valid on shutdown, to catch format errors in new block code (#7606) -- Restrict access to types for database writes (#7440) - Return errors instead of panicking in methods for Heights (#7591) -- Update tests for new lightwalletd version used in Zebra ([#7349] +- Update tests for compatibility with the ECC's `lightwalletd` fork (#7349) ### Fixed From 4e9ee83e103c67d26d02bb990722b11f9ec66f1d Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 25 Sep 2023 18:00:10 +0200 Subject: [PATCH 03/14] Group together test PRs for `z_getsubtreesbyindex` --- CHANGELOG.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1c4ee8e421..a0396944435 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,9 +24,7 @@ strategy, and contains the following updates: - Add state requests and support code for the `z_getsubtreesbyindex` RPC (#7408) - Implement the `z_getsubtreesbyindex` RPC (#7436) - Add snapshot tests for the `z_getsubtreesbyindex` RPC (#7514) -- Add fixed test vectors for `z_getsubtreesbyindex` from zcashd to zebra ([#7515] -- Test `z_getsubtreesbyindex` using a lightwalletd gRPC request (#7521) -- Use correct end heights for end of block subtrees during the full sync (#7566) +- Test the `z_getsubtreesbyindex` RPC (#7515, #7521, #7566) - Format subtree roots in little-endian order (#7466) - Add note subtree indexes for new and existing blocks (#7437) - Upgrade subtrees from the tip backwards, for compatibility with wallet syncing (#7531) From 1667987529600f8409484a25b432416e6dc41ff0 Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 25 Sep 2023 19:23:08 +0200 Subject: [PATCH 04/14] chore: Release --- Cargo.lock | 24 ++++++++++++------------ book/src/user/docker.md | 2 +- book/src/user/install.md | 4 ++-- tower-batch-control/Cargo.toml | 2 +- tower-fallback/Cargo.toml | 2 +- zebra-chain/Cargo.toml | 4 ++-- zebra-consensus/Cargo.toml | 14 +++++++------- zebra-network/Cargo.toml | 4 ++-- zebra-node-services/Cargo.toml | 4 ++-- zebra-rpc/Cargo.toml | 14 +++++++------- zebra-script/Cargo.toml | 4 ++-- zebra-state/Cargo.toml | 6 +++--- zebra-test/Cargo.toml | 2 +- zebra-utils/Cargo.toml | 8 ++++---- zebrad/Cargo.toml | 16 ++++++++-------- 15 files changed, 55 insertions(+), 55 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dae013e3bb7..7c8d9ac8062 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4601,7 +4601,7 @@ dependencies = [ [[package]] name = "tower-batch-control" -version = "0.2.41-beta.5" +version = "0.2.41-beta.6" dependencies = [ "color-eyre", "ed25519-zebra", @@ -4625,7 +4625,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.41-beta.5" +version = "0.2.41-beta.6" dependencies = [ "futures-core", "pin-project", @@ -5525,7 +5525,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "bitflags 2.4.0", "bitflags-serde-legacy", @@ -5586,7 +5586,7 @@ dependencies = [ [[package]] name = "zebra-consensus" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "bellman", "blake2b_simd", @@ -5631,7 +5631,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "bitflags 2.4.0", "byteorder", @@ -5672,7 +5672,7 @@ dependencies = [ [[package]] name = "zebra-node-services" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "color-eyre", "jsonrpc-core", @@ -5684,7 +5684,7 @@ dependencies = [ [[package]] name = "zebra-rpc" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "chrono", "futures", @@ -5716,7 +5716,7 @@ dependencies = [ [[package]] name = "zebra-script" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "displaydoc", "hex", @@ -5729,7 +5729,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "bincode", "chrono", @@ -5772,7 +5772,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "color-eyre", "futures", @@ -5799,7 +5799,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" dependencies = [ "color-eyre", "hex", @@ -5820,7 +5820,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "1.2.0" +version = "1.3.0" dependencies = [ "abscissa_core", "atty", diff --git a/book/src/user/docker.md b/book/src/user/docker.md index dc977069db8..33cf76ac943 100644 --- a/book/src/user/docker.md +++ b/book/src/user/docker.md @@ -17,7 +17,7 @@ docker run --detach zfnd/zebra:latest ### Build it locally ```shell -git clone --depth 1 --branch v1.2.0 https://github.com/ZcashFoundation/zebra.git +git clone --depth 1 --branch v1.3.0 https://github.com/ZcashFoundation/zebra.git docker build --file docker/Dockerfile --target runtime --tag zebra:local . docker run --detach zebra:local ``` diff --git a/book/src/user/install.md b/book/src/user/install.md index 28e7fc1bab3..2a03398d6e4 100644 --- a/book/src/user/install.md +++ b/book/src/user/install.md @@ -20,7 +20,7 @@ To compile Zebra directly from GitHub, or from a GitHub release source archive: ```sh git clone https://github.com/ZcashFoundation/zebra.git cd zebra -git checkout v1.2.0 +git checkout v1.3.0 ``` 3. Build and Run `zebrad` @@ -33,7 +33,7 @@ target/release/zebrad start ### Compiling from git using cargo install ```sh -cargo install --git https://github.com/ZcashFoundation/zebra --tag v1.2.0 zebrad +cargo install --git https://github.com/ZcashFoundation/zebra --tag v1.3.0 zebrad ``` ### Compiling on ARM diff --git a/tower-batch-control/Cargo.toml b/tower-batch-control/Cargo.toml index b1421122b08..85ab4629424 100644 --- a/tower-batch-control/Cargo.toml +++ b/tower-batch-control/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-batch-control" -version = "0.2.41-beta.5" +version = "0.2.41-beta.6" authors = ["Zcash Foundation ", "Tower Maintainers "] description = "Tower middleware for batch request processing" # # Legal diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index b07f6f088b6..cf01b18da9e 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.41-beta.5" +version = "0.2.41-beta.6" authors = ["Zcash Foundation "] description = "A Tower service combinator that sends requests to a first service, then retries processing on a second fallback service if the first service errors." license = "MIT OR Apache-2.0" diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index 57e7f81cfbb..76d17d1e453 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "Core Zcash data structures" license = "MIT OR Apache-2.0" @@ -126,7 +126,7 @@ proptest-derive = { version = "0.4.0", optional = true } rand = { version = "0.8.5", optional = true } rand_chacha = { version = "0.3.1", optional = true } -zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.29", optional = true } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.30", optional = true } [dev-dependencies] # Benchmarks diff --git a/zebra-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index 17cd96caebb..122345297cc 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "Implementation of Zcash consensus checks" license = "MIT OR Apache-2.0" @@ -62,13 +62,13 @@ orchard = "0.5.0" zcash_proofs = { version = "0.12.1", features = ["local-prover", "multicore", "download-params"] } -tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.5" } -tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.5" } +tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.6" } +tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.6" } -zebra-script = { path = "../zebra-script", version = "1.0.0-beta.29" } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.29" } -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" } +zebra-script = { path = "../zebra-script", version = "1.0.0-beta.30" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.30" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.30" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30" } # prod feature progress-bar howudoin = { version = "0.1.2", optional = true } diff --git a/zebra-network/Cargo.toml b/zebra-network/Cargo.toml index 84eaca20727..a49070045f9 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation ", "Tower Maintainers "] description = "Networking code for Zebra" # # Legal @@ -83,7 +83,7 @@ howudoin = { version = "0.1.2", optional = true } proptest = { version = "1.2.0", optional = true } proptest-derive = { version = "0.4.0", optional = true } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29", features = ["async-error"] } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30", features = ["async-error"] } [dev-dependencies] proptest = "1.2.0" diff --git a/zebra-node-services/Cargo.toml b/zebra-node-services/Cargo.toml index 493787fd1e5..54149122965 100644 --- a/zebra-node-services/Cargo.toml +++ b/zebra-node-services/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-node-services" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "The interfaces of some Zebra node services" license = "MIT OR Apache-2.0" @@ -35,7 +35,7 @@ rpc-client = [ ] [dependencies] -zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.29" } +zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.30" } # Optional dependencies diff --git a/zebra-rpc/Cargo.toml b/zebra-rpc/Cargo.toml index 21468d395ac..e6ef9a94a64 100644 --- a/zebra-rpc/Cargo.toml +++ b/zebra-rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-rpc" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "A Zebra JSON Remote Procedure Call (JSON-RPC) interface" license = "MIT OR Apache-2.0" @@ -70,12 +70,12 @@ zcash_address = { version = "0.3.0", optional = true } # Test-only feature proptest-impl proptest = { version = "1.2.0", optional = true } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29", features = ["json-conversion"] } -zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.29" } -zebra-network = { path = "../zebra-network", version = "1.0.0-beta.29" } -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" } -zebra-script = { path = "../zebra-script", version = "1.0.0-beta.29" } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.29" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30", features = ["json-conversion"] } +zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.30" } +zebra-network = { path = "../zebra-network", version = "1.0.0-beta.30" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.30" } +zebra-script = { path = "../zebra-script", version = "1.0.0-beta.30" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.30" } [dev-dependencies] insta = { version = "1.31.0", features = ["redactions", "json", "ron"] } diff --git a/zebra-script/Cargo.toml b/zebra-script/Cargo.toml index 1acb8048465..da39011298a 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "Zebra script verification wrapping zcashd's zcash_script library" license = "MIT OR Apache-2.0" @@ -17,7 +17,7 @@ categories = ["api-bindings", "cryptography::cryptocurrencies"] [dependencies] zcash_script = "0.1.13" -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30" } thiserror = "1.0.48" displaydoc = "0.2.4" diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index 3d32e4b05df..5d71da822aa 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "State contextual verification and storage code for Zebra" license = "MIT OR Apache-2.0" @@ -72,13 +72,13 @@ tracing = "0.1.37" elasticsearch = { version = "8.5.0-alpha.1", default-features = false, features = ["rustls-tls"], optional = true } serde_json = { version = "1.0.107", package = "serde_json", optional = true } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29", features = ["async-error"] } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30", features = ["async-error"] } # prod feature progress-bar howudoin = { version = "0.1.2", optional = true } # test feature proptest-impl -zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.29", optional = true } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.30", optional = true } proptest = { version = "1.2.0", optional = true } proptest-derive = { version = "0.4.0", optional = true } diff --git a/zebra-test/Cargo.toml b/zebra-test/Cargo.toml index ef3dfb08ca1..e5115c118e4 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "Test harnesses and test vectors for Zebra" license = "MIT OR Apache-2.0" diff --git a/zebra-utils/Cargo.toml b/zebra-utils/Cargo.toml index cc67b080622..dde71a7de2e 100644 --- a/zebra-utils/Cargo.toml +++ b/zebra-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-utils" -version = "1.0.0-beta.29" +version = "1.0.0-beta.30" authors = ["Zcash Foundation "] description = "Developer tools for Zebra maintenance and testing" license = "MIT OR Apache-2.0" @@ -74,11 +74,11 @@ tracing-error = "0.2.0" tracing-subscriber = "0.3.17" thiserror = "1.0.48" -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.30" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30" } # These crates are needed for the block-template-to-proposal binary -zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.29", optional = true } +zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.30", optional = true } # These crates are needed for the zebra-checkpoints binary itertools = { version = "0.11.0", optional = true } diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index a2b57eeee25..96a35651630 100644 --- a/zebrad/Cargo.toml +++ b/zebrad/Cargo.toml @@ -1,7 +1,7 @@ [package] # Crate metadata name = "zebrad" -version = "1.2.0" +version = "1.3.0" authors = ["Zcash Foundation "] description = "The Zcash Foundation's independent, consensus-compatible implementation of a Zcash node" license = "MIT OR Apache-2.0" @@ -142,15 +142,15 @@ test_sync_past_mandatory_checkpoint_mainnet = [] test_sync_past_mandatory_checkpoint_testnet = [] [dependencies] -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" } -zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.29" } -zebra-network = { path = "../zebra-network", version = "1.0.0-beta.29" } -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" } -zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.29" } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.29" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30" } +zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.30" } +zebra-network = { path = "../zebra-network", version = "1.0.0-beta.30" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.30" } +zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.30" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.30" } # Required for crates.io publishing, but it's only used in tests -zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.29", optional = true } +zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.30", optional = true } abscissa_core = "0.7.0" clap = { version = "4.4.4", features = ["cargo"] } From 8d0b3a9361104b88e86ff937771d2ef8aa7592b1 Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 25 Sep 2023 19:29:01 +0200 Subject: [PATCH 05/14] Update the end of support height --- zebrad/src/components/sync/end_of_support.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zebrad/src/components/sync/end_of_support.rs b/zebrad/src/components/sync/end_of_support.rs index a4582ff38bf..e8aeeaa7f64 100644 --- a/zebrad/src/components/sync/end_of_support.rs +++ b/zebrad/src/components/sync/end_of_support.rs @@ -13,7 +13,7 @@ use zebra_chain::{ use crate::application::release_version; /// The estimated height that this release will be published. -pub const ESTIMATED_RELEASE_HEIGHT: u32 = 2_212_380; +pub const ESTIMATED_RELEASE_HEIGHT: u32 = 2_240_000; /// The maximum number of days after `ESTIMATED_RELEASE_HEIGHT` where a Zebra server will run /// without halting. From bc98e847195bd22cd4bb3417b3806f5c64a0edda Mon Sep 17 00:00:00 2001 From: teor Date: Fri, 13 Oct 2023 08:29:17 +1000 Subject: [PATCH 06/14] Add progress bars changelog entry --- CHANGELOG.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0396944435..26f83a0c435 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,8 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org). ## [Zebra 1.3.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.3.0) - 2023-09-25 -This release provides support for the Spend before Sync synchronization -strategy, and contains the following updates: +This release adds RPC methods for the "Spend before Sync" light wallet synchronization +strategy, and fixes performance issues and bugs in the mining solution rate RPCs. +Progress bars can now be enabled using a config, please help us test them! + +It contains the following updates: + +### User Testing: Progress Bars + +Zebra has progress bars! When progress bars are enabled, you can see Zebra's blocks, +transactions, and peer connections in your terminal. We're asking Zebra users to test this +feature, and give us [feedback on the forums](https://forum.zcashcommunity.com/t/zebra-progress-bars/44485). + +To show progress bars while running Zebra, add these lines to your `zebrad.toml`: +```toml +[tracing] +progress_bar = "summary" +``` + +For more details, including a known issue with time estimates, +read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress-bars/). ### Security From eed599c631b0443172d6adf9dad5ff657402d484 Mon Sep 17 00:00:00 2001 From: Marek Date: Fri, 13 Oct 2023 21:31:54 +0200 Subject: [PATCH 07/14] Update CHANGELOG.md Co-authored-by: teor --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26f83a0c435..f3761d1293f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- ### Added +- Zebra's progress bars can now be enabled using a `zebrad.toml` config (#7615) - Add missing elasticsearch flag feature to lib docs (#7568) - Add missing Docker variables and examples (#7552) From 8c7f15c04a9471834a94b37b29372932650ef28e Mon Sep 17 00:00:00 2001 From: Marek Date: Fri, 13 Oct 2023 22:04:17 +0200 Subject: [PATCH 08/14] Update CHANGELOG.md Co-authored-by: teor --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3761d1293f..12041857692 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,8 +51,7 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- ### Changed -- Check database format is valid every 5 minutes, to catch format errors in new block code (#7602) -- Check database format is valid on shutdown, to catch format errors in new block code (#7606) +- Check database format is valid on shutdown in production, to catch rare database edge-cases (#7606). We expect to catch almost all of these errors in CI (#7602, #7627). - Return errors instead of panicking in methods for Heights (#7591) - Update tests for compatibility with the ECC's `lightwalletd` fork (#7349) From 59f7bc1bdacbcd14998b250aa6f5da55fac06c81 Mon Sep 17 00:00:00 2001 From: Marek Date: Fri, 13 Oct 2023 22:05:29 +0200 Subject: [PATCH 09/14] Update `CHANGELOG.md` --- CHANGELOG.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12041857692..48e4a803e9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,11 +5,11 @@ All notable changes to Zebra are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org). -## [Zebra 1.3.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.3.0) - 2023-09-25 +## [Zebra 1.3.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.3.0) - 2023-10-16 -This release adds RPC methods for the "Spend before Sync" light wallet synchronization -strategy, and fixes performance issues and bugs in the mining solution rate RPCs. -Progress bars can now be enabled using a config, please help us test them! +This release adds RPC methods for the "Spend before Sync" light wallet feature, +and fixes performance issues and bugs in the mining solution rate RPCs. Progress +bars can now be enabled using a config, please help us test them! It contains the following updates: @@ -42,8 +42,7 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- - Add state requests and support code for the `z_getsubtreesbyindex` RPC (#7408) - Implement the `z_getsubtreesbyindex` RPC (#7436) -- Add snapshot tests for the `z_getsubtreesbyindex` RPC (#7514) -- Test the `z_getsubtreesbyindex` RPC (#7515, #7521, #7566) +- Test the `z_getsubtreesbyindex` RPC (#7515, #7521, #7566, #7514) - Format subtree roots in little-endian order (#7466) - Add note subtree indexes for new and existing blocks (#7437) - Upgrade subtrees from the tip backwards, for compatibility with wallet syncing (#7531) From 75a05971fb1694896b995c0ddc070c2e85dba60c Mon Sep 17 00:00:00 2001 From: Marek Date: Fri, 13 Oct 2023 23:51:32 +0200 Subject: [PATCH 10/14] Update `CHANGELOG.md` --- CHANGELOG.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48e4a803e9a..76f9e9eaf63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,7 +30,7 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- ### Security -- Fix database concurrency bugs that could have led to panics or incorrect history tree data (#7590) +- Fix database concurrency bugs that could have led to panics or incorrect history tree data (#7590, #7663) ### Added @@ -38,11 +38,11 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- - Add missing elasticsearch flag feature to lib docs (#7568) - Add missing Docker variables and examples (#7552) -#### Spend before Sync support +#### Spend before Sync Support -- Add state requests and support code for the `z_getsubtreesbyindex` RPC (#7408) +- Add state requests and support code for the `z_getsubtreesbyindex` RPC (#7408, #7734) - Implement the `z_getsubtreesbyindex` RPC (#7436) -- Test the `z_getsubtreesbyindex` RPC (#7515, #7521, #7566, #7514) +- Test the `z_getsubtreesbyindex` RPC (#7515, #7521, #7566, #7514, #7628) - Format subtree roots in little-endian order (#7466) - Add note subtree indexes for new and existing blocks (#7437) - Upgrade subtrees from the tip backwards, for compatibility with wallet syncing (#7531) @@ -50,14 +50,17 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- ### Changed -- Check database format is valid on shutdown in production, to catch rare database edge-cases (#7606). We expect to catch almost all of these errors in CI (#7602, #7627). - Return errors instead of panicking in methods for Heights (#7591) - Update tests for compatibility with the ECC's `lightwalletd` fork (#7349) +- Put chain data into an inner struct (#7608) ### Fixed - Refactor docs for feature flags (#7567) - Match zcashd's getblockchaininfo capitalisation for NU5 (#7454) +- Populate subtree fields in the `NoteCommitmentTrees` struct (#7636) +- Checking if transactions get into the mempool fails in lightwalletd tests (#7644) +- Fix bugs and performance of `getnetworksolps` & `getnetworkhashps` RPCs (#7647) ### Contributors From 9d43bb06febe3d0aafbb1956ab0338d1d0c5d1a0 Mon Sep 17 00:00:00 2001 From: Marek Date: Sat, 14 Oct 2023 00:04:49 +0200 Subject: [PATCH 11/14] Update `README.md` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 52cec8703ff..853b4c47f10 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ - [Getting Started](#getting-started) - [Docker](#docker) - [Building Zebra](#building-zebra) - - [Optional Configs & Features](#optional-features) + - [Optional Configs & Features](#optional-configs--features) - [Known Issues](#known-issues) - [Future Work](#future-work) - [Documentation](#documentation) From bde465bd1dc18270eb7b7f01c04cf0e21ddba87a Mon Sep 17 00:00:00 2001 From: Marek Date: Sat, 14 Oct 2023 00:07:23 +0200 Subject: [PATCH 12/14] Update `ESTIMATED_RELEASE_HEIGHT` Set the release height to start on ~ Monday, 2023-10-16. --- zebrad/src/components/sync/end_of_support.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zebrad/src/components/sync/end_of_support.rs b/zebrad/src/components/sync/end_of_support.rs index e8aeeaa7f64..f7ca757d2b3 100644 --- a/zebrad/src/components/sync/end_of_support.rs +++ b/zebrad/src/components/sync/end_of_support.rs @@ -13,7 +13,7 @@ use zebra_chain::{ use crate::application::release_version; /// The estimated height that this release will be published. -pub const ESTIMATED_RELEASE_HEIGHT: u32 = 2_240_000; +pub const ESTIMATED_RELEASE_HEIGHT: u32 = 2_264_000; /// The maximum number of days after `ESTIMATED_RELEASE_HEIGHT` where a Zebra server will run /// without halting. From 87edfdc2eb3f0f6ce6b690d9592d999568ee6ce9 Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 16 Oct 2023 13:34:42 +0200 Subject: [PATCH 13/14] Update CHANGELOG.md Co-authored-by: teor --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 76f9e9eaf63..513a675ee51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- - Zebra's progress bars can now be enabled using a `zebrad.toml` config (#7615) - Add missing elasticsearch flag feature to lib docs (#7568) - Add missing Docker variables and examples (#7552) +- Check database format is valid on startup and shutdown (#7566, #7606). We expect to catch almost all database validity errors in CI (#7602, #7627), so users are unlikely to see them on startup or shutdown. #### Spend before Sync Support From 8c83495daae272013004fdba550fa739bbd4b191 Mon Sep 17 00:00:00 2001 From: Marek Date: Mon, 16 Oct 2023 13:32:46 +0200 Subject: [PATCH 14/14] Remove changelog entries invisible to users --- CHANGELOG.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 513a675ee51..8457fce4916 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,14 +53,11 @@ read our [progress bars blog post](https://zfnd.org/experimental-zebra-progress- - Return errors instead of panicking in methods for Heights (#7591) - Update tests for compatibility with the ECC's `lightwalletd` fork (#7349) -- Put chain data into an inner struct (#7608) ### Fixed - Refactor docs for feature flags (#7567) - Match zcashd's getblockchaininfo capitalisation for NU5 (#7454) -- Populate subtree fields in the `NoteCommitmentTrees` struct (#7636) -- Checking if transactions get into the mempool fails in lightwalletd tests (#7644) - Fix bugs and performance of `getnetworksolps` & `getnetworkhashps` RPCs (#7647) ### Contributors