diff --git a/.github/PULL_REQUEST_TEMPLATE/release-checklist.md b/.github/PULL_REQUEST_TEMPLATE/release-checklist.md index 135906a6967..3c1960235d4 100644 --- a/.github/PULL_REQUEST_TEMPLATE/release-checklist.md +++ b/.github/PULL_REQUEST_TEMPLATE/release-checklist.md @@ -151,6 +151,12 @@ After you have the version increments, the updated checkpoints and the updated c - [ ] Test the Docker image using `docker run zfnd/zebra:1.0.0-rc.` - [ ] Turn off [Merge Freeze](https://www.mergefreeze.com/installations/3676/branches) for the whole repository + +## Blog Post + +If the release contains new features (`major` or `minor`), or high-priority bug fixes: +- [ ] Ask the team about doing a blog post + If building or running fails after tagging: 1. Fix the bug that caused the failure 2. Increment versions again, following these instructions from the start diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c9948d7234..ac7c7716191 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,55 @@ 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.0.0-rc.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-rc.0) - 2022-10-12 + +This is the first Zebra release candidate. Zebra's consensus rules, node sync, and `lightwalletd` RPCs are ready for user testing and experimental use. Zebra has not been audited yet. + +This release also makes significant performance improvements to RPCs, and temporarily removes support for Rust 1.64. + +### Breaking Changes + +This release has the following breaking changes: +- Rust 1.64 is unsupported due to a performance regression when downloading the Zcash parameters. + Zebra currently builds with Rust 1.63 ([#5251](https://github.com/ZcashFoundation/zebra/pull/5251)). +- Use correct TOML syntax in Docker zebrad.toml ([#5320](https://github.com/ZcashFoundation/zebra/pull/5320)) + +### Major RPC Performance Improvements + +This release improves RPC performance: +- Initial `lightwalletd` sync is about twice as fast ([#5307](https://github.com/ZcashFoundation/zebra/pull/5307)) +- RPCs can run while a block is being committed to the state, previously they could be delayed by 5-15 seconds ([#5134](https://github.com/ZcashFoundation/zebra/pull/5134), [#5257](https://github.com/ZcashFoundation/zebra/pull/5257)) + +### Security + +- Make default command work in docker images, disable optional listener ports ([#5313](https://github.com/ZcashFoundation/zebra/pull/5313)) +- Update yanked versions of cpufeatures (orchard/aes), ed25519 (tor), and quick-xml (flamegraph) ([#5308](https://github.com/ZcashFoundation/zebra/pull/5308)) +- Bump rand\_core from 0.6.3 to 0.6.4, fixes unsoundness bug ([#5175](https://github.com/ZcashFoundation/zebra/pull/5175)) + +### Changed + +- Log git metadata and platform info when zebrad starts up ([#5200](https://github.com/ZcashFoundation/zebra/pull/5200)) +- Update mainnet and testnet checkpoints ([#5360](https://github.com/ZcashFoundation/zebra/pull/5360)) +- Update README for the release candidate ([#5314](https://github.com/ZcashFoundation/zebra/pull/5314)) +- change(docs): Add links to CI/CD docs in the zebra book's sidebar ([#5355](https://github.com/ZcashFoundation/zebra/pull/5355)) + +### Fixed + +- Use correct TOML syntax in Docker zebrad.toml ([#5320](https://github.com/ZcashFoundation/zebra/pull/5320)) +- Look back up to 10,000 blocks on testnet for a legacy chain ([#5133](https://github.com/ZcashFoundation/zebra/pull/5133)) + +#### Performance + +- Build zebrad with Rust 1.63 to avoid Zcash parameter download hangs ([#5251](https://github.com/ZcashFoundation/zebra/pull/5251)) +- Write blocks to the state in a separate thread, to avoid network and RPC hangs ([#5134](https://github.com/ZcashFoundation/zebra/pull/5134), [#5257](https://github.com/ZcashFoundation/zebra/pull/5257)) +- Fix slow getblock RPC (verbose=1) using transaction ID index ([#5307](https://github.com/ZcashFoundation/zebra/pull/5307)) +- Open the database in a blocking tokio thread, which allows tokio to run other tasks ([#5228](https://github.com/ZcashFoundation/zebra/pull/5228)) + +### Contributors + +Thank you to everyone who contributed to this release, we couldn't make Zebra without you: +@arya2, @gustavovalverde, @oxarbitrage, @teor2345 and @upbqdn. + ## [Zebra 1.0.0-beta.15](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.15) - 2022-09-20 This release improves Zebra's sync and RPC performance, improves test coverage and reliability, and starts creating Docker Hub binaries for releases. diff --git a/Cargo.lock b/Cargo.lock index 98c2f9d2616..29f41641f4d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5463,7 +5463,7 @@ dependencies = [ [[package]] name = "tower-batch" -version = "0.2.30" +version = "0.2.31" dependencies = [ "color-eyre", "ed25519-zebra", @@ -5487,7 +5487,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.30" +version = "0.2.31" dependencies = [ "futures-core", "pin-project 0.4.30", @@ -6351,7 +6351,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "aes", "bech32 0.9.1", @@ -6415,7 +6415,7 @@ version = "1.0.0-beta.0" [[package]] name = "zebra-consensus" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "bellman", "blake2b_simd", @@ -6459,7 +6459,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "arti-client", "bitflags", @@ -6497,14 +6497,14 @@ dependencies = [ [[package]] name = "zebra-node-services" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "zebra-chain", ] [[package]] name = "zebra-rpc" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "chrono", "futures", @@ -6534,7 +6534,7 @@ dependencies = [ [[package]] name = "zebra-script" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "displaydoc", "hex", @@ -6547,7 +6547,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "bincode", "chrono", @@ -6585,7 +6585,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "color-eyre", "futures", @@ -6612,7 +6612,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" dependencies = [ "color-eyre", "hex", @@ -6628,7 +6628,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "1.0.0-beta.15" +version = "1.0.0-rc.0" dependencies = [ "abscissa_core", "atty", diff --git a/README.md b/README.md index 61da7fa37f4..9eefabc1def 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ for your platform: 2. Install Zebra's build dependencies: - **libclang:** the `libclang`, `libclang-dev`, `llvm`, or `llvm-dev` packages, depending on your package manager - **clang** or another C++ compiler: `g++`, `Xcode`, or `MSVC` -3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.15 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-rc.0 zebrad` 4. Run `zebrad start` (see [Running Zebra](https://zebra.zfnd.org/user/run.html) for more information) For more detailed instructions, refer to the [documentation](https://zebra.zfnd.org/user/install.html). diff --git a/book/src/user/install.md b/book/src/user/install.md index 2fe6eee032c..8134d593588 100644 --- a/book/src/user/install.md +++ b/book/src/user/install.md @@ -9,7 +9,7 @@ for your platform: 2. Install Zebra's build dependencies: - **libclang:** the `libclang`, `libclang-dev`, `llvm`, or `llvm-dev` packages, depending on your package manager - **clang** or another C++ compiler: `g++`, `Xcode`, or `MSVC` -3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.15 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-rc.0 zebrad` 4. Run `zebrad start` (see [Running Zebra](run.md) for more information) If you're interested in testing out `zebrad` please feel free, but keep in mind diff --git a/tower-batch/Cargo.toml b/tower-batch/Cargo.toml index 08b3bf7b57e..7faede399f3 100644 --- a/tower-batch/Cargo.toml +++ b/tower-batch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-batch" -version = "0.2.30" +version = "0.2.31" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index e109fe2ee8b..c5f6260ff3d 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.30" +version = "0.2.31" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index ea9f09c3659..90642ee8ebf 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index 1ea48678434..872d98fdb4d 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-network/Cargo.toml b/zebra-network/Cargo.toml index cbb5c41817d..237164b5b42 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-network/src/constants.rs b/zebra-network/src/constants.rs index 97a917eb10d..609be213a7d 100644 --- a/zebra-network/src/constants.rs +++ b/zebra-network/src/constants.rs @@ -242,7 +242,7 @@ pub const TIMESTAMP_TRUNCATION_SECONDS: u32 = 30 * 60; /// [BIP 14]: https://github.com/bitcoin/bips/blob/master/bip-0014.mediawiki // // TODO: generate this from crate metadata (#2375) -pub const USER_AGENT: &str = "/Zebra:1.0.0-beta.15/"; +pub const USER_AGENT: &str = "/Zebra:1.0.0-rc.0/"; /// The Zcash network protocol version implemented by this crate, and advertised /// during connection setup. diff --git a/zebra-node-services/Cargo.toml b/zebra-node-services/Cargo.toml index ffe4d395f2a..7f8315f134c 100644 --- a/zebra-node-services/Cargo.toml +++ b/zebra-node-services/Cargo.toml @@ -2,7 +2,7 @@ name = "zebra-node-services" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" edition = "2021" repository = "https://github.com/ZcashFoundation/zebra" diff --git a/zebra-rpc/Cargo.toml b/zebra-rpc/Cargo.toml index 667037375f8..bd0aaea4660 100644 --- a/zebra-rpc/Cargo.toml +++ b/zebra-rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-rpc" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-script/Cargo.toml b/zebra-script/Cargo.toml index 1a2a78f73e0..096607c9ec2 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index 8816032716c..87cda91b1e4 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-test/Cargo.toml b/zebra-test/Cargo.toml index a9e6c781c7c..7705d67bac3 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-utils/Cargo.toml b/zebra-utils/Cargo.toml index 282e6b7afab..4c8581e1a06 100644 --- a/zebra-utils/Cargo.toml +++ b/zebra-utils/Cargo.toml @@ -2,7 +2,7 @@ name = "zebra-utils" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-beta.15" +version = "1.0.0-beta.16" edition = "2021" # Prevent accidental publication of this utility crate. publish = false diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index 1f1eec83f9c..4e5457899fb 100644 --- a/zebrad/Cargo.toml +++ b/zebrad/Cargo.toml @@ -2,7 +2,7 @@ name = "zebrad" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-beta.15" +version = "1.0.0-rc.0" edition = "2021" # Zebra is only supported on the latest stable Rust version. Some earlier versions might work. # Zebra uses features introduced in Rust 1.58.