Skip to content

Release 2.4.0 #9674

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

Merged
merged 16 commits into from
Jul 11, 2025
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE/release-checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,6 @@ Choose a release level for `zebrad`. Release levels are based on user-visible ch
- significant new features or behaviour changes; changes to RPCs, command-line, or configs; and deprecations or removals are `minor` releases
- otherwise, it is a `patch` release

Zebra's Rust API doesn't have any support or stability guarantees, so we keep all the `zebra-*` and `tower-*` crates on a beta `pre-release` version.

### Update Crate Versions

If you're publishing crates for the first time, [log in to crates.io](https://zebra.zfnd.org/dev/crate-owners.html#logging-in-to-cratesio),
Expand Down
69 changes: 64 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,66 @@

### Breaking Changes

- The `debug_like_zcashd` config option for mining is no longer available.
This release has the following breaking changes:
- *TODO*: Check the `Removed` and `Deprecated` sections for any breaking changes
- *TODO*: Add a short description of the user impact of each breaking change, and any actions users need to take

- This release contains a major database upgrade. It will upgrade an existing
database, automatically moving it from the `v26/` folder to a new `v27/`
folder. However, downgrading is not possible. If you want to keep the
possibility of reverting Zebra in case of an unexpected issue, backup the
`v26/` folder _before_ running the upgraded Zebra. Note that the upgrade takes
around 4~6 hours to complete depending on the machine capabilites. Zebra will

Check failure on line 21 in CHANGELOG.md

View workflow job for this annotation

GitHub Actions / codespell

capabilites ==> capabilities
operate normally during that time; the only difference is that some RPC
responses might return empty or not accurate data (pool values for arbitrary
block heights and received balances for addresses).
- The `debug_like_zcashd` config option for mining is no longer available. It
was not enabled by default; if it is now present in the config file, Zebra
will panic. Simply delete the config option to fix.


### Security

