Release Zebra 1.4.0 (#7911)

* Add a new known issue to the README

* Update the changelog

* Set release height around 8 November

* chore: Release
This commit is contained in:
teor 2023-11-06 22:51:41 +10:00 committed by GitHub
parent baa283c523
commit 477da1a774
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 105 additions and 61 deletions

View File

@ -5,11 +5,18 @@ 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.4.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.4.0) - TODO: DATE
## [Zebra 1.4.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.4.0) - 2023-11-07
Zebra's mining RPCs are now available in release builds. Our Docker images are significantly smaller,
because the smaller Zcash verification parameters are now built into the `zebrad` binary.
TODO: rest of intro
Zebra's mining RPCs are now available in release builds. Our Docker images are significantly
smaller, because the smaller Zcash verification parameters are now built into the `zebrad` binary.
Zebra has updated to the shared Rust dependencies from the `zcashd` 5.7.0 release.
Zebra recovers better from brief network interruptions, and avoids some network and verification
denial of service and performance issues. We have restored our macOS tests in CI, and now support
macOS on a best-effort basis.
We have changed our documentation website URL, and we are considering deprecating some Docker image
tags in release 1.5.0 and later.
### Deprecation Warnings
@ -87,9 +94,44 @@ so it can't be used to retry failed downloads in `zebrad` 1.3.0 and earlier.
We recommend upgrading to the latest Zebra release to avoid download issues in new installs.
#### macOS Support
macOS x86_64 is now supported on a best-effort basis. macOS builds and some tests run in Zebra's CI.
### Security
TODO: rest of changelog
- Reconnect with peers after brief network interruption ([#7853](https://github.com/ZcashFoundation/zebra/pull/7853))
- Add outer timeouts for critical network operations to avoid hangs ([#7869](https://github.com/ZcashFoundation/zebra/pull/7869))
- Set iterator read bounds where possible in DiskDb, to avoid a known RocksDB denial of service issue ([#7731](https://github.com/ZcashFoundation/zebra/pull/7731), [#7732](https://github.com/ZcashFoundation/zebra/pull/7732))
- Fix concurrency issues in tree key formats, and CPU usage in genesis tree roots ([#7392](https://github.com/ZcashFoundation/zebra/pull/7392))
### Removed
- Remove the `zebrad download` command, because it no longer does anything ([#7819](https://github.com/ZcashFoundation/zebra/pull/7819))
### Added
- Enable mining RPCs by default in production builds ([#7740](https://github.com/ZcashFoundation/zebra/pull/7740))
- Re-enable macOS builds and tests in CI ([#7834](https://github.com/ZcashFoundation/zebra/pull/7834))
- Make macOS x86_64 a tier 2 supported platform in the docs ([#7843](https://github.com/ZcashFoundation/zebra/pull/7843))
- Add macOS M1 as a tier 3 supported platform ([#7851](https://github.com/ZcashFoundation/zebra/pull/7851))
### Changed
- Build Sprout and Sapling parameters into the zebrad binary, so a download server isn't needed ([#7800](https://github.com/ZcashFoundation/zebra/pull/7800), [#7844](https://github.com/ZcashFoundation/zebra/pull/7844))
- Bump ECC dependencies for `zcashd` 5.7.0 ([#7784](https://github.com/ZcashFoundation/zebra/pull/7784))
- Refactor the installation instructions for the `s-nomp` mining pool software ([#7835](https://github.com/ZcashFoundation/zebra/pull/7835))
### Fixed
- Make the `latest` Docker tag point to the production build, rather than the build with experimental features ([#7817](https://github.com/ZcashFoundation/zebra/pull/7817))
- Fix an incorrect consensus-critical ZIP 212 comment ([#7774](https://github.com/ZcashFoundation/zebra/pull/7774))
- Fix broken links to `zebra_network` and `zebra_state` `Config` structs on doc-internal.zebra.zfnd.org ([#7838](https://github.com/ZcashFoundation/zebra/pull/7838))
### Contributors
Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@arya2, @gustavovalverde, @mpguerra, @oxarbitrage, @rex4539, @teor2345, @upbqdn, and @vuittont60.
## [Zebra 1.3.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.3.0) - 2023-10-16

View File

@ -4592,7 +4592,7 @@ dependencies = [
[[package]]
name = "tower-batch-control"
version = "0.2.41-beta.6"
version = "0.2.41-beta.7"
dependencies = [
"color-eyre",
"ed25519-zebra",
@ -4616,7 +4616,7 @@ dependencies = [
[[package]]
name = "tower-fallback"
version = "0.2.41-beta.6"
version = "0.2.41-beta.7"
dependencies = [
"futures-core",
"pin-project",
@ -5543,7 +5543,7 @@ dependencies = [
[[package]]
name = "zebra-chain"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"bitflags 2.4.1",
"bitflags-serde-legacy",
@ -5604,7 +5604,7 @@ dependencies = [
[[package]]
name = "zebra-consensus"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"bellman",
"blake2b_simd",
@ -5650,7 +5650,7 @@ dependencies = [
[[package]]
name = "zebra-network"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"bitflags 2.4.1",
"byteorder",
@ -5691,7 +5691,7 @@ dependencies = [
[[package]]
name = "zebra-node-services"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"color-eyre",
"jsonrpc-core",
@ -5703,7 +5703,7 @@ dependencies = [
[[package]]
name = "zebra-rpc"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"chrono",
"futures",
@ -5735,7 +5735,7 @@ dependencies = [
[[package]]
name = "zebra-script"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"displaydoc",
"hex",
@ -5748,7 +5748,7 @@ dependencies = [
[[package]]
name = "zebra-state"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"bincode",
"chrono",
@ -5792,7 +5792,7 @@ dependencies = [
[[package]]
name = "zebra-test"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"color-eyre",
"futures",
@ -5820,7 +5820,7 @@ dependencies = [
[[package]]
name = "zebra-utils"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
dependencies = [
"color-eyre",
"hex",
@ -5841,7 +5841,7 @@ dependencies = [
[[package]]
name = "zebrad"
version = "1.3.0"
version = "1.4.0"
dependencies = [
"abscissa_core",
"atty",

View File

@ -157,6 +157,8 @@ performance.
There are a few bugs in Zebra that we're still working on fixing:
- [The `getpeerinfo` RPC shows current and recent outbound connections](https://github.com/ZcashFoundation/zebra/issues/7893), rather than current inbound and outbound connections.
- [Progress bar estimates can become extremely large](https://github.com/console-rs/indicatif/issues/556). We're waiting on a fix in the progress bar library.
- Zebra currently gossips and connects to [private IP addresses](https://en.wikipedia.org/wiki/IP_address#Private_addresses), we want to [disable private IPs but provide a config (#3117)](https://github.com/ZcashFoundation/zebra/issues/3117) in an upcoming release

View File

@ -17,7 +17,7 @@ docker run --detach zfnd/zebra:latest
### Build it locally
```shell
git clone --depth 1 --branch v1.3.0 https://github.com/ZcashFoundation/zebra.git
git clone --depth 1 --branch v1.4.0 https://github.com/ZcashFoundation/zebra.git
docker build --file docker/Dockerfile --target runtime --tag zebra:local .
docker run --detach zebra:local
```

View File

@ -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.3.0
git checkout v1.4.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.3.0 zebrad
cargo install --git https://github.com/ZcashFoundation/zebra --tag v1.4.0 zebrad
```
### Compiling on ARM

View File

@ -1,6 +1,6 @@
[package]
name = "tower-batch-control"
version = "0.2.41-beta.6"
version = "0.2.41-beta.7"
authors = ["Zcash Foundation <zebra@zfnd.org>", "Tower Maintainers <team@tower-rs.com>"]
description = "Tower middleware for batch request processing"
# # Legal

View File

@ -1,6 +1,6 @@
[package]
name = "tower-fallback"
version = "0.2.41-beta.6"
version = "0.2.41-beta.7"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
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"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-chain"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
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.30", optional = true }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.31", optional = true }
[dev-dependencies]
# Benchmarks

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-consensus"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
description = "Implementation of Zcash consensus checks"
license = "MIT OR Apache-2.0"
@ -63,13 +63,13 @@ orchard = "0.6.0"
zcash_proofs = { version = "0.13.0-rc.1", features = ["multicore" ] }
wagyu-zcash-parameters = "0.2.0"
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.6" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.6" }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.7" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.7" }
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" }
zebra-script = { path = "../zebra-script", version = "1.0.0-beta.31" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.31" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.31" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31" }
# prod feature progress-bar
howudoin = { version = "0.1.2", optional = true }

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-network"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>", "Tower Maintainers <team@tower-rs.com>"]
description = "Networking code for Zebra"
# # Legal
@ -83,7 +83,7 @@ howudoin = { version = "0.1.2", optional = true }
proptest = { version = "1.3.1", optional = true }
proptest-derive = { version = "0.4.0", optional = true }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30", features = ["async-error"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31", features = ["async-error"] }
[dev-dependencies]
proptest = "1.3.1"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-node-services"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
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.30" }
zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.31" }
# Optional dependencies

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-rpc"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
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.3.1", optional = true }
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" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31", features = ["json-conversion"] }
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.31" }
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.31" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.31" }
zebra-script = { path = "../zebra-script", version = "1.0.0-beta.31" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.31" }
[dev-dependencies]
insta = { version = "1.33.0", features = ["redactions", "json", "ron"] }

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-script"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
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.14"
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31" }
thiserror = "1.0.48"
displaydoc = "0.2.4"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-state"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
description = "State contextual verification and storage code for Zebra"
license = "MIT OR Apache-2.0"
@ -73,13 +73,13 @@ tracing = "0.1.39"
elasticsearch = { version = "8.5.0-alpha.1", default-features = false, features = ["rustls-tls"], optional = true }
serde_json = { version = "1.0.108", package = "serde_json", optional = true }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30", features = ["async-error"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31", 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.30", optional = true }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.31", optional = true }
proptest = { version = "1.3.1", optional = true }
proptest-derive = { version = "0.4.0", optional = true }

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-test"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
description = "Test harnesses and test vectors for Zebra"
license = "MIT OR Apache-2.0"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-utils"
version = "1.0.0-beta.30"
version = "1.0.0-beta.31"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
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.30" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.30" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.31" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31" }
# These crates are needed for the block-template-to-proposal binary
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.30", optional = true }
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.31", optional = true }
# These crates are needed for the zebra-checkpoints binary
itertools = { version = "0.11.0", optional = true }

View File

@ -1,7 +1,7 @@
[package]
# Crate metadata
name = "zebrad"
version = "1.3.0"
version = "1.4.0"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
description = "The Zcash Foundation's independent, consensus-compatible implementation of a Zcash node"
license = "MIT OR Apache-2.0"
@ -145,15 +145,15 @@ test_sync_past_mandatory_checkpoint_mainnet = []
test_sync_past_mandatory_checkpoint_testnet = []
[dependencies]
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" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.31" }
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.31" }
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.31" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.31" }
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.31" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.31" }
# Required for crates.io publishing, but it's only used in tests
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.30", optional = true }
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.31", optional = true }
abscissa_core = "0.7.0"
clap = { version = "4.4.7", features = ["cargo"] }

View File

@ -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_264_000;
pub const ESTIMATED_RELEASE_HEIGHT: u32 = 2_290_000;
/// The maximum number of days after `ESTIMATED_RELEASE_HEIGHT` where a Zebra server will run
/// without halting.