From 9d2b9128405f0ec4b4f4aca4ab7ad44bd71b1c87 Mon Sep 17 00:00:00 2001 From: Marek Date: Sat, 25 Feb 2023 00:08:16 +0100 Subject: [PATCH] Release v1.0.0-rc.5 (#6213) * Bump updated crates * Bump crates that depend on updated crates * Bump the user agent * Bump `README.md` * Bump `docker.md` * Remove closed known issues from "README.md" * Update `CHANGELOG.md` * Apply suggestions from code review Co-authored-by: Arya Co-authored-by: teor * Remove the bump of `once_cell` from `CHANGELOG.md` --------- Co-authored-by: Arya Co-authored-by: teor Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- CHANGELOG.md | 78 +++++++++++++++++++++++++++++----- Cargo.lock | 24 +++++------ README.md | 8 ++-- book/src/user/docker.md | 8 ++-- tower-batch/Cargo.toml | 2 +- tower-fallback/Cargo.toml | 2 +- zebra-chain/Cargo.toml | 2 +- zebra-consensus/Cargo.toml | 2 +- zebra-network/Cargo.toml | 2 +- zebra-network/src/constants.rs | 2 +- zebra-node-services/Cargo.toml | 2 +- zebra-rpc/Cargo.toml | 2 +- zebra-script/Cargo.toml | 2 +- zebra-state/Cargo.toml | 2 +- zebra-test/Cargo.toml | 2 +- zebra-utils/Cargo.toml | 2 +- zebrad/Cargo.toml | 2 +- 17 files changed, 100 insertions(+), 44 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f92767bf..ff665d28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,27 +2,83 @@ 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). +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.5](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-rc.5) - 2023-02-TODO INSERT DATE HERE +## [Zebra 1.0.0-rc.5](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-rc.5) - 2023-02-23 -In this release we ... (TODO) -We also check that Zebra is following the consensus chain each time it starts up. +This release: + +- finishes the implementation of mining-related RPCs; +- makes Zebra ready for testing and initial adoption by mining pools; +- adds support for the latest version of `lightwalletd`; +- makes non-finalized chain forks instant; +- contains other improvements such as deduplication of RedPallas code. + +Zebra now also checks that it is following the consensus chain each time it +starts up. ### Security -- Check that Zebra's state contains the consensus chain each time it starts up. This implements - the "settled network upgrade" consensus rule using all of Zebra's checkpoints ([#6163](https://github.com/ZcashFoundation/zebra/pull/6163)). - *User action required:* - - If your config is based on an old version of Zebra, or you have manually edited it, - make sure `consensus.checkpoint_sync = true`. - This option has been true by default since March 2022. + +- Check that Zebra's state contains the consensus chain each time it starts up. + This implements the "settled network upgrade" consensus rule using all of + Zebra's checkpoints + ([#6163](https://github.com/ZcashFoundation/zebra/pull/6163)). + + _User action required:_ + + - If your config is based on an old version of Zebra, or you have manually + edited it, make sure `consensus.checkpoint_sync = true`. This option has + been true by default since March 2022. + +- Bump hyper from 0.14.23 to 0.14.24, fixing a denial of service risk ([#6094](https://github.com/ZcashFoundation/zebra/pull/6094)) +- Re-verify transactions that were verified at a different tip height ([#6154](https://github.com/ZcashFoundation/zebra/pull/6154)) +- Fix minute-long delays in block verification after a chain fork ([#6122](https://github.com/ZcashFoundation/zebra/pull/6122)) ### Deprecated + - The `consensus.checkpoint_sync` config in `zebrad.toml` is deprecated. It might be ignored or removed in a future release. ([#6163](https://github.com/ZcashFoundation/zebra/pull/6163)) -TODO: add other changes here +### Added +- Log a cute message for blocks that were mined by Zebra (off by default) ([#6098](https://github.com/ZcashFoundation/zebra/pull/6098)) +- Add extra `getblock` RPC fields used by some mining pools ([#6097](https://github.com/ZcashFoundation/zebra/pull/6097)) +- Get details from transaction differences in `getrawmempool` RPC ([#6035](https://github.com/ZcashFoundation/zebra/pull/6035)) + +#### New RPCs + +- Implement the `z_listunifiedreceivers` RPC ([#6171](https://github.com/ZcashFoundation/zebra/pull/6171)) +- Implement the `getblocksubsidy` RPC ([#6032](https://github.com/ZcashFoundation/zebra/pull/6032)) +- Implement the `validateaddress` RPC ([#6086](https://github.com/ZcashFoundation/zebra/pull/6086)) +- Implement the `z_validateaddress` RPC ([#6185](https://github.com/ZcashFoundation/zebra/pull/6185)) +- Implement the `getdifficulty` RPC ([#6099](https://github.com/ZcashFoundation/zebra/pull/6099)) + +#### Documentation + +- Add detailed testnet mining docs to the Zebra repository ([#6201](https://github.com/ZcashFoundation/zebra/pull/6201)) +- Add mining instructions to the zebra book ([#6199](https://github.com/ZcashFoundation/zebra/pull/6199)) + +### Changed + +- Use `reddsa` crate and remove duplicated RedPallas code ([#6013](https://github.com/ZcashFoundation/zebra/pull/6013)) +- Upgrade to the zcash_primitives 0.10 API ([#6087](https://github.com/ZcashFoundation/zebra/pull/6087)) +- Simplify `getdifficulty` RPC implementation ([#6105](https://github.com/ZcashFoundation/zebra/pull/6105)) + +### Fixed + +- Change error format in proposals ([#6044](https://github.com/ZcashFoundation/zebra/pull/6044)) +- Fix `lightwalletd` instructions to be compatible with Zebra ([#6088](https://github.com/ZcashFoundation/zebra/pull/6088)) +- Downgrade `owo-colors` from 3.6.0 to 3.5.0 ([#6203](https://github.com/ZcashFoundation/zebra/pull/6203)) +- Make RPC "incorrect parameters" error code match `zcashd` ([#6066](https://github.com/ZcashFoundation/zebra/pull/6066)) +- Make the verbosity argument optional in the getblock RPC ([#6092](https://github.com/ZcashFoundation/zebra/pull/6092)) +- Increase legacy chain limit to 100,000 ([#6053](https://github.com/ZcashFoundation/zebra/pull/6053)) + +### Contributors + +Thank you to everyone who contributed to this release, we couldn't make Zebra +without you: @arya2, @conradoplg, @gustavovalverde, +@jackgavigan, @oxarbitrage, @sandakersmann, @teor2345 and @upbqdn ## [Zebra 1.0.0-rc.4](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-rc.4) - 2023-01-30 diff --git a/Cargo.lock b/Cargo.lock index d00a50e5..6a72237a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4505,7 +4505,7 @@ dependencies = [ [[package]] name = "tower-batch" -version = "0.2.35" +version = "0.2.36" dependencies = [ "color-eyre", "ed25519-zebra", @@ -4529,7 +4529,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.35" +version = "0.2.36" dependencies = [ "futures-core", "pin-project 0.4.30", @@ -5434,7 +5434,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "aes", "bech32 0.9.1", @@ -5499,7 +5499,7 @@ version = "1.0.0-beta.0" [[package]] name = "zebra-consensus" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "bellman", "blake2b_simd", @@ -5543,7 +5543,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "bitflags", "byteorder", @@ -5579,14 +5579,14 @@ dependencies = [ [[package]] name = "zebra-node-services" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "zebra-chain", ] [[package]] name = "zebra-rpc" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "chrono", "futures", @@ -5620,7 +5620,7 @@ dependencies = [ [[package]] name = "zebra-script" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "displaydoc", "hex", @@ -5633,7 +5633,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "bincode", "chrono", @@ -5671,7 +5671,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "color-eyre", "futures", @@ -5698,7 +5698,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" dependencies = [ "color-eyre", "hex", @@ -5715,7 +5715,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "1.0.0-rc.4" +version = "1.0.0-rc.5" dependencies = [ "abscissa_core", "atty", diff --git a/README.md b/README.md index 40c5ce4e..62d7b11a 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ and Zebra implements all the features required to reach Zcash network consensus. Currently, Zebra validates all of the Zcash consensus rules for the NU5 network upgrade. Zebra validates blocks and transactions, but needs extra software to generate them: + - to generate transactions, [configure `zebrad`'s JSON-RPC port](https://github.com/ZcashFoundation/zebra#configuring-json-rpc-for-lightwalletd), and use a light wallet with `lightwalletd` and Zebra. - to generate blocks, [compile `zebrad` with the `getblocktemplate-rpcs` feature](https://doc.zebra.zfnd.org/zebrad/#json-rpc), configure the JSON-RPC port, @@ -76,12 +77,13 @@ You can run Zebra using our Docker image. This command will run our latest release, and sync it to the tip: ```sh -docker run zfnd/zebra:1.0.0-rc.4 +docker run zfnd/zebra:1.0.0-rc.5 ``` For more information, read our [Docker documentation](book/src/user/docker.md). You can also: + - [compile Zebra with metrics or tracing](https://doc.zebra.zfnd.org/zebrad/#metrics), - [enable Zebra's RPC port](https://github.com/ZcashFoundation/zebra#configuring-json-rpc-for-lightwalletd), and - [configure other features](https://zebra.zfnd.org/user/run.html). @@ -100,7 +102,7 @@ for your platform: - **libclang:** the `libclang`, `libclang-dev`, `llvm`, or `llvm-dev` packages (these packages will have different names depending on your package manager) - **clang** or another C++ compiler: `g++` (all platforms) or `Xcode` (macOS) -3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-rc.4 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-rc.5 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). @@ -240,8 +242,6 @@ There are a few bugs in Zebra that we're still working on fixing: - If Zebra fails downloading the Zcash parameters, use [the Zcash parameters download script](https://github.com/zcash/zcash/blob/master/zcutil/fetch-params.sh) instead. -- Zebra falsely estimates that it's close to the tip when the network connection goes down [#4649](https://github.com/ZcashFoundation/zebra/issues/4649). - - Block download and verification sometimes times out during Zebra's initial sync [#5709](https://github.com/ZcashFoundation/zebra/issues/5709). The full sync still finishes reasonably quickly. - No Windows support [#3801](https://github.com/ZcashFoundation/zebra/issues/3801). We used to test with Windows Server 2019, but not any more; see the issue for details. diff --git a/book/src/user/docker.md b/book/src/user/docker.md index d2bd3222..4ff827dd 100644 --- a/book/src/user/docker.md +++ b/book/src/user/docker.md @@ -11,13 +11,13 @@ You can deploy Zebra for a daily use with the images available in [Docker Hub](h ### Ready to use image ```shell -docker run --detach zfnd/zebra:1.0.0-rc.4 +docker run --detach zfnd/zebra:1.0.0-rc.5 ``` ### Build it locally ```shell -git clone --depth 1 --branch v1.0.0-rc.4 https://github.com/ZcashFoundation/zebra.git +git clone --depth 1 --branch v1.0.0-rc.5 https://github.com/ZcashFoundation/zebra.git docker build --file docker/Dockerfile --target runtime --tag zebra:local docker run --detach zebra:local ``` @@ -28,14 +28,14 @@ See the Zebra [build instructions](https://github.com/ZcashFoundation/zebra#buil ## Images -The Zebra team builds multiple images with a single [Dockerfile](https://github.com/ZcashFoundation/zebra/blob/main/docker/Dockerfile) using [multistage builds](https://docs.docker.com/build/building/multi-stage/). The `test` stage adds needed features and tools (like [lightwalletd](https://github.com/adityapk00/lightwalletd)) and the `runtime` stage just adds the *zebrad* binary and required *zcash-params* for Zebra to run correctly. +The Zebra team builds multiple images with a single [Dockerfile](https://github.com/ZcashFoundation/zebra/blob/main/docker/Dockerfile) using [multistage builds](https://docs.docker.com/build/building/multi-stage/). The `test` stage adds needed features and tools (like [lightwalletd](https://github.com/adityapk00/lightwalletd)) and the `runtime` stage just adds the _zebrad_ binary and required _zcash-params_ for Zebra to run correctly. As a result the Zebra team builds four images: - [zcash-params](us-docker.pkg.dev/zealous-zebra/zebra/zcash-params): built Zcash network parameters - [lightwalletd](us-docker.pkg.dev/zealous-zebra/zebra/lightwalletd): a backend service that provides an interface to the Zcash blockchain - [zebrad-test](us-docker.pkg.dev/zealous-zebra/zebra/zebrad-test): a zebrad binary with lightwalletd included, and test suites enabled -- [zebra](https://hub.docker.com/repository/docker/zfnd/zebra): a streamlined version with the zebrad binary and just the needed features needed to run *as-is* +- [zebra](https://hub.docker.com/repository/docker/zfnd/zebra): a streamlined version with the zebrad binary and just the needed features needed to run _as-is_ ## Registries diff --git a/tower-batch/Cargo.toml b/tower-batch/Cargo.toml index d1c4d529..43f10a39 100644 --- a/tower-batch/Cargo.toml +++ b/tower-batch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-batch" -version = "0.2.35" +version = "0.2.36" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index c462ee80..bb1ec8a3 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.35" +version = "0.2.36" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index b0385c10..ea8f1a1e 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index 0fa75b7c..a50eda4d 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-network/Cargo.toml b/zebra-network/Cargo.toml index 9477eaf1..4ff6dfec 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" 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 94f58db7..d285ff2f 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-rc.4/"; +pub const USER_AGENT: &str = "/Zebra:1.0.0-rc.5/"; /// 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 b1a5fb29..bd05b5b3 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.20" +version = "1.0.0-beta.21" edition = "2021" repository = "https://github.com/ZcashFoundation/zebra" diff --git a/zebra-rpc/Cargo.toml b/zebra-rpc/Cargo.toml index e8584113..4e69a10b 100644 --- a/zebra-rpc/Cargo.toml +++ b/zebra-rpc/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-rpc" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-script/Cargo.toml b/zebra-script/Cargo.toml index c6314572..85874738 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index d6119f9c..1cb856f8 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-test/Cargo.toml b/zebra-test/Cargo.toml index 9e080eca..1db25151 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-beta.20" +version = "1.0.0-beta.21" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-utils/Cargo.toml b/zebra-utils/Cargo.toml index 26128cdb..4ffad37d 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.20" +version = "1.0.0-beta.21" edition = "2021" # Prevent accidental publication of this utility crate. diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index 9b770f35..239de843 100644 --- a/zebrad/Cargo.toml +++ b/zebrad/Cargo.toml @@ -3,7 +3,7 @@ name = "zebrad" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-rc.4" +version = "1.0.0-rc.5" repository = "https://github.com/ZcashFoundation/zebra" # Settings that impact compilation