diff --git a/CHANGELOG.md b/CHANGELOG.md index f92767bf7..ff665d28d 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 d00a50e58..6a72237ab 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 40c5ce4e6..62d7b11a2 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 d2bd3222e..4ff827dd4 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 d1c4d5299..43f10a399 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 c462ee801..bb1ec8a3d 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 b0385c100..ea8f1a1e3 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 0fa75b7c6..a50eda4d4 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 9477eaf1d..4ff6dfec6 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 94f58db76..d285ff2f2 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 b1a5fb29e..bd05b5b38 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 e8584113b..4e69a10b6 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 c63145726..858747381 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 d6119f9c6..1cb856f8b 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 9e080eca5..1db251512 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 26128cdbd..4ffad37d3 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 9b770f35e..239de8431 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