- fix: Pad script in V5 coinbase ([#9620](https://github.com/ZcashFoundation/zebra/pull/9620))

### Added

- Transaction and block deserialization ([#9522](https://github.com/ZcashFoundation/zebra/pull/9522))
- tests(wallet): Add initial framework to test zallet RPC methods ([#9554](https://github.com/ZcashFoundation/zebra/pull/9554))
- change(rpc): Update `getaddressbalance` RPC to return `received` field ([#9295](https://github.com/ZcashFoundation/zebra/pull/9295))
- add(rpc): Add a `mempool_change()` RPC method for listening to changes in the mempool ([#9494](https://github.com/ZcashFoundation/zebra/pull/9494))
- Add `raw_value` feature to serde\_json ([#9538](https://github.com/ZcashFoundation/zebra/pull/9538))
- feat(config): Modify config to use IPv6 listen\_addr by default ([#9609](https://github.com/ZcashFoundation/zebra/pull/9609))
- feat(rpc): Add `invalidateblock` and `reconsiderblock` RPC methods ([#9551](https://github.com/ZcashFoundation/zebra/pull/9551))
- feat(rpc): Update `(z_)validateaddress` to validate TEX addresses ([#9483](https://github.com/ZcashFoundation/zebra/pull/9483))
- feat(rpc): `addnode` method ([#9604](https://github.com/ZcashFoundation/zebra/pull/9604))
- feat(rpc): add missing fields to getrawtransaction ([#9636](https://github.com/ZcashFoundation/zebra/pull/9636))
- feat(rpc): add value pools to getblock ([#9432](https://github.com/ZcashFoundation/zebra/pull/9432))
- add: Support configuring shielded addresses for mining ([#9574](https://github.com/ZcashFoundation/zebra/pull/9574))

### Changed

- rpc: API cleanup ([#9568](https://github.com/ZcashFoundation/zebra/pull/9568))
- change(state): Upgrade db format to support new fields in RPC outputs ([#9539](https://github.com/ZcashFoundation/zebra/pull/9539))
- change(rpc): Move GBT RPCs into the main RPC server ([#9459](https://github.com/ZcashFoundation/zebra/pull/9459))
- change(consensus): Adds a `Nu6_1` variant to `NetworkUpgrade` ([#9526](https://github.com/ZcashFoundation/zebra/pull/9526))
- Use zcash\_script’s new `Script` trait ([#8751](https://github.com/ZcashFoundation/zebra/pull/8751))
- Remove `debug_like_zcashd` config option ([#9627](https://github.com/ZcashFoundation/zebra/pull/9627))

### Fixed

- fix(consensus): reuse sighasher when validating txs ([#9594](https://github.com/ZcashFoundation/zebra/pull/9594))
- zebra-rpc: Correctly set optional `scriptPubKey` fields of transactions ([#9536](https://github.com/ZcashFoundation/zebra/pull/9536))
- fix(network): Allow local outbound connections on Regtest ([#9580](https://github.com/ZcashFoundation/zebra/pull/9580))
- fix(rpc): `z_gettreestate` optional fields ([#9451](https://github.com/ZcashFoundation/zebra/pull/9451))
- fix: Pad script in V5 coinbase ([#9620](https://github.com/ZcashFoundation/zebra/pull/9620))


### Contributors

Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@ala-mode, @arya2, @conradoplg, @dependabot[bot], @elijahhampton, @gustavovalverde, @idky137, @mpguerra, @oxarbitrage, @sellout, @str4d and @upbqdn


## [Zebra 2.3.0](https://github.com/ZcashFoundation/zebra/releases/tag/v2.3.0) - 2025-05-06

Expand Down Expand Up @@ -41,7 +100,7 @@
- Use read-only db instance when running `tip-height` or `copy-state` commands ([#9359](https://github.com/ZcashFoundation/zebra/pull/9359))
- Refactor format upgrades into trait ([#9263](https://github.com/ZcashFoundation/zebra/pull/9263))
- Remove the `getblocktemplate-rpcs` Cargo feature ([#9401](https://github.com/ZcashFoundation/zebra/pull/9401))
- Improve cache dir and database startup panics ([#9441](https://github.com/ZcashFoundation/zebra/pull/9441))
- Improve cache dir and database startup panics ([#9441](https://github.com/ZcashFoundation/zebra/pull/9441))
- Added `txid` field to `TransactionObject` ([#9617](https://github.com/ZcashFoundation/zebra/issues/9617))
### Fixed

Expand All @@ -53,7 +112,7 @@

### RPCs

- Add `time` and `size` fields to `TransactionObject` ([#9458](https://github.com/ZcashFoundation/zebra/pull/9458))
- Add `time` and `size` fields to `TransactionObject` ([#9458](https://github.com/ZcashFoundation/zebra/pull/9458))
- Add inbound peers to `getpeerinfo` response ([#9214](https://github.com/ZcashFoundation/zebra/pull/9214))
- Extend `getinfo` ([#9261](https://github.com/ZcashFoundation/zebra/pull/9261))
- Add fields to `getblockchaininfo` RPC output ([#9215](https://github.com/ZcashFoundation/zebra/pull/9215))
Expand Down Expand Up @@ -124,10 +183,10 @@

## [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;
This release adds a check to verify that V5 transactions in the mempool have the correct consensus branch ID;
Zebra would previously accept those and return a transaction ID (indicating success) even though they would
be eventually rejected by the block consensus checks. Similarly, Zebra also now returns an error when trying
to submit transactions that would eventually fail some consensus checks (e.g. double spends) but would also
to submit transactions that would eventually fail some consensus checks (e.g. double spends) but would also
return a transaction ID indicating success. The release also bumps
Zebra's initial minimum protocol version such that this release of Zebra will always reject connections with peers advertising
a network protocol version below 170,120 on Mainnet and 170,110 on Testnet instead of accepting those connections until Zebra's
Expand Down
24 changes: 12 additions & 12 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5143,7 +5143,7 @@ dependencies = [

[[package]]
name = "tower-batch-control"
version = "0.2.41-beta.22"
version = "0.2.41"
dependencies = [
"color-eyre",
"ed25519-zebra",
Expand All @@ -5166,7 +5166,7 @@ dependencies = [

[[package]]
name = "tower-fallback"
version = "0.2.41-beta.22"
version = "0.2.41"
dependencies = [
"futures-core",
"pin-project",
Expand Down Expand Up @@ -6361,7 +6361,7 @@ dependencies = [

[[package]]
name = "zebra-chain"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"bech32",
"bitflags 2.9.1",
Expand Down Expand Up @@ -6428,7 +6428,7 @@ dependencies = [

[[package]]
name = "zebra-consensus"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"bellman",
"blake2b_simd",
Expand Down Expand Up @@ -6474,7 +6474,7 @@ dependencies = [

[[package]]
name = "zebra-grpc"
version = "0.1.0-alpha.13"
version = "0.1.0"
dependencies = [
"color-eyre",
"futures-util",
Expand All @@ -6496,7 +6496,7 @@ dependencies = [

[[package]]
name = "zebra-network"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"bitflags 2.9.1",
"byteorder",
Expand Down Expand Up @@ -6537,7 +6537,7 @@ dependencies = [

[[package]]
name = "zebra-node-services"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"color-eyre",
"jsonrpsee-types",
Expand All @@ -6550,7 +6550,7 @@ dependencies = [

[[package]]
name = "zebra-rpc"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"base64 0.22.1",
"chrono",
Expand Down Expand Up @@ -6646,7 +6646,7 @@ dependencies = [

[[package]]
name = "zebra-script"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"hex",
"lazy_static",
Expand All @@ -6658,7 +6658,7 @@ dependencies = [

[[package]]
name = "zebra-state"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"bincode",
"chrono",
Expand Down Expand Up @@ -6704,7 +6704,7 @@ dependencies = [

[[package]]
name = "zebra-test"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"color-eyre",
"futures",
Expand Down Expand Up @@ -6732,7 +6732,7 @@ dependencies = [

[[package]]
name = "zebra-utils"
version = "1.0.0-beta.46"
version = "1.0.0"
dependencies = [
"color-eyre",
"hex",
Expand Down
11 changes: 11 additions & 0 deletions tower-batch-control/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Changelog

All notable changes to this project will be 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/spec/v2.0.0.html).

## [0.2.41] - 2025-06-XX

First "stable" release. However, be advised that the API may still greatly
change so major version bumps can be common.
6 changes: 3 additions & 3 deletions tower-batch-control/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tower-batch-control"
version = "0.2.41-beta.22"
version = "0.2.41"
authors = ["Zcash Foundation <[email protected]>", "Tower Maintainers <[email protected]>"]
description = "Tower middleware for batch request processing"
# # Legal
Expand Down Expand Up @@ -43,10 +43,10 @@ rand = { workspace = true }

tokio = { workspace = true, features = ["full", "tracing", "test-util"] }
tokio-test = { workspace = true }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.22" }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41" }
tower-test = { workspace = true }

zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.46" }
zebra-test = { path = "../zebra-test/", version = "1.0.0" }

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] }
11 changes: 11 additions & 0 deletions tower-fallback/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Changelog

All notable changes to this project will be 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/spec/v2.0.0.html).

## [0.2.41] - 2025-06-XX

First "stable" release. However, be advised that the API may still greatly
change so major version bumps can be common.
4 changes: 2 additions & 2 deletions tower-fallback/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "tower-fallback"
version = "0.2.41-beta.22"
version = "0.2.41"
authors = ["Zcash Foundation <[email protected]>"]
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"
Expand All @@ -24,4 +24,4 @@ tracing = { workspace = true }
[dev-dependencies]
tokio = { workspace = true, features = ["full", "tracing", "test-util"] }

zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.46" }
zebra-test = { path = "../zebra-test/", version = "1.0.0" }
11 changes: 11 additions & 0 deletions zebra-chain/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Changelog

All notable changes to this project will be 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/spec/v2.0.0.html).

## [1.0.0] - 2025-06-XX

First "stable" release. However, be advised that the API may still greatly
change so major version bumps can be common.
6 changes: 3 additions & 3 deletions zebra-chain/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "zebra-chain"
version = "1.0.0-beta.46"
version = "1.0.0"
authors = ["Zcash Foundation <[email protected]>"]
description = "Core Zcash data structures"
license = "MIT OR Apache-2.0"
Expand Down Expand Up @@ -139,7 +139,7 @@ proptest-derive = { workspace = true, optional = true }
rand = { workspace = true, optional = true }
rand_chacha = { workspace = true, optional = true }

zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.46", optional = true }
zebra-test = { path = "../zebra-test/", version = "1.0.0", optional = true }

[dev-dependencies]
# Benchmarks
Expand All @@ -162,7 +162,7 @@ rand_chacha = { workspace = true }

tokio = { workspace = true, features = ["full", "tracing", "test-util"] }

zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.46" }
zebra-test = { path = "../zebra-test/", version = "1.0.0" }

[[bench]]
name = "block"
Expand Down
11 changes: 11 additions & 0 deletions zebra-consensus/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Changelog

All notable changes to this project will be 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/spec/v2.0.0.html).

## [1.0.0] - 2025-06-XX

First "stable" release. However, be advised that the API may still greatly
change so major version bumps can be common.
20 changes: 10 additions & 10 deletions zebra-consensus/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "zebra-consensus"
version = "1.0.0-beta.46"
version = "1.0.0"
authors = ["Zcash Foundation <[email protected]>"]
description = "Implementation of Zcash consensus checks"
license = "MIT OR Apache-2.0"
Expand Down Expand Up @@ -58,13 +58,13 @@ orchard.workspace = true
zcash_proofs = { workspace = true, features = ["multicore" ] }
wagyu-zcash-parameters = { workspace = true }

tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.22" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.22" }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41" }

zebra-script = { path = "../zebra-script", version = "1.0.0-beta.46" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.46" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.46" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.46" }
zebra-script = { path = "../zebra-script", version = "1.0.0" }
zebra-state = { path = "../zebra-state", version = "1.0.0" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0" }

# prod feature progress-bar
howudoin = { workspace = true, optional = true }
Expand All @@ -89,6 +89,6 @@ tokio = { workspace = true, features = ["full", "tracing", "test-util"] }
tracing-error = { workspace = true }
tracing-subscriber = { workspace = true }

zebra-state = { path = "../zebra-state", version = "1.0.0-beta.46", features = ["proptest-impl"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.46", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.46" }
zebra-state = { path = "../zebra-state", version = "1.0.0", features = ["proptest-impl"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test/", version = "1.0.0" }
11 changes: 11 additions & 0 deletions zebra-grpc/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Changelog

All notable changes to this project will be 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/spec/v2.0.0.html).

## [0.1.0] - 2025-06-XX

First "stable" release. However, be advised that the API may still greatly
change so major version bumps can be common.
6 changes: 3 additions & 3 deletions zebra-grpc/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "zebra-grpc"
version = "0.1.0-alpha.13"
version = "0.1.0"
authors = ["Zcash Foundation <[email protected]>"]
description = "Zebra gRPC interface"
license = "MIT OR Apache-2.0"
Expand Down Expand Up @@ -28,8 +28,8 @@ color-eyre = { workspace = true }

zcash_primitives.workspace = true

zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.46", features = ["shielded-scan"] }
zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.46" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0", features = ["shielded-scan"] }
zebra-chain = { path = "../zebra-chain" , version = "1.0.0" }

[build-dependencies]
tonic-build = { workspace = true }
Expand Down
Loading
Loading