v1.0.0-beta.14-release (#5006)

* Bump crate versions

* Bump `USER_AGENT`

* Update `README.md`

* Update `install.md`

* Update `CHANGELOG.md`

* Apply suggestions from code review

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

* Apply a suggestion from code review

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

* Move the "Networking" section above "Tests"

* Merge PRs that update checkpoints

* Refactor `CHANGELOG.md`

* Add missing PRs to `CHANGELOG.md`

* Apply suggestions from code review

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

Co-authored-by: teor <teor@riseup.net>
This commit is contained in:
Marek 2022-09-01 00:00:46 +02:00 committed by GitHub
parent e9597c0406
commit c322533125
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 151 additions and 56 deletions

View File

@ -4,6 +4,104 @@ 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
This release contains a variety of CI fixes, test fixes and dependency updates.
It contains two breaking changes:
- the recommended disk capacity for Zebra is now 300 GB, and the recommended network bandwidth is 100 GB per month, and
- when no command is provided on the command line, `zebrad` automatically starts syncing (like `zcashd`).
The sync performance of `lightwalletd` is also improved.
### Added
- Store history trees by height in the non-finalized state (#4928)
- Breaking: Add `start` as default subcommand for `zebrad` (#4957)
### Changed
- Fix a performance regression when serving blocks via the Zcash network protocol and RPCs (#4933)
- Update block hash checkpoints for mainnet (#4919, #4972)
- Enable a `tinyvec` feature to speed up compilation (#4796)
- Split the `zebra_state::service::read` module (#4827)
- Disallow Orchard `ivk = 0` on `IncomingViewingKey::from` & `SpendingKey` generation (#3962)
#### Docs
- Increase disk and network requirements for long-term deployment (#4948, #4963)
- Update supported Rust versions in `README.md` (#4938)
- Document edge cases in sync workflows (#4973)
- Add missing status badges & sections (#4817)
#### Rust Dependencies
- Bump `serde` from 1.0.137 to 1.0.144 (#4865, #4876, #4925)
- Bump `serde_json` from 1.0.81 to 1.0.83 (#4727, #4877)
- Bump `serde_with` from 1.14.0 to 2.0.0 (#4785)
- Bump `futures` from 0.3.21 to 0.3.23 (#4913)
- Bump `futures-core` from 0.3.21 to 0.3.23 (#4915)
- Bump `chrono` from 0.4.19 to 0.4.20 (#4898)
- Bump `criterion` from 0.3.5 to 0.3.6 (#4761)
- Bump `thiserror` from 1.0.31 to 1.0.32 (#4878)
- Bump `vergen` from 7.2.1 to 7.3.2 (#4890)
- Bump `tinyvec` from 1.5.1 to 1.6.0 (#4888)
- Bump `insta` from 1.15.0 to 1.17.1 (#4884)
- Bump `semver` from 1.0.12 to 1.0.13 (#4879)
- Bump `bytes` from 1.1.0 to 1.2.1 (#4843)
- Bump `tokio` from 1.20.0 to 1.20.1 (#4864)
- Bump `hyper` from 0.14.19 to 0.14.20 (#4764)
- Bump `once_cell` from 1.12.0 to 1.13.0 (#4749)
- Bump `regex` from 1.5.6 to 1.6.0 (#4755)
- Bump `inferno` from 0.11.6 to 0.11.7 (#4829)
#### CI Dependencies
- Bump `actions/github-script` from 6.1.0 to 6.2.0 (#4986)
- Bump `reviewdog/action-actionlint` from 1.27.0 to 1.29.0 (#4923, #4987)
- Bump `tj-actions/changed-files` from 24 to 29.0.2 (#4936, #4959, #4985)
- Bump `w9jds/firebase-action` from 2.2.2 to 11.5.0 (#4905)
- Bump `docker/build-push-action` from 3.0.0 to 3.1.1 (#4797, #4895)
### Fixed
- Increase the number of blocks checked for legacy transactions (#4804)
#### CI
- Split a long full sync job (#5001)
- Stop cancelling manual full syncs (#5000)
- Run a single CI workflow as required (#4981)
- Fix some clippy warnings (#4927, #4931)
- Improve Zebra acceptance test diagnostics (#4958)
- Expand cached state disks before running tests (#4962)
- Increase full sync timeouts for longer syncs (#4961)
- Fix a regular expression typo in a full sync job (#4950)
- Write cached state images after update syncs, and use the latest image from any commit (#4949)
- Increase CI disk size to 200GB (#4945)
- Make sure Rust tests actually run in `deploy-gcp-tests.yml` (#4710)
- Copy lightwalletd from the correct path during Docker builds (#4886)
- Use FHS for deployments and artifacts (#4786)
- Retry gcloud authentication if it fails (#4940)
- Disable beta Rust tests and add parameter download logging (#4930)
- Do not run versioning job when pushing to main (#4970)
- Deploy long running node instances on release (#4939)
- Run build and test jobs on cargo and clippy config changes (#4941)
- Increase Mergify batch sizes (#4947)
#### Networking
- Send height to peers (#4904)
- Fix handshake timing and error handling (#4772)
#### Tests
- Show full Zebra test panic details in CI logs (#4942)
- Update timeout for Zebra sync tests (#4918)
- Improve test reliability and performance (#4869)
- Use `FuturesOrdered` in `fallback_verification` test (#4867)
- Skip some RPC tests when `ZEBRA_SKIP_NETWORK_TESTS` is set (#4849)
- Truncate the number of transactions in send transaction test (#4848)
## [Zebra 1.0.0-beta.13](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.13) - 2022-07-29

24
Cargo.lock generated
View File

@ -5453,7 +5453,7 @@ dependencies = [
[[package]]
name = "tower-batch"
version = "0.2.28"
version = "0.2.29"
dependencies = [
"color-eyre",
"ed25519-zebra",
@ -5477,7 +5477,7 @@ dependencies = [
[[package]]
name = "tower-fallback"
version = "0.2.28"
version = "0.2.29"
dependencies = [
"futures-core",
"pin-project 0.4.29",
@ -6307,7 +6307,7 @@ dependencies = [
[[package]]
name = "zebra-chain"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"aes",
"bech32",
@ -6371,7 +6371,7 @@ version = "1.0.0-beta.0"
[[package]]
name = "zebra-consensus"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"bellman",
"blake2b_simd 1.0.0",
@ -6415,7 +6415,7 @@ dependencies = [
[[package]]
name = "zebra-network"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"arti-client",
"bitflags",
@ -6453,14 +6453,14 @@ dependencies = [
[[package]]
name = "zebra-node-services"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"zebra-chain",
]
[[package]]
name = "zebra-rpc"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"chrono",
"futures",
@ -6489,7 +6489,7 @@ dependencies = [
[[package]]
name = "zebra-script"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"displaydoc",
"hex",
@ -6502,7 +6502,7 @@ dependencies = [
[[package]]
name = "zebra-state"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"bincode",
"chrono",
@ -6539,7 +6539,7 @@ dependencies = [
[[package]]
name = "zebra-test"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"color-eyre",
"futures",
@ -6566,7 +6566,7 @@ dependencies = [
[[package]]
name = "zebra-utils"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"color-eyre",
"hex",
@ -6582,7 +6582,7 @@ dependencies = [
[[package]]
name = "zebrad"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
dependencies = [
"abscissa_core",
"atty",

View File

@ -86,7 +86,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.13 zebrad`
3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.14 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).
@ -96,6 +96,7 @@ For more detailed instructions, refer to the [documentation](https://zebra.zfnd.
For performance reasons, some debugging and monitoring features are disabled in release builds.
You can [enable these features](https://doc.zebra.zfnd.org/zebrad/index.html#zebra-feature-flags) using:
```sh
cargo install --features=<name> ...
```
@ -103,6 +104,7 @@ cargo install --features=<name> ...
### System Requirements
The recommended requirements for compiling and running `zebrad` are:
- 4 CPU cores
- 16 GB RAM
- 300 GB available disk space for building binaries and storing cached chain state
@ -110,11 +112,13 @@ The recommended requirements for compiling and running `zebrad` are:
We continuously test that our builds and tests pass on:
The *latest* [GitHub Runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) for:
The _latest_ [GitHub Runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) for:
- macOS
- Ubuntu
Docker:
- Debian Bullseye
Zebra's tests can take over an hour, depending on your machine.
@ -142,6 +146,7 @@ macOS records these panics as crash reports.
If you are seeing "Crash Reporter" dialogs during Zebra tests,
you can disable them using this Terminal.app command:
```sh
defaults write com.apple.CrashReporter DialogType none
```
@ -149,6 +154,7 @@ defaults write com.apple.CrashReporter DialogType none
### Network Ports and Data Usage
By default, Zebra uses the following inbound TCP listener ports:
- 8233 on Mainnet
- 18233 on Testnet
@ -157,6 +163,7 @@ If this is a problem for you, please
[open a ticket.](https://github.com/ZcashFoundation/zebra/issues/new/choose)
`zebrad`'s typical mainnet network usage is:
- Initial sync: 100 GB download, we expect the initial download to grow to hundreds of gigabytes over time
- Ongoing updates: 10 MB - 10 GB upload and download per day, depending on user-created transaction size and peer requests
@ -192,37 +199,24 @@ So Zebra's state should always be valid, unless your OS or disk hardware is corr
## Known Issues
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
We are working on improving Zebra performance, the following are known issues:
- Send note commitment and history trees from the non-finalized state to the finalized state [#4824](https://github.com/ZcashFoundation/zebra/issues/4824)
- Speed up opening the database [#4822](https://github.com/ZcashFoundation/zebra/issues/4822)
- Revert note commitment and history trees when forking non-finalized chains [#4794](https://github.com/ZcashFoundation/zebra/issues/4794)
- Store only the first tree state in each identical series of tree states [#4784](https://github.com/ZcashFoundation/zebra/issues/4784)
RPCs might also be slower than they used to be, we need to check:
- Revert deserializing state transactions in rayon threads [#4831](https://github.com/ZcashFoundation/zebra/issues/4831)
Ongoing investigations:
- Find out which parts of CommitBlock/CommitFinalizedBlock are slow [#4823](https://github.com/ZcashFoundation/zebra/issues/4823)
- Mini-Epic: Stop tokio tasks running for a long time and blocking other tasks [#4747](https://github.com/ZcashFoundation/zebra/issues/4747)
- Investigate busiest tasks per tokio-console [#4583](https://github.com/ZcashFoundation/zebra/issues/4583)
## Future Work
Features:
- Wallet functionality
Performance and Reliability:
- Reliable syncing under poor network conditions
- Additional batch verification
- Performance tuning
Currently, the following features are out of scope:
- Mining support
- Optional Zcash network protocol messages
- Consensus rules removed before Canopy activation (Zebra checkpoints on Canopy activation)

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.13 zebrad`
3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.14 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
@ -20,27 +20,30 @@ that there is a lot of key functionality still missing.
If you're having trouble with:
Dependencies:
- use `cargo install` without `--locked` to build with the latest versions of each dependency
- **sqlite linker errors:** libsqlite3 is an optional dependency of the `zebra-network/tor` feature.
If you don't have it installed, you might see errors like `note: /usr/bin/ld: cannot find -lsqlite3`.
[Follow the arti instructions](https://gitlab.torproject.org/tpo/core/arti/-/blob/main/CONTRIBUTING.md#setting-up-your-development-environment)
to install libsqlite3, or use one of these commands instead:
```sh
cargo build
cargo build -p zebrad --all-features
```
Compilers:
- **clang:** install both `libclang` and `clang` - they are usually different packages
- **libclang:** check out the [clang-sys documentation](https://github.com/KyleMayes/clang-sys#dependencies)
- **g++ or MSVC++:** try using clang or Xcode instead
- **rustc:** use rustc 1.58 or later
- Zebra does not have a minimum supported Rust version (MSRV) policy yet
### Dependencies
Zebra primarily depends on pure Rust crates, and some Rust/C++ crates:
- [rocksdb](https://crates.io/crates/rocksdb)
- [zcash_script](https://crates.io/crates/zcash_script)

View File

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

View File

@ -1,6 +1,6 @@
[package]
name = "tower-fallback"
version = "0.2.28"
version = "0.2.29"
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.13"
version = "1.0.0-beta.14"
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.13"
version = "1.0.0-beta.14"
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.13"
version = "1.0.0-beta.14"
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.13/";
pub const USER_AGENT: &str = "/Zebra:1.0.0-beta.14/";
/// 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.13"
version = "1.0.0-beta.14"
edition = "2021"
repository = "https://github.com/ZcashFoundation/zebra"

View File

@ -1,6 +1,6 @@
[package]
name = "zebra-rpc"
version = "1.0.0-beta.13"
version = "1.0.0-beta.14"
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.13"
version = "1.0.0-beta.14"
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.13"
version = "1.0.0-beta.14"
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.13"
version = "1.0.0-beta.14"
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.13"
version = "1.0.0-beta.14"
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.13"
version = "1.0.0-beta.14"
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.