diff --git a/CHANGELOG.md b/CHANGELOG.md index 80a1fbe6..1bbe8204 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,62 @@ All notable changes to Zebra will be 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-alpha.18](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-alpha.18) - 2021-10-05 + +Zebra's latest alpha updates dependencies, consensus parameters, and Orchard for NU5 testnet activation. +It continues our work on the mempool, including some mempool features that are used during network upgrade activation. + +### Added + +#### Mempool + +- Send crawled transaction IDs to the mempool downloader (#2801) +- Cancel mempool download tasks when a network upgrade activates (#2816) +- Send mined transaction IDs to the mempool download/verify task for cancellation (#2786) +- Remove expired transactions from the mempool (#2774) +- Cancel download and verify tasks when the mempool is deactivated (#2764, #2754) +- Reject mempool transactions with conflicting spends (#2765) +- Clear mempool at a network upgrade (#2773, #2785) + +#### Network Upgrade 5 + +- Update Zebra's advertised network protocol version to the latest NU5 testnet version (#2803) + +#### Testing and CI + +- Add tests to ensure mempool is working correctly (#2769, #2770, #2815) +- Create and use a helper MockService type to help with writing tests (#2810, #2748, #2790) +- Update Zebra tests to use the NU5 testnet activation height (#2802) +- Regenerate NU5 test cases with the latest network upgrade parameters (#2802) + +#### Metrics + +- Add Zebra metrics and a Grafana dashboard for connected peers and their network protocol versions (#2804, #2811) + +### Changed + +- Stop sending empty network messages to peers (#2791) +- Correctly validate transactions which never expire (#2782) + +#### Network Upgrade 5 + +- Update `zcash_script` dependency to support V5 transactions (#2825) +- Set the NU5 testnet activation network upgrade parameters (#2802) +- Update shared Zcash Rust NU5 dependencies (#2739) +- Update Zebra to use modified APIs in shared Zcash Rust NU5 dependencies (#2739) + +### Fixed + +- Stop panicking when using sync and async methods on the same `ChainTipChange` (#2800) +- Fix an incorrect assertion when the block locator is at the tip (#2789) +- Fix a missing NULL pointer check in `zebra_script`'s FFI (#2802) + +### Security + +#### Network Upgrade 5 + +- Update Zebra's orchard commitment calculations based on the latest orchard circuit (#2807) + ## [Zebra 1.0.0-alpha.17](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-alpha.17) - 2021-09-14 Zebra's latest alpha continues work on the mempool. diff --git a/Cargo.lock b/Cargo.lock index 2a35138d..73823c25 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3985,7 +3985,7 @@ dependencies = [ [[package]] name = "tower-batch" -version = "0.2.13" +version = "0.2.14" dependencies = [ "color-eyre", "ed25519-zebra", @@ -4005,7 +4005,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.11" +version = "0.2.12" dependencies = [ "futures-core", "pin-project 0.4.28", @@ -4752,7 +4752,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" dependencies = [ "aes 0.6.0", "bech32", @@ -4807,7 +4807,7 @@ version = "1.0.0-alpha.0" [[package]] name = "zebra-consensus" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" dependencies = [ "bellman", "blake2b_simd", @@ -4845,7 +4845,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" dependencies = [ "bitflags", "byteorder", @@ -4880,7 +4880,7 @@ version = "1.0.0-alpha.0" [[package]] name = "zebra-script" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" dependencies = [ "displaydoc", "hex", @@ -4893,7 +4893,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" dependencies = [ "bincode", "chrono", @@ -4927,7 +4927,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-alpha.14" +version = "1.0.0-alpha.15" dependencies = [ "color-eyre", "futures 0.3.17", @@ -4951,7 +4951,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" dependencies = [ "color-eyre", "hex", @@ -4966,7 +4966,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" dependencies = [ "abscissa_core", "atty", diff --git a/README.md b/README.md index 96032226..185c7c02 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Building `zebrad` requires [Rust](https://www.rust-lang.org/tools/install), 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-alpha.17 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-alpha.18 zebrad` 4. Run `zebrad start` If you're interested in testing out `zebrad` please feel free, but keep in mind diff --git a/tower-batch/Cargo.toml b/tower-batch/Cargo.toml index b11de579..cba6a3fe 100644 --- a/tower-batch/Cargo.toml +++ b/tower-batch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-batch" -version = "0.2.13" +version = "0.2.14" authors = ["Zcash Foundation "] license = "MIT" edition = "2018" diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index 0c4b0a18..0bae1ad7 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.11" +version = "0.2.12" authors = ["Zcash Foundation "] license = "MIT" edition = "2018" diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index 7a351d36..ff36a40d 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index f66ca927..c63abc21 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-network/Cargo.toml b/zebra-network/Cargo.toml index c3479414..e0f61d44 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-network/src/constants.rs b/zebra-network/src/constants.rs index b93328a2..27131236 100644 --- a/zebra-network/src/constants.rs +++ b/zebra-network/src/constants.rs @@ -106,7 +106,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-alpha.17/"; +pub const USER_AGENT: &str = "/Zebra:1.0.0-alpha.18/"; /// The Zcash network protocol version implemented by this crate, and advertised /// during connection setup. diff --git a/zebra-script/Cargo.toml b/zebra-script/Cargo.toml index c5cca82a..7f58aa71 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index 068998ac..0c694bf2 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-test/Cargo.toml b/zebra-test/Cargo.toml index 013e45a1..bd0e1920 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-alpha.14" +version = "1.0.0-alpha.15" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-utils/Cargo.toml b/zebra-utils/Cargo.toml index 6a90a002..ee6d7f40 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-alpha.17" +version = "1.0.0-alpha.18" edition = "2018" # Prevent accidental publication of this utility crate. publish = false diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index ec868813..888c2d45 100644 --- a/zebrad/Cargo.toml +++ b/zebrad/Cargo.toml @@ -2,7 +2,7 @@ name = "zebrad" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" -version = "1.0.0-alpha.17" +version = "1.0.0-alpha.18" edition = "2018" repository = "https://github.com/ZcashFoundation/zebra" # make `cargo run` use `zebrad` by default