From 07c8c37c7d40203835c54ed991345ef918dcb211 Mon Sep 17 00:00:00 2001 From: Alfredo Garcia Date: Sun, 2 Feb 2025 15:28:18 -0300 Subject: [PATCH 1/5] add changelog section for 2.2.0 --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f12c495bb75..34a401e34e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,38 @@ 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 2.2.0](https://github.com/ZcashFoundation/zebra/releases/tag/v2.2.0) - 2025-02-03 + +In this release, Zebra fixed a consensus bug in the branch ID of Nu6 transactions, along with important refactors and improvements. + +### Added + +- An index to track spending transaction ids by spent outpoints and revealed nullifiers ([#8895](https://github.com/ZcashFoundation/zebra/pull/8895)) +- Public getter / setter functions to Zebra-RPC::methods.rs ([#9113](https://github.com/ZcashFoundation/zebra/pull/9113)) +- `getblock` RPC method now can return transaction details with verbosity=2 ([#9083](https://github.com/ZcashFoundation/zebra/pull/9083)) +- A missing serialized NU5 blocks to test vectors ([#9098](https://github.com/ZcashFoundation/zebra/pull/9098)) + +### Changed + +- Migrated from deprecated `jsonrpc_*` crates to `jsonrpsee` ([#9059](https://github.com/ZcashFoundation/zebra/pull/9059), [#9151](https://github.com/ZcashFoundation/zebra/pull/9151)) +- Optimized checks for coinbase transactions ([#9126](https://github.com/ZcashFoundation/zebra/pull/9126)) +- Avoid re-verifying transactions in blocks if those transactions are in the mempool ([#8951](https://github.com/ZcashFoundation/zebra/pull/8951)) +- Allow transactions spending coinbase outputs to have transparent outputs on Regtest ([#9085](https://github.com/ZcashFoundation/zebra/pull/9085)) + +### Fixed + +- Respond to getblockchaininfo with genesis block when empty state ([#9138](https://github.com/ZcashFoundation/zebra/pull/9138)) +- Avoid a concurrency bug when verifying transactions in blocks that are already present in the mempool ([#9118](https://github.com/ZcashFoundation/zebra/pull/9118)) +- Verify consensus branch ID in SIGHASH precomputation ([#9139](https://github.com/ZcashFoundation/zebra/pull/9139)) +- Refactor `getrawtransaction` and RPC error handling ([#9049](https://github.com/ZcashFoundation/zebra/pull/9049)) +- Fixes bugs in the lightwalletd integration tests ([#9052](https://github.com/ZcashFoundation/zebra/pull/9052)) + +### Contributors + +Thank you to everyone who contributed to this release, we couldn't make Zebra without you: +@Fallengirl, @arya2, @conradoplg, @elijahhampton, @futreall, @gustavovalverde, @idky137, @mpguerra, @oxarbitrage, @rex4539, @rootdiae, @sandakersmann and @upbqdn + + ## [Zebra 2.1.0](https://github.com/ZcashFoundation/zebra/releases/tag/v2.1.0) - 2024-12-06 This release adds a check to verify that V5 transactions in the mempool have the correct consensus branch ID; From d6d02f7119febd1809ebb0bd9d29731f6551356a Mon Sep 17 00:00:00 2001 From: Alfredo Garcia Date: Mon, 3 Feb 2025 07:43:43 -0300 Subject: [PATCH 2/5] chore: Release --- Cargo.lock | 28 ++++++++++++++-------------- book/src/user/docker.md | 2 +- book/src/user/install.md | 4 ++-- tower-batch-control/Cargo.toml | 6 +++--- tower-fallback/Cargo.toml | 4 ++-- zebra-chain/Cargo.toml | 6 +++--- zebra-consensus/Cargo.toml | 20 ++++++++++---------- zebra-grpc/Cargo.toml | 6 +++--- zebra-network/Cargo.toml | 4 ++-- zebra-node-services/Cargo.toml | 4 ++-- zebra-rpc/Cargo.toml | 24 ++++++++++++------------ zebra-scan/Cargo.toml | 20 ++++++++++---------- zebra-script/Cargo.toml | 6 +++--- zebra-state/Cargo.toml | 10 +++++----- zebra-test/Cargo.toml | 2 +- zebra-utils/Cargo.toml | 8 ++++---- zebrad/Cargo.toml | 30 +++++++++++++++--------------- 17 files changed, 92 insertions(+), 92 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 11dcdfaa92c..0d4b5a3719b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4888,7 +4888,7 @@ dependencies = [ [[package]] name = "tower-batch-control" -version = "0.2.41-beta.20" +version = "0.2.41-beta.21" dependencies = [ "color-eyre", "ed25519-zebra", @@ -4911,7 +4911,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.41-beta.20" +version = "0.2.41-beta.21" dependencies = [ "futures-core", "pin-project", @@ -5969,7 +5969,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "bitflags 2.8.0", "bitflags-serde-legacy", @@ -6034,7 +6034,7 @@ dependencies = [ [[package]] name = "zebra-consensus" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "bellman", "blake2b_simd", @@ -6080,7 +6080,7 @@ dependencies = [ [[package]] name = "zebra-grpc" -version = "0.1.0-alpha.11" +version = "0.1.0-alpha.12" dependencies = [ "color-eyre", "futures-util", @@ -6102,7 +6102,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "bitflags 2.8.0", "byteorder", @@ -6143,7 +6143,7 @@ dependencies = [ [[package]] name = "zebra-node-services" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "color-eyre", "jsonrpsee-types", @@ -6156,7 +6156,7 @@ dependencies = [ [[package]] name = "zebra-rpc" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "base64 0.22.1", "chrono", @@ -6197,7 +6197,7 @@ dependencies = [ [[package]] name = "zebra-scan" -version = "0.1.0-alpha.13" +version = "0.1.0-alpha.14" dependencies = [ "bls12_381", "chrono", @@ -6243,7 +6243,7 @@ dependencies = [ [[package]] name = "zebra-script" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "hex", "lazy_static", @@ -6255,7 +6255,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "bincode", "chrono", @@ -6301,7 +6301,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "color-eyre", "futures", @@ -6329,7 +6329,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" dependencies = [ "color-eyre", "hex", @@ -6360,7 +6360,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "2.1.1" +version = "2.2.0" dependencies = [ "abscissa_core", "atty", diff --git a/book/src/user/docker.md b/book/src/user/docker.md index bee81533175..1349ee6b322 100644 --- a/book/src/user/docker.md +++ b/book/src/user/docker.md @@ -37,7 +37,7 @@ docker run -d --platform linux/amd64 \ ### Build it locally ```shell -git clone --depth 1 --branch v2.1.1 https://github.com/ZcashFoundation/zebra.git +git clone --depth 1 --branch v2.2.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 f9e0b03c5c9..272a99cba7a 100644 --- a/book/src/user/install.md +++ b/book/src/user/install.md @@ -76,7 +76,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 v2.1.1 +git checkout v2.2.0 ``` 3. Build and Run `zebrad` @@ -89,7 +89,7 @@ target/release/zebrad start ### Compiling from git using cargo install ```sh -cargo install --git https://github.com/ZcashFoundation/zebra --tag v2.1.1 zebrad +cargo install --git https://github.com/ZcashFoundation/zebra --tag v2.2.0 zebrad ``` ### Compiling on ARM diff --git a/tower-batch-control/Cargo.toml b/tower-batch-control/Cargo.toml index 6170840c098..212ac912393 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.20" +version = "0.2.41-beta.21" authors = ["Zcash Foundation ", "Tower Maintainers "] description = "Tower middleware for batch request processing" # # Legal @@ -43,10 +43,10 @@ rand = "0.8.5" tokio = { version = "1.43.0", features = ["full", "tracing", "test-util"] } tokio-test = "0.4.4" -tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.20" } +tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.21" } tower-test = "0.4.0" -zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.44" } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.45" } [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] } diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index 2141c2bdc4b..0958bea12c5 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.41-beta.20" +version = "0.2.41-beta.21" 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" @@ -24,4 +24,4 @@ tracing = "0.1.41" [dev-dependencies] tokio = { version = "1.43.0", features = ["full", "tracing", "test-util"] } -zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.44" } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.45" } diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index 07a38ac0818..3263776713e 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" authors = ["Zcash Foundation "] description = "Core Zcash data structures" license = "MIT OR Apache-2.0" @@ -145,7 +145,7 @@ proptest-derive = { version = "0.5.1", 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.44", optional = true } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.45", optional = true } [dev-dependencies] # Benchmarks @@ -168,7 +168,7 @@ rand_chacha = "0.3.1" tokio = { version = "1.43.0", features = ["full", "tracing", "test-util"] } -zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.44" } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.45" } [[bench]] name = "block" diff --git a/zebra-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index 8a01cbf44ad..5b7d3400fdd 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" authors = ["Zcash Foundation "] description = "Implementation of Zcash consensus checks" license = "MIT OR Apache-2.0" @@ -63,13 +63,13 @@ orchard.workspace = true zcash_proofs = { workspace = true, features = ["multicore" ] } wagyu-zcash-parameters = "0.2.0" -tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.20" } -tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.20" } +tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.21" } +tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.21" } -zebra-script = { path = "../zebra-script", version = "1.0.0-beta.44" } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44" } -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.44" } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44" } +zebra-script = { path = "../zebra-script", version = "1.0.0-beta.45" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.45" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45" } # prod feature progress-bar howudoin = { version = "0.1.2", optional = true } @@ -94,6 +94,6 @@ tokio = { version = "1.43.0", features = ["full", "tracing", "test-util"] } tracing-error = "0.2.1" tracing-subscriber = "0.3.19" -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44", features = ["proptest-impl"] } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = ["proptest-impl"] } -zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.44" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45", features = ["proptest-impl"] } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", features = ["proptest-impl"] } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.45" } diff --git a/zebra-grpc/Cargo.toml b/zebra-grpc/Cargo.toml index 411abc378ad..345f6347a35 100644 --- a/zebra-grpc/Cargo.toml +++ b/zebra-grpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-grpc" -version = "0.1.0-alpha.11" +version = "0.1.0-alpha.12" authors = ["Zcash Foundation "] description = "Zebra gRPC interface" license = "MIT OR Apache-2.0" @@ -28,8 +28,8 @@ color-eyre = "0.6.3" zcash_primitives.workspace = true -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.44", features = ["shielded-scan"] } -zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.44" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.45", features = ["shielded-scan"] } +zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.45" } [build-dependencies] tonic-build = "0.12.3" diff --git a/zebra-network/Cargo.toml b/zebra-network/Cargo.toml index c7410b6b02a..14d61d4d7ff 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" 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.6.0", optional = true } proptest-derive = { version = "0.5.1", optional = true } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = ["async-error"] } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", features = ["async-error"] } [dev-dependencies] proptest = "1.6.0" diff --git a/zebra-node-services/Cargo.toml b/zebra-node-services/Cargo.toml index c84e8e9e2f2..b4f776ff1f4 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.44" +version = "1.0.0-beta.45" authors = ["Zcash Foundation "] description = "The interfaces of some Zebra node services" license = "MIT OR Apache-2.0" @@ -37,7 +37,7 @@ rpc-client = [ shielded-scan = [] [dependencies] -zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.44" } +zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.45" } # Optional dependencies diff --git a/zebra-rpc/Cargo.toml b/zebra-rpc/Cargo.toml index 0c93ba9b4e9..c99b11f4469 100644 --- a/zebra-rpc/Cargo.toml +++ b/zebra-rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-rpc" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" authors = ["Zcash Foundation "] description = "A Zebra JSON Remote Procedure Call (JSON-RPC) interface" license = "MIT OR Apache-2.0" @@ -105,16 +105,16 @@ zcash_address = { workspace = true, optional = true} # Test-only feature proptest-impl proptest = { version = "1.6.0", optional = true } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = [ +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", features = [ "json-conversion", ] } -zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.44" } -zebra-network = { path = "../zebra-network", version = "1.0.0-beta.44" } -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.44", features = [ +zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.45" } +zebra-network = { path = "../zebra-network", version = "1.0.0-beta.45" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.45", features = [ "rpc-client", ] } -zebra-script = { path = "../zebra-script", version = "1.0.0-beta.44" } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44" } +zebra-script = { path = "../zebra-script", version = "1.0.0-beta.45" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45" } [build-dependencies] tonic-build = { version = "0.12.3", optional = true } @@ -127,17 +127,17 @@ proptest = "1.6.0" thiserror = "2.0.11" tokio = { version = "1.43.0", features = ["full", "tracing", "test-util"] } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = [ +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", features = [ "proptest-impl", ] } -zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.44", features = [ +zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.45", features = [ "proptest-impl", ] } -zebra-network = { path = "../zebra-network", version = "1.0.0-beta.44", features = [ +zebra-network = { path = "../zebra-network", version = "1.0.0-beta.45", features = [ "proptest-impl", ] } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44", features = [ +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45", features = [ "proptest-impl", ] } -zebra-test = { path = "../zebra-test", version = "1.0.0-beta.44" } +zebra-test = { path = "../zebra-test", version = "1.0.0-beta.45" } diff --git a/zebra-scan/Cargo.toml b/zebra-scan/Cargo.toml index 9c785ceae0b..bb8a945fa68 100644 --- a/zebra-scan/Cargo.toml +++ b/zebra-scan/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-scan" -version = "0.1.0-alpha.13" +version = "0.1.0-alpha.14" authors = ["Zcash Foundation "] description = "Shielded transaction scanner for the Zcash blockchain" license = "MIT OR Apache-2.0" @@ -77,11 +77,11 @@ zcash_primitives.workspace = true zcash_address.workspace = true sapling-crypto.workspace = true -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = ["shielded-scan"] } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44", features = ["shielded-scan"] } -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.44", features = ["shielded-scan"] } -zebra-grpc = { path = "../zebra-grpc", version = "0.1.0-alpha.11" } -zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.44" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", features = ["shielded-scan"] } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45", features = ["shielded-scan"] } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.45", features = ["shielded-scan"] } +zebra-grpc = { path = "../zebra-grpc", version = "0.1.0-alpha.12" } +zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.45" } chrono = { version = "0.4.39", default-features = false, features = ["clock", "std", "serde"] } @@ -96,7 +96,7 @@ jubjub = { version = "0.10.0", optional = true } rand = { version = "0.8.5", optional = true } zcash_note_encryption = { version = "0.4.1", optional = true } -zebra-test = { path = "../zebra-test", version = "1.0.0-beta.44", optional = true } +zebra-test = { path = "../zebra-test", version = "1.0.0-beta.45", optional = true } # zebra-scanner binary dependencies tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } @@ -107,7 +107,7 @@ serde_json = "1.0.138" jsonrpc = { version = "0.18.0", optional = true } hex = { version = "0.4.3", optional = true } -zebrad = { path = "../zebrad", version = "2.1.1" } +zebrad = { path = "../zebrad", version = "2.2.0" } [dev-dependencies] insta = { version = "1.42.1", features = ["ron", "redactions"] } @@ -125,5 +125,5 @@ zcash_note_encryption = "0.4.1" toml = "0.8.19" tonic = "0.12.3" -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44", features = ["proptest-impl"] } -zebra-test = { path = "../zebra-test", version = "1.0.0-beta.44" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45", features = ["proptest-impl"] } +zebra-test = { path = "../zebra-test", version = "1.0.0-beta.45" } diff --git a/zebra-script/Cargo.toml b/zebra-script/Cargo.toml index 5aed0b0a949..c61b4b8b567 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" authors = ["Zcash Foundation "] description = "Zebra script verification wrapping zcashd's zcash_script library" license = "MIT OR Apache-2.0" @@ -16,11 +16,11 @@ categories = ["api-bindings", "cryptography::cryptocurrencies"] [dependencies] zcash_script = "0.2.0" -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45" } thiserror = "2.0.11" [dev-dependencies] hex = "0.4.3" lazy_static = "1.4.0" -zebra-test = { path = "../zebra-test", version = "1.0.0-beta.44" } +zebra-test = { path = "../zebra-test", version = "1.0.0-beta.45" } diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index ab236e830d1..0c069ef28e2 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" authors = ["Zcash Foundation "] description = "State contextual verification and storage code for Zebra" license = "MIT OR Apache-2.0" @@ -81,13 +81,13 @@ tracing = "0.1.41" elasticsearch = { version = "8.17.0-alpha.1", default-features = false, features = ["rustls-tls"], optional = true } serde_json = { version = "1.0.138", package = "serde_json", optional = true } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = ["async-error"] } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", 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.44", optional = true } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.45", optional = true } proptest = { version = "1.6.0", optional = true } proptest-derive = { version = "0.5.1", optional = true } @@ -112,5 +112,5 @@ jubjub = "0.10.0" tokio = { version = "1.43.0", features = ["full", "tracing", "test-util"] } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = ["proptest-impl"] } -zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.44" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", features = ["proptest-impl"] } +zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.45" } diff --git a/zebra-test/Cargo.toml b/zebra-test/Cargo.toml index b23711733c6..0dd3cabfde1 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" 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 49b1db4c65b..db200ac3b3d 100644 --- a/zebra-utils/Cargo.toml +++ b/zebra-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-utils" -version = "1.0.0-beta.44" +version = "1.0.0-beta.45" authors = ["Zcash Foundation "] description = "Developer tools for Zebra maintenance and testing" license = "MIT OR Apache-2.0" @@ -94,11 +94,11 @@ tracing-error = "0.2.1" tracing-subscriber = "0.3.19" thiserror = "2.0.11" -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.44" } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.45" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45" } # These crates are needed for the block-template-to-proposal binary -zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.44", optional = true } +zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.45", optional = true } # These crates are needed for the zebra-checkpoints binary itertools = { version = "0.14.0", optional = true } diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index 63e3372c1a5..cb90e522237 100644 --- a/zebrad/Cargo.toml +++ b/zebrad/Cargo.toml @@ -1,7 +1,7 @@ [package] # Crate metadata name = "zebrad" -version = "2.1.1" +version = "2.2.0" authors = ["Zcash Foundation "] description = "The Zcash Foundation's independent, consensus-compatible implementation of a Zcash node" license = "MIT OR Apache-2.0" @@ -159,15 +159,15 @@ test_sync_past_mandatory_checkpoint_mainnet = [] test_sync_past_mandatory_checkpoint_testnet = [] [dependencies] -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44" } -zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.44" } -zebra-network = { path = "../zebra-network", version = "1.0.0-beta.44" } -zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.44", features = ["rpc-client"] } -zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.44" } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44" } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45" } +zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.45" } +zebra-network = { path = "../zebra-network", version = "1.0.0-beta.45" } +zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.45", features = ["rpc-client"] } +zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.45" } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45" } # Required for crates.io publishing, but it's only used in tests -zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.44", optional = true } +zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.45", optional = true } abscissa_core = "0.7.0" clap = { version = "4.5.27", features = ["cargo"] } @@ -281,13 +281,13 @@ proptest-derive = "0.5.1" # enable span traces and track caller in tests color-eyre = { version = "0.6.3" } -zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.44", features = ["proptest-impl"] } -zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.44", features = ["proptest-impl"] } -zebra-network = { path = "../zebra-network", version = "1.0.0-beta.44", features = ["proptest-impl"] } -zebra-state = { path = "../zebra-state", version = "1.0.0-beta.44", features = ["proptest-impl"] } +zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.45", features = ["proptest-impl"] } +zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.45", features = ["proptest-impl"] } +zebra-network = { path = "../zebra-network", version = "1.0.0-beta.45", features = ["proptest-impl"] } +zebra-state = { path = "../zebra-state", version = "1.0.0-beta.45", features = ["proptest-impl"] } -zebra-test = { path = "../zebra-test", version = "1.0.0-beta.44" } -zebra-grpc = { path = "../zebra-grpc", version = "0.1.0-alpha.11" } +zebra-test = { path = "../zebra-test", version = "1.0.0-beta.45" } +zebra-grpc = { path = "../zebra-grpc", version = "0.1.0-alpha.12" } # Used by the checkpoint generation tests via the zebra-checkpoints feature # (the binaries in this crate won't be built unless their features are enabled). @@ -298,7 +298,7 @@ zebra-grpc = { path = "../zebra-grpc", version = "0.1.0-alpha.11" } # When `-Z bindeps` is stabilised, enable this binary dependency instead: # https://github.com/rust-lang/cargo/issues/9096 # zebra-utils { path = "../zebra-utils", artifact = "bin:zebra-checkpoints" } -zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.44" } +zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.45" } [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] } From d0196696e1c08d9358d6074dc1a13a63ef143ff6 Mon Sep 17 00:00:00 2001 From: Alfredo Garcia Date: Mon, 3 Feb 2025 08:12:30 -0300 Subject: [PATCH 3/5] update end of support --- 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 284c266fb6c..9fa98425531 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_742_000; +pub const ESTIMATED_RELEASE_HEIGHT: u32 = 2_809_400; /// The maximum number of days after `ESTIMATED_RELEASE_HEIGHT` where a Zebra server will run /// without halting. From 9ab07a27f785d53f756c9832185b913355db025b Mon Sep 17 00:00:00 2001 From: Alfredo Garcia Date: Mon, 3 Feb 2025 18:06:59 -0300 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Arya --- CHANGELOG.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34a401e34e6..75030e0bc08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,23 +12,22 @@ In this release, Zebra fixed a consensus bug in the branch ID of Nu6 transaction ### Added - An index to track spending transaction ids by spent outpoints and revealed nullifiers ([#8895](https://github.com/ZcashFoundation/zebra/pull/8895)) -- Public getter / setter functions to Zebra-RPC::methods.rs ([#9113](https://github.com/ZcashFoundation/zebra/pull/9113)) +- Accessor methods to `zebra-rpc` request/response types ([#9113](https://github.com/ZcashFoundation/zebra/pull/9113)) - `getblock` RPC method now can return transaction details with verbosity=2 ([#9083](https://github.com/ZcashFoundation/zebra/pull/9083)) -- A missing serialized NU5 blocks to test vectors ([#9098](https://github.com/ZcashFoundation/zebra/pull/9098)) +- Serialized NU5 blocks to test vectors ([#9098](https://github.com/ZcashFoundation/zebra/pull/9098)) ### Changed - Migrated from deprecated `jsonrpc_*` crates to `jsonrpsee` ([#9059](https://github.com/ZcashFoundation/zebra/pull/9059), [#9151](https://github.com/ZcashFoundation/zebra/pull/9151)) - Optimized checks for coinbase transactions ([#9126](https://github.com/ZcashFoundation/zebra/pull/9126)) -- Avoid re-verifying transactions in blocks if those transactions are in the mempool ([#8951](https://github.com/ZcashFoundation/zebra/pull/8951)) +- Avoid re-verifying transactions in blocks if those transactions are in the mempool ([#8951](https://github.com/ZcashFoundation/zebra/pull/8951), [#9118](https://github.com/ZcashFoundation/zebra/pull/9118)) - Allow transactions spending coinbase outputs to have transparent outputs on Regtest ([#9085](https://github.com/ZcashFoundation/zebra/pull/9085)) ### Fixed - Respond to getblockchaininfo with genesis block when empty state ([#9138](https://github.com/ZcashFoundation/zebra/pull/9138)) -- Avoid a concurrency bug when verifying transactions in blocks that are already present in the mempool ([#9118](https://github.com/ZcashFoundation/zebra/pull/9118)) - Verify consensus branch ID in SIGHASH precomputation ([#9139](https://github.com/ZcashFoundation/zebra/pull/9139)) -- Refactor `getrawtransaction` and RPC error handling ([#9049](https://github.com/ZcashFoundation/zebra/pull/9049)) +- More closely match zcashd RPC errors and `getrawtransaction` RPC behaviour ([#9049](https://github.com/ZcashFoundation/zebra/pull/9049)) - Fixes bugs in the lightwalletd integration tests ([#9052](https://github.com/ZcashFoundation/zebra/pull/9052)) ### Contributors From 715b8c891da20aebec91d2ed2c84933cf2741af4 Mon Sep 17 00:00:00 2001 From: Alfredo Garcia Date: Tue, 4 Feb 2025 11:29:36 -0300 Subject: [PATCH 5/5] Update CHANGELOG.md Co-authored-by: Conrado Gouvea --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75030e0bc08..43c189f398b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org). ## [Zebra 2.2.0](https://github.com/ZcashFoundation/zebra/releases/tag/v2.2.0) - 2025-02-03 -In this release, Zebra fixed a consensus bug in the branch ID of Nu6 transactions, along with important refactors and improvements. +In this release, Zebra introduced an additional consensus check on the branch ID of Nu6 transactions +(which is currently also checked elsewhere; but we believe it's important to check on its own to protect +against future code changes), along with important refactors and improvements. ### Added