Release Zebra v1.2.0 (#7431)

* chore: Release

* change estimated release height

* add 1.2.0 changelog

* apply suggestions to changelog

Co-authored-by: teor <teor@riseup.net>

* remove item

* change release date to today

---------

Co-authored-by: teor <teor@riseup.net>
This commit is contained in:
Alfredo Garcia 2023-09-01 17:45:20 -03:00 committed by GitHub
parent 978b163ed9
commit 6f503049c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 84 additions and 62 deletions

View File

@ -5,22 +5,44 @@ 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.2.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.1.0) - 2023-07-18
## [Zebra 1.2.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.2.0) - 2023-09-01
### Highlights
This release:
- Contains an automatic database upgrade that reduces the size of Zebra's
current cached state from approximately 276GB to 244GB. It does so by
automatically pruning unneeded note commitment trees from an existing cache.
New Zebra instances will also build their cache without these trees.
-
- Starts our work implementing "spend before sync" algorithm for lightwalletd.
- Contains an automatic database upgrade that reduces the size of Zebra's current cached state from approximately 276GB to 244GB. It does so by automatically pruning unneeded note commitment trees from an existing cache. New Zebra instances will also build their cache without these trees.
### Changed
- Deduplicate note commitment trees stored in the finalized state ([#7312]()https://github.com/ZcashFoundation/zebra/pull/7312, [#7379](https://github.com/ZcashFoundation/zebra/pull/7379))
- Insert only the first tree in each series of identical trees into finalized state ([#7266](https://github.com/ZcashFoundation/zebra/pull/7266))
- Our testing framework now uses the ECC lightwalletd fork ([#7307](https://github.com/ZcashFoundation/zebra/pull/7307)). This was needed to start the work of implementing fast spendability. The ECC repo is now the supported implementation in Zebra, documentation was changed to reflect this. ([#7427](https://github.com/ZcashFoundation/zebra/pull/7427))
### Breaking Changes
`zebrad` 1.2.0 cached states are incompatible with previous `zebrad` versions:
- `zebrad` 1.2.0 upgrades the cached state format. The new format is incompatible with previous `zebrad` versions. After upgrading to this Zebra version, don't downgrade to an earlier version.
- When earlier versions try to use states upgraded by `zebrad` 1.2.0:
- `zebrad` versions 1.0.0 and 1.0.1 will respond to some `z_gettreestate` RPC requests with incorrect empty `final_state` fields
- pre-release `zebrad` versions can panic when verifying shielded transactions, updating the state, or responding to RPC requests
### Added
- Documentation for mining with Docker ([#7179](https://github.com/ZcashFoundation/zebra/pull/7179))
- Note tree sizes field to `getblock` RPC method ([#7278](https://github.com/ZcashFoundation/zebra/pull/7278))
- Note commitment subtree types to zebra-chain ([#7371](https://github.com/ZcashFoundation/zebra/pull/7371))
- Note subtree index handling to zebra-state, but we're not writing subtrees to the finalized state yet ([#7334](https://github.com/ZcashFoundation/zebra/pull/7334))
### Fixed
- Log a warning instead of panicking for unused mining configs ([#7290](https://github.com/ZcashFoundation/zebra/pull/7290))
- Avoid expensive note commitment tree root recalculations in eq() methods ([#7386](https://github.com/ZcashFoundation/zebra/pull/7386))
- Use the correct state version for databases without a state version file ([#7385](https://github.com/ZcashFoundation/zebra/pull/7385))
- Avoid temporary failures verifying the first non-finalized block or attempting to fork the chain before the final checkpoint ([#6810](https://github.com/ZcashFoundation/zebra/pull/6810))
- If a database format change is cancelled, also cancel the format check, and don't mark the database as upgraded ([#7442](https://github.com/ZcashFoundation/zebra/pull/7442))
## [Zebra 1.1.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.1.0) - 2023-07-18

View File

@ -4537,7 +4537,7 @@ dependencies = [
[[package]]
name = "tower-batch-control"
version = "0.2.41-beta.4"
version = "0.2.41-beta.5"
dependencies = [
"color-eyre",
"ed25519-zebra",
@ -4561,7 +4561,7 @@ dependencies = [
[[package]]
name = "tower-fallback"
version = "0.2.41-beta.4"
version = "0.2.41-beta.5"
dependencies = [
"futures-core",
"pin-project",
@ -5462,7 +5462,7 @@ dependencies = [
[[package]]
name = "zebra-chain"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"bitflags 2.4.0",
"bitflags-serde-legacy",
@ -5523,7 +5523,7 @@ dependencies = [
[[package]]
name = "zebra-consensus"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"bellman",
"blake2b_simd",
@ -5568,7 +5568,7 @@ dependencies = [
[[package]]
name = "zebra-network"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"bitflags 2.4.0",
"byteorder",
@ -5609,7 +5609,7 @@ dependencies = [
[[package]]
name = "zebra-node-services"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"color-eyre",
"jsonrpc-core",
@ -5621,7 +5621,7 @@ dependencies = [
[[package]]
name = "zebra-rpc"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"chrono",
"futures",
@ -5653,7 +5653,7 @@ dependencies = [
[[package]]
name = "zebra-script"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"displaydoc",
"hex",
@ -5666,7 +5666,7 @@ dependencies = [
[[package]]
name = "zebra-state"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"bincode",
"chrono",
@ -5708,7 +5708,7 @@ dependencies = [
[[package]]
name = "zebra-test"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"color-eyre",
"futures",
@ -5735,7 +5735,7 @@ dependencies = [
[[package]]
name = "zebra-utils"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
dependencies = [
"color-eyre",
"hex",
@ -5756,7 +5756,7 @@ dependencies = [
[[package]]
name = "zebrad"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"abscissa_core",
"atty",

View File

@ -17,7 +17,7 @@ docker run --detach zfnd/zebra:latest
### Build it locally
```shell
git clone --depth 1 --branch v1.1.0 https://github.com/ZcashFoundation/zebra.git
git clone --depth 1 --branch v1.2.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.1.0
git checkout v1.2.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.1.0 zebrad
cargo install --git https://github.com/ZcashFoundation/zebra --tag v1.2.0 zebrad
```
### Compiling on ARM

View File

@ -1,6 +1,6 @@
[package]
name = "tower-batch-control"
version = "0.2.41-beta.4"
version = "0.2.41-beta.5"
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.4"
version = "0.2.41-beta.5"
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.28"
version = "1.0.0-beta.29"
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.28", optional = true }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.29", optional = true }
[dev-dependencies]
# Benchmarks

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-consensus"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
description = "Implementation of Zcash consensus checks"
license = "MIT OR Apache-2.0"
@ -62,13 +62,13 @@ orchard = "0.5.0"
zcash_proofs = { version = "0.12.1", features = ["local-prover", "multicore", "download-params"] }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.4" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.4" }
tower-fallback = { path = "../tower-fallback/", version = "0.2.41-beta.5" }
tower-batch-control = { path = "../tower-batch-control/", version = "0.2.41-beta.5" }
zebra-script = { path = "../zebra-script", version = "1.0.0-beta.28" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.28" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.28" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.28" }
zebra-script = { path = "../zebra-script", version = "1.0.0-beta.29" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.29" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" }
# 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.28"
version = "1.0.0-beta.29"
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.2.0", optional = true }
proptest-derive = { version = "0.4.0", optional = true }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.28", features = ["async-error"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29", features = ["async-error"] }
[dev-dependencies]
proptest = "1.2.0"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-node-services"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
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.28" }
zebra-chain = { path = "../zebra-chain" , version = "1.0.0-beta.29" }
# Optional dependencies

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-rpc"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
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.2.0", optional = true }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.28", features = ["json-conversion"] }
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.28" }
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.28" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.28" }
zebra-script = { path = "../zebra-script", version = "1.0.0-beta.28" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.28" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29", features = ["json-conversion"] }
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.29" }
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.29" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" }
zebra-script = { path = "../zebra-script", version = "1.0.0-beta.29" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.29" }
[dev-dependencies]
insta = { version = "1.31.0", features = ["redactions", "json", "ron"] }

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-script"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
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.13"
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.28" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" }
thiserror = "1.0.47"
displaydoc = "0.2.4"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-state"
version = "1.0.0-beta.28"
version = "1.0.0-beta.29"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
description = "State contextual verification and storage code for Zebra"
license = "MIT OR Apache-2.0"
@ -71,13 +71,13 @@ tracing = "0.1.37"
elasticsearch = { version = "8.5.0-alpha.1", default-features = false, features = ["rustls-tls"], optional = true }
serde_json = { version = "1.0.105", package = "serde_json", optional = true }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.28", features = ["async-error"] }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29", 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.28", optional = true }
zebra-test = { path = "../zebra-test/", version = "1.0.0-beta.29", optional = true }
proptest = { version = "1.2.0", 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.28"
version = "1.0.0-beta.29"
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.28"
version = "1.0.0-beta.29"
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.47"
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.28" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.28" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" }
# These crates are needed for the block-template-to-proposal binary
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.28", optional = true }
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.29", 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.1.0"
version = "1.2.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"
@ -142,15 +142,15 @@ test_sync_past_mandatory_checkpoint_mainnet = []
test_sync_past_mandatory_checkpoint_testnet = []
[dependencies]
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.28" }
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.28" }
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.28" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.28" }
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.28" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.28" }
zebra-chain = { path = "../zebra-chain", version = "1.0.0-beta.29" }
zebra-consensus = { path = "../zebra-consensus", version = "1.0.0-beta.29" }
zebra-network = { path = "../zebra-network", version = "1.0.0-beta.29" }
zebra-node-services = { path = "../zebra-node-services", version = "1.0.0-beta.29" }
zebra-rpc = { path = "../zebra-rpc", version = "1.0.0-beta.29" }
zebra-state = { path = "../zebra-state", version = "1.0.0-beta.29" }
# Required for crates.io publishing, but it's only used in tests
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.28", optional = true }
zebra-utils = { path = "../zebra-utils", version = "1.0.0-beta.29", optional = true }
abscissa_core = "0.7.0"
clap = { version = "4.4.0", 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_165_000;
pub const ESTIMATED_RELEASE_HEIGHT: u32 = 2_212_380;
/// The maximum number of days after `ESTIMATED_RELEASE_HEIGHT` where a Zebra server will run
/// without halting.