Skip to content
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

merge queue: embarking main (adde5c9) and #8734 together #8814

Closed
wants to merge 11 commits into from
53 changes: 53 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.9.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.9.0) - 2024-08-02

This release includes deployment of NU6 on Testnet, configurable funding streams on custom Testnets, and updates Zebra's end-of-support (EoS)
from 16 weeks to 10 weeks so that it will panic before the expected activation height of NU6 on Mainnet.

It also replaces the `shielded-scan` compilation feature with a new `zebra-scanner` binary, adds a `TrustedChainSync` module
for replicating Zebra's best chain state, and a gRPC server in `zebra-rpc` as steps towards zcashd deprecation.

#### Recovering after finalizing a block from a chain fork

Zebra doesn't enforce an end-of-support height on Testnet, and previous versions of Zebra could mine or follow a chain fork that does not
activate NU6 on Testnet at height 2976000. Once a block from a fork is finalized in Zebra's state cache, updating to a version of Zebra that
does expect NU6 activation at that height will result in Zebra getting stuck, as it cannot rollback its finalized state. This can be resolved
by syncing Zebra from scratch, or by using the `copy-state` command to create a new state cache up to height 2975999. To use the `copy-state`
command, first make a copy Zebra's Testnet configuration with a different cache directory path, for example, if Zebra's configuration is at the
default path, by running `cp ~/.config/zebrad.toml ./zebrad-copy-target.toml`, then opening the new configuration file and editing the
`cache_dir` path in the `state` section. Once there's a copy of Zebra's configuration with the new state cache directory path, run:
`zebrad copy-state --target-config-path "./zebrad-copy-target.toml" --max-source-height "2975999"`, and then update the original
Zebra configuration to use the new state cache directory.

### Added

