Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
37 changes: 34 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org).

## [Unreleased]

This release adds the `gettxout` RPC method.
## [Zebra 4.2.0](https://github.com/ZcashFoundation/zebra/releases/tag/v4.2.0) - 2026-03-12

This release expands Zebra’s RPC functionality, improves mempool policy,
adds more state querying capabilities, and replaces the legacy OpenAPI
documentation with OpenRPC.

### Added

- Added `UnspentOutput` to mempool component service ([#10235](https://github.com/ZcashFoundation/zebra/pull/10235))
- `UnspentOutput` request to mempool component service ([#10235](https://github.com/ZcashFoundation/zebra/pull/10235))
- Founders reward addresses ([#10188](https://github.com/ZcashFoundation/zebra/pull/10188))
- Support for pre-Canopy block subsidies ([#10191](https://github.com/ZcashFoundation/zebra/pull/10191))
- AI contribution policy and agent guidance files ([#10318](https://github.com/ZcashFoundation/zebra/pull/10318))
- `rpc.discover` endpoint ([#10201](https://github.com/ZcashFoundation/zebra/pull/10201))
- `gettxout` RPC method ([#10235](https://github.com/ZcashFoundation/zebra/pull/10235))
- `AnyChainBlock` state request for querying blocks in side chains ([#10325](https://github.com/ZcashFoundation/zebra/pull/10325))
- Remaining non-standard mempool transaction filters ([#10314](https://github.com/ZcashFoundation/zebra/pull/10314))

### Removed

- Removed the Python QA RPC test framework (`zebra-rpc/qa/`) in favour of the new [integration-tests](https://github.com/zcash/integration-tests) project, which captures all previous work in [zcash/integration-tests#1](https://github.com/zcash/integration-tests/pull/1) ([#10363](https://github.com/ZcashFoundation/zebra/pull/10363))
- Python QA RPC test framework (`zebra-rpc/qa/`) in favour of the new [integration-tests](https://github.com/zcash/integration-tests) project, which captures all previous work in [zcash/integration-tests#1](https://github.com/zcash/integration-tests/pull/1) ([#10363](https://github.com/ZcashFoundation/zebra/pull/10363))
- OpenAPI specification and related functionality ([#10298](https://github.com/ZcashFoundation/zebra/pull/10298)) in favour of [OpenRPC](https://github.com/ZcashFoundation/zebra/pull/10201)

### Changed

- Simplify `ReadStateService::call()` method ([#10335](https://github.com/ZcashFoundation/zebra/pull/10335))
- Replace `NETWORK_UPGRADES_IN_ORDER` with `strum::EnumIter` ([#10096](https://github.com/ZcashFoundation/zebra/pull/10096))

### Fixed

- Preserve input order in `spent_outputs` for mixed chain/mempool transactions ([#10356](https://github.com/ZcashFoundation/zebra/pull/10356))
- Clarify `TransparentInputNotFound` error message ([#10302](https://github.com/ZcashFoundation/zebra/pull/10302))
- Improve `getrawtransaction` compatibility with `zcashd` ([#10307](https://github.com/ZcashFoundation/zebra/pull/10307))
- Peerset banned cancel handles ([#10258](https://github.com/ZcashFoundation/zebra/pull/10258))
- Support writing non-finalized state backups to disk before broadcasting updated chainstate ([#10361](https://github.com/ZcashFoundation/zebra/pull/10361))
- Fix bug in `ActiveConnectionCounter` and inaccurate connection count metrics ([#10311](https://github.com/ZcashFoundation/zebra/pull/10311))

### Contributors

Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@VolodymyrBg, @arya2, @conradoplg, @gustavovalverde, @mpguerra, @oxarbitrage, @syszery, @upbqdn and @zmanian

## [Zebra 4.1.0](https://github.com/ZcashFoundation/zebra/releases/tag/v4.1.0) - 2026-02-05

Expand Down
20 changes: 10 additions & 10 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7253,7 +7253,7 @@ dependencies = [

[[package]]
name = "zebra-chain"
version = "5.0.0"
version = "6.0.0"
dependencies = [
"bech32",
"bitflags 2.11.0",
Expand Down Expand Up @@ -7323,7 +7323,7 @@ dependencies = [

[[package]]
name = "zebra-consensus"
version = "4.0.0"
version = "5.0.0"
dependencies = [
"bellman",
"blake2b_simd",
Expand Down Expand Up @@ -7370,7 +7370,7 @@ dependencies = [

[[package]]
name = "zebra-network"
version = "4.0.0"
version = "5.0.0"
dependencies = [
"bitflags 2.11.0",
"byteorder",
Expand Down Expand Up @@ -7412,7 +7412,7 @@ dependencies = [

[[package]]
name = "zebra-node-services"
version = "3.0.0"
version = "4.0.0"
dependencies = [
"color-eyre",
"jsonrpsee-types",
Expand All @@ -7426,7 +7426,7 @@ dependencies = [

[[package]]
name = "zebra-rpc"
version = "5.0.0"
version = "6.0.0"
dependencies = [
"base64 0.22.1",
"chrono",
Expand Down Expand Up @@ -7482,7 +7482,7 @@ dependencies = [

[[package]]
name = "zebra-script"
version = "4.0.0"
version = "5.0.0"
dependencies = [
"hex",
"lazy_static",
Expand All @@ -7496,7 +7496,7 @@ dependencies = [

[[package]]
name = "zebra-state"
version = "4.0.0"
version = "5.0.0"
dependencies = [
"bincode",
"chrono",
Expand Down Expand Up @@ -7545,7 +7545,7 @@ dependencies = [

[[package]]
name = "zebra-test"
version = "2.0.1"
version = "3.0.0"
dependencies = [
"color-eyre",
"futures",
Expand All @@ -7572,7 +7572,7 @@ dependencies = [

[[package]]
name = "zebra-utils"
version = "4.0.0"
version = "5.0.0"
dependencies = [
"color-eyre",
"hex",
Expand All @@ -7594,7 +7594,7 @@ dependencies = [

[[package]]
name = "zebrad"
version = "4.1.0"
version = "4.2.0"
dependencies = [
"abscissa_core",
"atty",
Expand Down
2 changes: 1 addition & 1 deletion tower-batch-control/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ tokio-test = { workspace = true }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41" }
tower-test = { workspace = true }

zebra-test = { path = "../zebra-test/", version = "2.0.1" }
zebra-test = { path = "../zebra-test/", version = "3.0.0" }

[lints]
workspace = true
2 changes: 1 addition & 1 deletion tower-fallback/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ tracing = { workspace = true }
[dev-dependencies]
tokio = { workspace = true, features = ["full", "tracing", "test-util"] }

zebra-test = { path = "../zebra-test/", version = "2.0.1" }
zebra-test = { path = "../zebra-test/", version = "3.0.0" }

[lints]
workspace = true
41 changes: 25 additions & 16 deletions zebra-chain/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added
## [6.0.0] - 2026-03-12

- `amount::Amount::is_zero`
- `parameters::network::subsidy::constants` module.
- `impl From<block::Height> for u64`
- `impl From<block::Height> for u32`
- `parameters::network::testnet::founder_address_list`
- `parameters::network::subsidy::founders_reward`
- `parameters::network::subsidy::founders_reward_address`
- `diagnostics::CodeTimer::{start_desc, finish_desc, finish_inner}`
### Breaking Changes

### Changed
- Removed `zebra_chain::diagnostic::CodeTimer::finish` — replaced by `finish_desc` and `finish_inner`
- Removed `SubsidyError::SumOverflow` variant — replaced by `SubsidyError::Overflow` and `SubsidyError::Underflow`
- Removed `zebra_chain::parameters::subsidy::num_halvings` — replaced by `halving`
- Removed `VerifiedUnminedTx::sigops` field — replaced by `legacy_sigop_count`
- Removed `transparent::Output::new_coinbase` — replaced by `Output::new`
- Changed `block_subsidy` parameter renamed from `network` to `net` (no behavioral change)
- Changed `VerifiedUnminedTx::new` — added required `spent_outputs: Arc<Vec<Output>>` parameter

### Added

- `parameters::network::subsidy::SubsidyError::` has new variants:
`FoundersRewardNotFound` and `Underflow`, and the variant `SumOverflow` was
renamed to `Overflow`.
- `parameters::network::subsidy::num_halvings` was renamed to `halving`.
- `transparent::Output::new_coinbase` was renamed to `new`.
- `NoteCommitmentSubtreeIndex` now derives `schemars::JsonSchema` (#10201)
- Added `Amount::is_zero(&self) -> bool`
- Added `From<Height> for u32` and `From<Height> for u64` conversions
- Added `CodeTimer::start_desc(description: &'static str) -> Self`
- Added `CodeTimer::finish_desc(self, description: &'static str)`
- Added `CodeTimer::finish_inner` with optional file/line and description
- Added `SubsidyError::FoundersRewardNotFound`, `SubsidyError::Overflow`, `SubsidyError::Underflow` variants
- Added `founders_reward(net, height) -> Amount` — returns the founders reward amount for a given height
- Added `founders_reward_address(net, height) -> Option<Address>` — returns the founders reward address for a given height
- Added `halving(height, network) -> u32` — replaces removed `num_halvings`
- Added `Network::founder_address_list(&self) -> &[&str]`
- Added `NetworkUpgradeIter` struct
- Added `VerifiedUnminedTx::legacy_sigop_count: u32` field
- Added `VerifiedUnminedTx::spent_outputs: Arc<Vec<Output>>` field
- Added `transparent::Output::new(amount, lock_script) -> Output` — replaces removed `new_coinbase`

## [5.0.0] - 2026-02-05

Expand Down
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 = "5.0.0"
version = "6.0.0"
authors.workspace = true
description = "Core Zcash data structures"
license.workspace = true
Expand Down Expand Up @@ -135,7 +135,7 @@ proptest-derive = { workspace = true, optional = true }
rand = { workspace = true, optional = true }
rand_chacha = { workspace = true, optional = true }

zebra-test = { path = "../zebra-test/", version = "2.0.1", optional = true }
zebra-test = { path = "../zebra-test/", version = "3.0.0", optional = true }
bounded-vec = { version = "0.9.0", features = ["serde"] }

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

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

zebra-test = { path = "../zebra-test/", version = "2.0.1" }
zebra-test = { path = "../zebra-test/", version = "3.0.0" }

[[bench]]
name = "block"
Expand Down
4 changes: 3 additions & 1 deletion zebra-consensus/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ 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).

## Unreleased
## [Unreleased]

## [5.0.0] - 2026-03-12

### Added

Expand Down
16 changes: 8 additions & 8 deletions zebra-consensus/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "zebra-consensus"
version = "4.0.0"
version = "5.0.0"
authors.workspace = true
description = "Implementation of Zcash consensus checks"
license.workspace = true
Expand Down Expand Up @@ -62,10 +62,10 @@ zcash_proofs = { workspace = true, features = ["multicore", "bundled-prover"] }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41" }
tower-batch-control = { path = "../tower-batch-control/", version = "1.0.1" }

zebra-script = { path = "../zebra-script", version = "4.0.0" }
zebra-state = { path = "../zebra-state", version = "4.0.0" }
zebra-node-services = { path = "../zebra-node-services", version = "3.0.0" }
zebra-chain = { path = "../zebra-chain", version = "5.0.0" }
zebra-script = { path = "../zebra-script", version = "5.0.0" }
zebra-state = { path = "../zebra-state", version = "5.0.0" }
zebra-node-services = { path = "../zebra-node-services", version = "4.0.0" }
zebra-chain = { path = "../zebra-chain", version = "6.0.0" }

zcash_protocol.workspace = true

Expand All @@ -89,9 +89,9 @@ tokio = { workspace = true, features = ["full", "tracing", "test-util"] }
tracing-error = { workspace = true }
tracing-subscriber = { workspace = true }

zebra-state = { path = "../zebra-state", version = "4.0.0", features = ["proptest-impl"] }
zebra-chain = { path = "../zebra-chain", version = "5.0.0", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test/", version = "2.0.1" }
zebra-state = { path = "../zebra-state", version = "5.0.0", features = ["proptest-impl"] }
zebra-chain = { path = "../zebra-chain", version = "6.0.0", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test/", version = "3.0.0" }

[lints]
workspace = true
10 changes: 8 additions & 2 deletions zebra-network/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed
## [5.0.0] - 2026-03-12

- `PeerSocketAddr` now derives `schemars::JsonSchema` (#10201)
### Breaking Changes

- `zebra-chain` dependency bumped to `6.0.0`.

### Added

- `PeerSocketAddr` now derives `schemars::JsonSchema`

## [4.0.0] - 2026-02-05

Expand Down
4 changes: 2 additions & 2 deletions zebra-network/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "zebra-network"
version = "4.0.0"
version = "5.0.0"
authors = ["Zcash Foundation <zebra@zfnd.org>", "Tower Maintainers <team@tower-rs.com>"]
description = "Networking code for Zebra"
# # Legal
Expand Down Expand Up @@ -85,7 +85,7 @@ howudoin = { workspace = true, optional = true }
proptest = { workspace = true, optional = true }
proptest-derive = { workspace = true, optional = true }

zebra-chain = { path = "../zebra-chain", version = "5.0.0", features = ["async-error"] }
zebra-chain = { path = "../zebra-chain", version = "6.0.0", features = ["async-error"] }

[dev-dependencies]
proptest = { workspace = true }
Expand Down
8 changes: 7 additions & 1 deletion zebra-node-services/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [4.0.0] - 2026-03-12

### Breaking Changes

- `zebra-chain` dependency bumped to `6.0.0`.

### Added

- Added `Request::UnspentOutput`, and `Response::TransparentOutput` and `CreatedOrSpent` to the mempool service ([#10235](https://github.com/ZcashFoundation/zebra/pull/10235)).
- Added `Request::UnspentOutput`, `Response::TransparentOutput` and `CreatedOrSpent` to the mempool service.

## [3.0.0] - 2026-02-05

Expand Down
4 changes: 2 additions & 2 deletions zebra-node-services/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "zebra-node-services"
version = "3.0.0"
version = "4.0.0"
authors.workspace = true
description = "The interfaces of some Zebra node services"
license.workspace = true
Expand Down Expand Up @@ -31,7 +31,7 @@ rpc-client = [
]

[dependencies]
zebra-chain = { path = "../zebra-chain" , version = "5.0.0" }
zebra-chain = { path = "../zebra-chain" , version = "6.0.0" }
tower = { workspace = true }

# Optional dependencies
Expand Down
15 changes: 13 additions & 2 deletions zebra-rpc/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [6.0.0] - 2026-03-12

### Breaking Changes

- `zebra-chain` bumped to `6.0.0`
- `zebra-script` bumped to `5.0.0`
- `zebra-state` bumped to `5.0.0`
- `zebra-node-services` bumped to `4.0.0`
- `zebra-consensus` bumped to `5.0.0`
- `zebra-network` bumped to `5.0.0`

### Removed

- Python QA RPC test framework folder.

### Added

- Added `get_tx_out` method and `OutputObject` response. ([#10235](https://github.com/ZcashFoundation/zebra/pull/10235))
- Added `get_tx_out` method and `OutputObject` response.
- OpenRPC support (#10201):
- `openrpsee` dependency
- Added `build_rpc_schema()` to generate a map of the node's supported RPC interface at build time
Expand All @@ -23,7 +34,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- `GetBlockTemplateRequestMode`, `GetBlockTemplateCapability`, `GetBlockTemplateParameters`, `LongPollId`,
`SubmitBlockParameters`, `GetAddressBalanceRequest`, `DGetAddressBalanceRequest`, `GetAddressUtxosRequest`,
`DGetAddressUtxosRequest`, `DGetAddressTxIdsRequest` and `AddNodeCommand` now derives `schemars::JsonSchema` (#10201)
`DGetAddressUtxosRequest`, `DGetAddressTxIdsRequest` and `AddNodeCommand` now derives `schemars::JsonSchema`

## [5.0.0] - 2026-02-05

Expand Down
Loading
Loading