chore: Release Zebra 1.0.0-beta.15 (#5194)

* Initial beta.15 changelog

* Increment Zebra versions and remove known issues

* Document `protoc` dependency for `lightwalletd` tests

* Explain latest sync time

* s/coverate/coverage/

Co-authored-by: Marek <mail@marek.onl>

* Style

Co-authored-by: Marek <mail@marek.onl>

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
Co-authored-by: Marek <mail@marek.onl>
This commit is contained in:
teor 2022-09-20 07:21:27 +10:00 committed by GitHub
parent 202dc43b11
commit f8ead710c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 175 additions and 35 deletions

View File

@ -4,7 +4,146 @@ 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-beta.14](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.13) - 2022-08-30
## [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.
It also changes some of `zebra-network`'s unstable Rust APIs to provide more peer metadata.
### Breaking Changes
This release has the following breaking changes:
- Zebra's JSON-RPC server has an isolated thread pool, which is single threaded by default (#4806).
Multi-threaded RPCs disable port conflict detection, allowing multiple Zebra instances to share
the same RPC port (#5013).
To activate multi-threaded RPC server requests, add this config to your `zebrad.toml`:
```toml
[rpc]
parallel_cpu_threads = 0
```
- Docker users can now specify a custom `zebrad` config file path (#5163, #5177).
As part of this feature, the default config path in the Docker image was changed.
- `zebrad` now uses a non-blocking tracing logger (#5032).
If the log buffer fills up, Zebra will discard any additional logs.
Moving logging to a separate thread also changes the timing of some logs,
this is unlikely to affect most users.
- Zebra's gRPC tests need `protoc` installed (#5009).
If you are running Zebra's `lightwalletd` gRPC test suite, [see the `tonic` README for details.](https://github.com/hyperium/tonic#dependencies)
### Added
#### Releasing Zebra
- Create Docker hub binaries when tagging releases (#5138)
- Document how Zebra is versioned and released (#4917, #5026)
- Allow manual Release Drafter workflow runs (#5165)
#### Network Peer Rust APIs
Note: Zebra's Rust APIs are unstable, they are not covered by semantic versioning.
- Return peer metadata from `connect_isolated` functions (#4870)
#### Testing
- Check that the latest Zebra version can parse previous configs (#5112)
- Test disabled `lightwalletd` mempool gRPCs via zebrad logs (#5016)
#### Documentation
- Document why Zebra does a UTXO check that looks redundant (#5106)
- Document how Zebra CI works (#5038, #5080, #5100, #5105, #5017)
### Changed
#### Zebra JSON-RPCs
- Breaking: Add a config for multi-threaded RPC server requests (#5013)
- Isolate RPC queries from the rest of Zebra, to improve performance (#4806)
#### Zebra State
- Send treestates from non-finalized state to finalized state, rather than re-calculating them (#4721)
- Run StateService read requests without shared mutable chain state (#5132, #5107)
- Move the finalized block queue to the StateService (#5152)
- Simplify StateService request processing and metrics tracking (#5137)
#### Block Checkpoints
- Update Zebra checkpoints (#5130)
#### Docker Images
- Breaking: Allow Docker users to specify a custom `zebrad` config file path (#5163, #5177)
#### Continuous Integration and Deployment
- Wait 1 day before creating cached state image updates (#5088)
- Delete cached state images older than 2 days, but keep a few recent images
(#5113, #5124, #5082, #5079)
- Simplify GitHub actions caches (#5104)
- Use 200GB disks for managed instances (#5084)
- Improve test reliability and test output readability (#5014)
#### Zebra Dependencies
- Breaking: Update prost, tonic, tonic-build and console-subscriber to the latest versions (#5009)
- Upgrade `zcash\_script` and other shared zcash dependencies (#4926)
- Update deny.toml developer docs and file comments (#5151, #5070)
- Update other Zebra Rust dependencies to the latest versions
(#5150, #5160, #5176, #5149, #5136, #5135, #5118, #5009, #5074, #5071, #5037, #5020, #4914,
#5057, #5058, #5047, #4984, #5021, #4998, #4916, #5022, #4912, #5018, #5019)
#### CI Dependencies
- Update Zebra CI dependencies to the latest versions (#5159, #5148, #5117, #5073, #5029)
### Removed
#### Continuous Integration
- Disable beta Rust tests (#5090, #5024)
### Fixed
#### Logging
- Breaking: Switch `zebrad` to a non-blocking tracing logger (#5032)
#### Testing
- Increase full sync timeout to 32 hours (#5172, #5129)
- Disable unreliable RPC port conflict tests on Windows and macOS (#5072)
- Increase slow code log thresholds to reduce verbose logs and warnings (#4997)
#### Continuous Integration
- Fix full sync CI failures by adding an extra GitHub job (#5166)
- Make checkpoint disk image names short enough for Google Cloud (#5128)
- Label lightwalletd cached state images with their sync height (#5086)
#### Lints
- Fix various Rust clippy lints (#5131, #5045)
- Fix a failure in `tj-actions/changed-files` on push (#5097)
#### Documentation
- Enable all cargo features in Zebra's deployed documentation (#5156)
### Security
#### JSON-RPC Server
- Isolate RPC queries from the rest of Zebra,
so that `lightwalletd` clients are more isolated from each other (#4806)
## [Zebra 1.0.0-beta.14](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.14) - 2022-08-30
This release contains a variety of CI fixes, test fixes and dependency updates.
It contains two breaking changes:
@ -229,7 +368,7 @@ This release also contains some breaking changes which:
#### Chain Sync
- Update mainnet and testnet checkpoint hashes (#4708)
- Update mainnet and testnet checkpoint hashes (#4708)
#### Diagnostics

24
Cargo.lock generated
View File

@ -5462,7 +5462,7 @@ dependencies = [
[[package]]
name = "tower-batch"
version = "0.2.29"
version = "0.2.30"
dependencies = [
"color-eyre",
"ed25519-zebra",
@ -5486,7 +5486,7 @@ dependencies = [
[[package]]
name = "tower-fallback"
version = "0.2.29"
version = "0.2.30"
dependencies = [
"futures-core",
"pin-project 0.4.30",
@ -6350,7 +6350,7 @@ dependencies = [
[[package]]
name = "zebra-chain"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"aes",
"bech32 0.9.1",
@ -6414,7 +6414,7 @@ version = "1.0.0-beta.0"
[[package]]
name = "zebra-consensus"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"bellman",
"blake2b_simd",
@ -6458,7 +6458,7 @@ dependencies = [
[[package]]
name = "zebra-network"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"arti-client",
"bitflags",
@ -6496,14 +6496,14 @@ dependencies = [
[[package]]
name = "zebra-node-services"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"zebra-chain",
]
[[package]]
name = "zebra-rpc"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"chrono",
"futures",
@ -6533,7 +6533,7 @@ dependencies = [
[[package]]
name = "zebra-script"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"displaydoc",
"hex",
@ -6546,7 +6546,7 @@ dependencies = [
[[package]]
name = "zebra-state"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"bincode",
"chrono",
@ -6583,7 +6583,7 @@ dependencies = [
[[package]]
name = "zebra-test"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"color-eyre",
"futures",
@ -6610,7 +6610,7 @@ dependencies = [
[[package]]
name = "zebra-utils"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"color-eyre",
"hex",
@ -6626,7 +6626,7 @@ dependencies = [
[[package]]
name = "zebrad"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
dependencies = [
"abscissa_core",
"atty",

View File

@ -87,7 +87,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.14 zebrad`
3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.15 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).
@ -220,10 +220,6 @@ There are a few bugs in Zebra that we're still working on fixing:
- No Windows support [#3801](https://github.com/ZcashFoundation/zebra/issues/3801)
- We used to test with Windows Server 2019, but not anymore; see issue for details
### Performance
- Revert deserializing state transactions in rayon threads [#4831](https://github.com/ZcashFoundation/zebra/issues/4831)
## Future Work
Performance and Reliability:

View File

@ -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.14 zebrad`
3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.15 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

View File

@ -130,7 +130,12 @@ Wait until lightwalletd is in sync before connecting any wallet into it. You wil
## Run tests
[#run-tests]: (#run-tests)
The Zebra team created tests for the interaction of zebra and lightwalletd.
The Zebra team created tests for the interaction of `zebrad` and `lightwalletd`.
To run all the Zebra `lightwalletd` tests:
1. install `lightwalletd`
2. install `protoc`
3. build Zebra with `--features=lightwalletd-grpc-tests`
Please refer to [acceptance](https://github.com/ZcashFoundation/zebra/blob/main/zebrad/tests/acceptance.rs) tests documentation in the `Lightwalletd tests` section.

View File

@ -38,7 +38,7 @@ If this is a problem for you, please let us know!
## Improving Performance
Zebra usually syncs in 4-12 hours, depending on the network connection.
Zebra usually syncs in around a day, depending on your network connection, and the overall Zcash network load.
If you're having trouble syncing, try the following config changes:

View File

@ -1,6 +1,6 @@
[package]
name = "tower-batch"
version = "0.2.29"
version = "0.2.30"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT"
edition = "2021"

View File

@ -1,6 +1,6 @@
[package]
name = "tower-fallback"
version = "0.2.29"
version = "0.2.30"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT"
edition = "2021"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-chain"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-consensus"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-network"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"

View File

@ -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.14/";
pub const USER_AGENT: &str = "/Zebra:1.0.0-beta.15/";
/// The Zcash network protocol version implemented by this crate, and advertised
/// during connection setup.

View File

@ -2,7 +2,7 @@
name = "zebra-node-services"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
edition = "2021"
repository = "https://github.com/ZcashFoundation/zebra"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-rpc"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-script"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-state"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-test"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
edition = "2021"

View File

@ -2,7 +2,7 @@
name = "zebra-utils"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
edition = "2021"
# Prevent accidental publication of this utility crate.
publish = false

View File

@ -2,7 +2,7 @@
name = "zebrad"
authors = ["Zcash Foundation <zebra@zfnd.org>"]
license = "MIT OR Apache-2.0"
version = "1.0.0-beta.14"
version = "1.0.0-beta.15"
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.