- A `zebra-scanner` binary replacing the `shielded-scan` compilation feature in `zebrad` ([#8608](https://github.com/ZcashFoundation/zebra/pull/8608))
- Adds a `TrustedChainSync` module for keeping up with Zebra's non-finalized best chain from a separate process ([#8596](https://github.com/ZcashFoundation/zebra/pull/8596))
- Add a tonic server in zebra-rpc with a `chain_tip_change()` method that notifies clients when Zebra's best chain tip changes ([#8674](https://github.com/ZcashFoundation/zebra/pull/8674))
- NU6 network upgrade variant, minimum protocol version, and Testnet activation height ([#8693](https://github.com/ZcashFoundation/zebra/pull/8693), [8733](https://github.com/ZcashFoundation/zebra/pull/8733), [#8804](https://github.com/ZcashFoundation/zebra/pull/8804))
- Configurable NU6 activation height on Regtest ([#8700](https://github.com/ZcashFoundation/zebra/pull/8700))
- Configurable Testnet funding streams ([#8718](https://github.com/ZcashFoundation/zebra/pull/8718))
- Post-NU6 funding streams, including a lockbox funding stream ([#8694](https://github.com/ZcashFoundation/zebra/pull/8694))
- Add value pool balances to `getblockchaininfo` RPC method response ([#8769](https://github.com/ZcashFoundation/zebra/pull/8769))
- Add NU6 lockbox funding stream information to `getblocksubsidy` RPC method response ([#8742](https://github.com/ZcashFoundation/zebra/pull/8742))

### Changed

- Reduce the end-of-support halt time from 16 weeks to 10 weeks ([#8734](https://github.com/ZcashFoundation/zebra/pull/8734))
- Bump the current protocol version from 170100 to 170110 ([#8804](https://github.com/ZcashFoundation/zebra/pull/8804))
- Track the balance of the deferred chain value pool ([#8732](https://github.com/ZcashFoundation/zebra/pull/8732), [#8729](https://github.com/ZcashFoundation/zebra/pull/8729))
- Require that coinbase transactions balance exactly after NU6 activation ([#8727](https://github.com/ZcashFoundation/zebra/pull/8727))
- Support in-place disk format upgrades for major database version bumps ([#8748](https://github.com/ZcashFoundation/zebra/pull/8748))

### Fixed

- Return full network upgrade activation list in `getblockchaininfo` method ([#8699](https://github.com/ZcashFoundation/zebra/pull/8699))
- Update documentation for the new `zebra-scanner` binary ([#8675](https://github.com/ZcashFoundation/zebra/pull/8675))
- Update documentation for using Zebra with lightwalletd ([#8714](https://github.com/ZcashFoundation/zebra/pull/8714))
- Reduce debug output for Network on Regtest and default Testnet ([#8760](https://github.com/ZcashFoundation/zebra/pull/8760))

### Contributors

Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@arya2, @conradoplg, @dependabot[bot], @oxarbitrage, @therealyingtong and @upbqdn


## [Zebra 1.8.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.8.0) - 2024-07-02

- Zebra now uses a default unpaid actions limit of 0, dropping transactions with
Expand Down
28 changes: 14 additions & 14 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4708,7 +4708,7 @@ dependencies = [

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

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

[[package]]
name = "zebra-chain"
version = "1.0.0-beta.38"
version = "1.0.0-beta.39"
dependencies = [
"bitflags 2.6.0",
"bitflags-serde-legacy",
Expand Down Expand Up @@ -6014,7 +6014,7 @@ dependencies = [

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

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

[[package]]
name = "zebra-network"
version = "1.0.0-beta.38"
version = "1.0.0-beta.39"
dependencies = [
"bitflags 2.6.0",
"byteorder",
Expand Down Expand Up @@ -6123,7 +6123,7 @@ dependencies = [

[[package]]
name = "zebra-node-services"
version = "1.0.0-beta.38"
version = "1.0.0-beta.39"
dependencies = [
"color-eyre",
"jsonrpc-core",
Expand All @@ -6136,7 +6136,7 @@ dependencies = [

[[package]]
name = "zebra-rpc"
version = "1.0.0-beta.38"
version = "1.0.0-beta.39"
dependencies = [
"chrono",
"futures",
Expand Down Expand Up @@ -6172,7 +6172,7 @@ dependencies = [

[[package]]
name = "zebra-scan"
version = "0.1.0-alpha.7"
version = "0.1.0-alpha.8"
dependencies = [
"bls12_381",
"chrono",
Expand Down Expand Up @@ -6218,7 +6218,7 @@ dependencies = [

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

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

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

[[package]]
name = "zebra-utils"
version = "1.0.0-beta.38"
version = "1.0.0-beta.39"
dependencies = [
"color-eyre",
"hex",
Expand Down Expand Up @@ -6334,7 +6334,7 @@ dependencies = [

[[package]]
name = "zebrad"
version = "1.8.0"
version = "1.9.0"
dependencies = [
"abscissa_core",
"atty",
Expand Down
2 changes: 1 addition & 1 deletion book/src/user/docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ docker run -d --platform linux/amd64 \
### Build it locally

```shell
git clone --depth 1 --branch v1.8.0 https://github.com/ZcashFoundation/zebra.git
git clone --depth 1 --branch v1.9.0 https://github.com/ZcashFoundation/zebra.git
docker build --file docker/Dockerfile --target runtime --tag zebra:local .
docker run --detach zebra:local
```
Expand Down
4 changes: 2 additions & 2 deletions book/src/user/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 v1.8.0
git checkout v1.9.0
```

3. Build and Run `zebrad`
Expand All @@ -89,7 +89,7 @@ target/release/zebrad start
### Compiling from git using cargo install

```sh
cargo install --git https://github.com/ZcashFoundation/zebra --tag v1.8.0 zebrad
cargo install --git https://github.com/ZcashFoundation/zebra --tag v1.9.0 zebrad
```

### Compiling on ARM
Expand Down
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.14"
version = "0.2.41-beta.15"
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 = "0.8.5"

tokio = { version = "1.39.2", features = ["full", "tracing", "test-util"] }
tokio-test = "0.4.4"
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.14" }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.15" }
tower-test = "0.4.0"

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

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] }
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.14"
version = "0.2.41-beta.15"
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 = "0.1.39"
[dev-dependencies]
tokio = { version = "1.39.2", features = ["full", "tracing", "test-util"] }

zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.38" }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.39" }
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.38"
version = "1.0.0-beta.39"
authors = ["Zcash Foundation <[email protected]>"]
description = "Core Zcash data structures"
license = "MIT OR Apache-2.0"
Expand Down Expand Up @@ -143,7 +143,7 @@ proptest-derive = { version = "0.5.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.38", optional = true }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.39", optional = true }

[dev-dependencies]
# Benchmarks
Expand All @@ -166,7 +166,7 @@ rand_chacha = "0.3.1"

tokio = { version = "1.39.2", features = ["full", "tracing", "test-util"] }

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

[[bench]]
name = "block"
Expand Down
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.38"
version = "1.0.0-beta.39"
authors = ["Zcash Foundation <[email protected]>"]
description = "Implementation of Zcash consensus checks"
license = "MIT OR Apache-2.0"
Expand Down Expand Up @@ -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.14" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.14" }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.15" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.15" }

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

# prod feature progress-bar
howudoin = { version = "0.1.2", optional = true }
Expand All @@ -94,6 +94,6 @@ tokio = { version = "1.39.2", features = ["full", "tracing", "test-util"] }
tracing-error = "0.2.0"
tracing-subscriber = "0.3.18"

zebra-state = { path = "../zebra-state", version = "1.0.0-beta.38", features = ["proptest-impl"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.38", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.38" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.39", features = ["proptest-impl"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.39", features = ["proptest-impl"] }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.39" }
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.5"
version = "0.1.0-alpha.6"
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 = "0.6.3"

zcash_primitives.workspace = true

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

[build-dependencies]
tonic-build = "0.12.1"
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 = "1.0.0-beta.38"
version = "1.0.0-beta.39"
authors = ["Zcash Foundation <[email protected]>", "Tower Maintainers <[email protected]>"]
description = "Networking code for Zebra"
# # Legal
Expand Down Expand Up @@ -83,7 +83,7 @@ howudoin = { version = "0.1.2", optional = true }
proptest = { version = "1.4.0", optional = true }
proptest-derive = { version = "0.5.0", optional = true }

zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.38", features = ["async-error"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.39", features = ["async-error"] }

[dev-dependencies]
proptest = "1.4.0"
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 = "1.0.0-beta.38"
version = "1.0.0-beta.39"
authors = ["Zcash Foundation <[email protected]>"]
description = "The interfaces of some Zebra node services"
license = "MIT OR Apache-2.0"
Expand Down Expand Up @@ -37,7 +37,7 @@ rpc-client = [
shielded-scan = ["tokio"]

[dependencies]
zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.38" }
zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.39" }

# Optional dependencies

Expand Down
Loading
Loading