Updates for zebra v1.0.0-beta.1 release (#3073)

* Update versions for zebra v1.0.0-beta.1 release

* Adding original PR list for comparison and tracking as PRs merge

* First pass at categorising changes

* Merge and clarify description of related changes

* Remove or merge trivial changes

* Improve change descriptions

* Add new PRs merged

* CHANGELOG: Improve release summary

* CHANGELOG: categorise changes further

* README: Remove resolved issues and items

* Update CHANGELOG.md

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

* CHANGELOG: Add new PRs merged

* CHANGELOG: Move change category

* CHANGELOG: Update release date ready for tagging

Co-authored-by: teor <teor@riseup.net>
This commit is contained in:
Pili Guerra 2021-11-19 13:05:11 +01:00 committed by GitHub
parent 09c788d03e
commit 26b3a50e01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 74 additions and 31 deletions

View File

@ -4,6 +4,56 @@ 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.1](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.1) - 2021-11-19
Zebra's latest beta implements a number of consensus rules which will be needed for Zebra to fully validate all of the Zcash network consensus rules, including those which will activate with NU5.
With this release we are also fixing a number of security issues that could pose a DDoS risk or otherwise negatively impact other nodes on the network.
Finally, this release includes an upgrade to the latest version of tokio (1.14.0).
### Added
- Check Shielded Input and Output Limits (#3069, #3076)
- Sprout note commitment trees (#3051)
- Check per-block limits on transparent signature operations (#3049)
- Calculate Block Subsidy and Funding Streams (#3017, #3040)
- Check for duplicate crate dependencies in CI (#2986)
- Add unused seed peers to the Address Book (#2974, #3019)
#### Network Upgrade 5
- Verify Halo2 proofs as part of V5 transaction verification (#2645, #3039)
- ZIP-155: Parse `addrv2` in Zebra (#3008, #3014, #3020, #3021, #3022, #3032)
- ZIP 212: validate Sapling and Orchard output of coinbase transactions (#3029)
- Validate Orchard flags in v5 (#3035)
#### Documentation
- Mempool Documentation (#2978)
### Changed
- Upgrade cryptographic library dependencies (#3059)
- Upgrade to Tokio 1.14.0 (#2933, #2994, #3062)
#### Documentation
- README Updates (#2996, #3006)
### Fixed
- Stop downloading unnecessary blocks in Zebra acceptance tests (#3072)
- Implement graceful shutdown for the peer set (#3071)
- Check for panics in the address book updater task (#3064)
- Remove unused connection errors (#3054)
- Fix listener address conflicts in network tests (#3031)
### Security
- Security: Avoid reconnecting to peers that are likely unreachable (#3030)
- Security: Limit number of addresses sent to peers to avoid address book pollution (#3007)
## [Zebra 1.0.0-beta.0](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.0) - 2021-10-29
This is the first beta release of Zebra. Today the mempool work is fully finished and compatible with [ZIP-401](https://zips.z.cash/zip-0401) and several security issues in the network stack are fixed. In addition to that we improved our documentation specially in the `zebrad` crate while we increased our test coverage. Finally, we get started with the task of upgrading Tokio to version 1.

20
Cargo.lock generated
View File

@ -3617,7 +3617,7 @@ dependencies = [
[[package]]
name = "tower-batch"
version = "0.2.16"
version = "0.2.17"
dependencies = [
"color-eyre",
"ed25519-zebra",
@ -3637,7 +3637,7 @@ dependencies = [
[[package]]
name = "tower-fallback"
version = "0.2.13"
version = "0.2.14"
dependencies = [
"futures-core",
"pin-project 0.4.28",
@ -4307,7 +4307,7 @@ dependencies = [
[[package]]
name = "zebra-chain"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"aes",
"bech32",
@ -4365,7 +4365,7 @@ version = "1.0.0-beta.0"
[[package]]
name = "zebra-consensus"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"bellman",
"blake2b_simd",
@ -4406,7 +4406,7 @@ dependencies = [
[[package]]
name = "zebra-network"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"bitflags",
"byteorder",
@ -4442,7 +4442,7 @@ version = "1.0.0-beta.0"
[[package]]
name = "zebra-script"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"displaydoc",
"hex",
@ -4455,7 +4455,7 @@ dependencies = [
[[package]]
name = "zebra-state"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"bincode",
"chrono",
@ -4489,7 +4489,7 @@ dependencies = [
[[package]]
name = "zebra-test"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"color-eyre",
"futures",
@ -4512,7 +4512,7 @@ dependencies = [
[[package]]
name = "zebra-utils"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"color-eyre",
"hex",
@ -4527,7 +4527,7 @@ dependencies = [
[[package]]
name = "zebrad"
version = "1.0.0-beta.0"
version = "1.0.0-beta.1"
dependencies = [
"abscissa_core",
"atty",

View File

@ -84,16 +84,12 @@ all applicable consensus rules as of NU5 activation.
Currently, Zebra does not validate the following Zcash consensus rules:
#### NU5
- ZIP-155 - Parse addrv2 in Zebra
- Full validation of Orchard transactions from NU5 onwards
- Check that at least one of enableSpendsOrchard or enableOutputsOrchard is set
- Validation of Orchard anchors (root of the Orchard note commitment tree)
- Validation of Halo2 proofs
#### NU4 - Canopy
- Calculation of Block Subsidy and Funding streams
- Validation of coinbase miner subsidy and miner fees
- Validation of shielded outputs for coinbase transactions (ZIP-212/ZIP-213)
#### NU1 - Sapling
- Validation of Sapling anchors (root of the Sapling note commitment tree)
@ -126,7 +122,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.0 zebrad`
3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.1 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
@ -201,12 +197,9 @@ See our [roadmap](#future-work) for details.
There are a few bugs in Zebra that we're still working on fixing:
- [When Zebra receives an unexpected network message from a peer, it disconnects from that peer #2107](https://github.com/ZcashFoundation/zebra/issues/2107)
- [A Zebra instance could be used to pollute the peer addresses of other nodes #1889](https://github.com/ZcashFoundation/zebra/issues/1889)
- [Zebra's address book can use all available memory #1873](https://github.com/ZcashFoundation/zebra/issues/1873)
- [Zebra's address book can be flooded or taken over #1869](https://github.com/ZcashFoundation/zebra/issues/1869)
- [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)
- [Zebra nodes continually try to contact peers that always fail #1865](https://github.com/ZcashFoundation/zebra/issues/1865)
- [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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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.0"
version = "1.0.0-beta.1"
edition = "2018"
# 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.0"
version = "1.0.0-beta.1"
edition = "2018"
repository = "https://github.com/ZcashFoundation/zebra"
# make `cargo run` use `zebrad` by default