Release Zebra v1.0.0-beta.3 (#3256)
* Release Zebra v1.0.0-beta.3 * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> * Bump date * Add recently merged entry to changelog * Bump date, add recent merged PR to changelog * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> * Apply suggestions from code review Co-authored-by: teor <teor@riseup.net> Co-authored-by: teor <teor@riseup.net>
This commit is contained in:
parent
b71833292d
commit
a5713da0af
53
CHANGELOG.md
53
CHANGELOG.md
|
@ -4,6 +4,43 @@ 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.3](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.3) - 2021-12-21
|
||||
|
||||
Zebra's latest beta works towards enforcing all consensus rules by validating JoinSplit Groth16 proofs
|
||||
used by Sprout transactions. We have also added security and network improvements, and have also
|
||||
added some metrics to help diagnose networking issues.
|
||||
|
||||
### Added
|
||||
|
||||
#### Consensus
|
||||
|
||||
- Validate JoinSplit proofs (#3128, #3180)
|
||||
|
||||
#### Networking
|
||||
|
||||
- Add and use `debug_skip_parameter_preload` config option in tests (#3197)
|
||||
- Disconnect from outdated peers on network upgrade (#3108)
|
||||
|
||||
#### Metrics
|
||||
|
||||
- Add diagnostics for peer set hangs (#3203)
|
||||
- Add debug-level Zebra network message tracing (#3170)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Stop ignoring some connection errors that could make the peer set hang (#3200)
|
||||
- Spawn initial handshakes in separate tasks, Credit: Equilibrium (#3189)
|
||||
- Fix coinbase height deserialization to reject non-minimal encodings (#3129)
|
||||
- Stop doing thousands of time checks each time we connect to a peer (#3106)
|
||||
|
||||
### Security
|
||||
|
||||
- Stop ignoring panics in inbound handshakes (#3192)
|
||||
- When there are no new peers, stop crawler using CPU and writing logs (#3177)
|
||||
- Limit address book size to limit memory usage (#3162)
|
||||
- Drop blocks that are a long way ahead of the tip, or behind the finalized tip (#3167)
|
||||
|
||||
|
||||
## [Zebra 1.0.0-beta.2](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.2) - 2021-12-03
|
||||
|
||||
Zebra's latest beta continues implementing zero-knowledge proof and note commitment tree validation. In this release, we have finished implementing transaction header, transaction amount, and Zebra-specific NU5 validation. (NU5 mainnet validation is waiting on an `orchard` crate update, and some consensus parameter updates.)
|
||||
|
@ -12,41 +49,41 @@ We also fix a number of security issues that could pose a local denial of servic
|
|||
|
||||
As of this release, Zebra will automatically download and cache the Sprout and Sapling Groth16 circuit parameters. The cache uses around 1 GB of disk space. These cached parameters are shared across all Zebra and `zcashd` instances run by the same user.
|
||||
|
||||
## Added
|
||||
### Added
|
||||
|
||||
### Network Upgrade 5
|
||||
#### Network Upgrade 5
|
||||
|
||||
- Validate orchard anchors (#3084)
|
||||
|
||||
### Groth16 Circuit Parameters
|
||||
#### Groth16 Circuit Parameters
|
||||
|
||||
- Automatically download and cache Zcash Sapling and Sprout parameters (#3057, #3085)
|
||||
- Stop linking the Sapling parameters into the `zebrad` and Zebra test executables (#3057)
|
||||
|
||||
### Proof & Anchor Verification
|
||||
#### Proof & Anchor Verification
|
||||
|
||||
- Use prepared verifying key for non-batch Sapling Groth16 verification (#3092)
|
||||
- Validate sapling anchors⚓ (#3084)
|
||||
- Add Sprout anchors to `zebra-state` (#3100)
|
||||
|
||||
### Transaction Amount & Header Validation
|
||||
#### Transaction Amount & Header Validation
|
||||
|
||||
- Validate miner transaction fees (#3067, #3093)
|
||||
- Validate transaction lock times (#3060)
|
||||
- Validate transaction expiry height (#3082, #3103)
|
||||
|
||||
### Dashboards
|
||||
#### Dashboards
|
||||
|
||||
- Add transaction-verification.json Grafana dashboard (#3122)
|
||||
|
||||
## Fixed
|
||||
### Fixed
|
||||
|
||||
- Shut down channels and tasks on PeerSet Drop (#3078)
|
||||
- Re-order Zebra startup, so slow services are launched last (#3091)
|
||||
- Fix slow Zebra startup times, to reduce CI failures (#3104)
|
||||
- Speed up CI, and split unrelated and conflicting CI jobs (#3077)
|
||||
|
||||
## Security
|
||||
### Security
|
||||
|
||||
- Stop closing connections on unexpected messages, Credit: Equilibrium (#3120, #3131)
|
||||
- Stop routing inventory requests by peer address (#3090)
|
||||
|
|
|
@ -3665,7 +3665,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tower-batch"
|
||||
version = "0.2.18"
|
||||
version = "0.2.19"
|
||||
dependencies = [
|
||||
"color-eyre",
|
||||
"ed25519-zebra",
|
||||
|
@ -3685,7 +3685,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "tower-fallback"
|
||||
version = "0.2.14"
|
||||
version = "0.2.15"
|
||||
dependencies = [
|
||||
"futures-core",
|
||||
"pin-project 0.4.28",
|
||||
|
@ -4333,7 +4333,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zebra-chain"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"bech32",
|
||||
|
@ -4391,7 +4391,7 @@ version = "1.0.0-beta.0"
|
|||
|
||||
[[package]]
|
||||
name = "zebra-consensus"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"bellman",
|
||||
"blake2b_simd",
|
||||
|
@ -4433,7 +4433,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zebra-network"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"byteorder",
|
||||
|
@ -4469,7 +4469,7 @@ version = "1.0.0-beta.0"
|
|||
|
||||
[[package]]
|
||||
name = "zebra-script"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"displaydoc",
|
||||
"hex",
|
||||
|
@ -4482,7 +4482,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zebra-state"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"bincode",
|
||||
"chrono",
|
||||
|
@ -4516,7 +4516,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zebra-test"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"color-eyre",
|
||||
"futures",
|
||||
|
@ -4539,7 +4539,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zebra-utils"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"color-eyre",
|
||||
"hex",
|
||||
|
@ -4554,7 +4554,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "zebrad"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
dependencies = [
|
||||
"abscissa_core",
|
||||
"atty",
|
||||
|
|
|
@ -83,9 +83,6 @@ for all active consensus rules as of NU5 activation.
|
|||
|
||||
Currently, Zebra does not validate the following Zcash consensus rules:
|
||||
|
||||
#### NU1 - Sapling
|
||||
- Validation of Sprout JoinSplit-on-Groth16 proofs
|
||||
|
||||
#### Sprout
|
||||
- Validation of Sprout anchors (root of the Sprout note commitment tree)
|
||||
|
||||
|
@ -108,7 +105,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.2 zebrad`
|
||||
3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.3 zebrad`
|
||||
4. Run `zebrad start` (see [Running Zebra](user/run.md) for more information)
|
||||
|
||||
If you're interested in testing out `zebrad` please feel free, but keep in mind
|
||||
|
@ -186,9 +183,6 @@ See our [roadmap](#future-work) for details.
|
|||
## Known Issues
|
||||
|
||||
There are a few bugs in Zebra that we're still working on fixing:
|
||||
- [Zebra's address book can use all available memory #1873](https://github.com/ZcashFoundation/zebra/issues/1873)
|
||||
- [Zebra does not evict pre-upgrade peers from the peer set across a network upgrade #706](https://github.com/ZcashFoundation/zebra/issues/706)
|
||||
- [Zebra accepts non-minimal height encodings #2226](https://github.com/ZcashFoundation/zebra/issues/2226)
|
||||
- [In rare cases, Zebra panics on shutdown #1678](https://github.com/ZcashFoundation/zebra/issues/1678)
|
||||
- For examples, see [#2055](https://github.com/ZcashFoundation/zebra/issues/2055) and [#2209](https://github.com/ZcashFoundation/zebra/issues/2209)
|
||||
- These panics can be ignored, unless they happen frequently
|
||||
|
|
|
@ -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.1 zebrad`
|
||||
3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.3 zebrad`
|
||||
4. Run `zebrad start` (see [Running Zebra](user/run.md) for more information)
|
||||
|
||||
If you're interested in testing out `zebrad` please feel free, but keep in mind
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "tower-batch"
|
||||
version = "0.2.18"
|
||||
version = "0.2.19"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT"
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "tower-fallback"
|
||||
version = "0.2.14"
|
||||
version = "0.2.15"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT"
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "zebra-chain"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "zebra-consensus"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "zebra-network"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2018"
|
||||
|
|
|
@ -192,7 +192,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.2/";
|
||||
pub const USER_AGENT: &str = "/Zebra:1.0.0-beta.3/";
|
||||
|
||||
/// The Zcash network protocol version implemented by this crate, and advertised
|
||||
/// during connection setup.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "zebra-script"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "zebra-state"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2018"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[package]
|
||||
name = "zebra-test"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2018"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
name = "zebra-utils"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
edition = "2018"
|
||||
# Prevent accidental publication of this utility crate.
|
||||
publish = false
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
name = "zebrad"
|
||||
authors = ["Zcash Foundation <zebra@zfnd.org>"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
version = "1.0.0-beta.2"
|
||||
version = "1.0.0-beta.3"
|
||||
edition = "2018"
|
||||
repository = "https://github.com/ZcashFoundation/zebra"
|
||||
# make `cargo run` use `zebrad` by default
|
||||
|
|
Loading…
Reference in New Issue