diff --git a/CHANGELOG.md b/CHANGELOG.md index 656b00b8187..9e21b5c3544 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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.5](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.5) - 2022-02-18 + +Zebra's latest beta brings better networking, documents more consensus rules and +improves the CI pipelines. + + + +### Added + +- Estimate network chain tip height based on local node time and current best tip (#3492) +- Add extra integer lints, and partially fix some code (#3409) +- Prepare for changes in ZIP-244 (#3415, #3446) +- Support large block heights (#3401) +- Check coinbase data is at least 2 bytes long (#3542) +- Ignore non-verack and non-version messages in handshake (#3522) +- Allow forcing zebrad to use color output (#3547) + +#### Tests + +- Add a test for peerset broadcast panic (#3470) +- Add PeerSet readiness and request future cancel-safety tests (#3252) +- Add full chain synchronization acceptance tests (#3543) +- Add chain tip estimate test: log chain progress while Zebra is syncing (#3495) + +#### Networking + +- Avoid repeated requests to peers after partial responses or errors (#3505) +- Send notfound when Zebra doesn't have a block or transaction (#3466) +- Route peer requests based on missing inventory (#3465) +- Create an API for a missing inventory registry, but don't register any missing inventory yet (#3255) + +#### Documentation + +- Document consensus rules from 7.3 Spend Description Encoding and Consensus (#3575) +- Document second part of consensus rules from 7.6 Block Header Encoding and Consensus (#3566) +- Document consensus rules from 3.9 Nullifier Sets (#3521) +- Update README goals and performance troubleshooting (#3525) +- Document consensus rules from 4.5 Output Descriptions (#3462) +- Document shielded pools consensus rules from 7.1.2 Transaction Consensus Rules (#3486) +- Document Transaction encodings: sprout fields (#3499) +- Document Transaction encodings: transparent fields (#3498) +- Document Transaction encodings: orchard fields (#3507) +- Document Transaction encodings: sapling fields (#3501) +- Document Transaction encodings: header fields (#3491) +- Document consensus rules from 4.4 Spend Descriptions (#3460) +- Document consensus rules from 4.3 JoinSplit Descriptions (#3452) +- Document Transaction consensus rules: Size rules (#3461) +- Document Transaction consensus rules: Coinbase rules (#3464) +- Document Transaction consensus rules: Header rules (#3456) + +### Changed + +- Reduce log level of components (#3418, #3437) +- Change Type To Force Consensus Rule Validation (#3544) +- Split The Database Module (#3568) +- Dockerize Tests And Run Sync In Detached Mode (#3459) +- Improve Docker And Gcloud Usage Without Cloud Build (#3431) +- Make better use of variables, secrets and versions (#3393) + +### Removed + +- Remove founders reward code (#3430) + +### Fixed + +- Use the new `increase_nofile_limit` function from `rlimit` 0.7.0 (#3539) +- Generate Well-Formed Finalsaplingroot In Arbitrary Implementation (#3573) +- Rename some lightwalletd database types (#3567) + +#### Networking + +- Allow more inbound than outbound connections (#3527) +- Only send responded updates on handshake/ping/pong (#3463) +- Increase state concurrency and syncer lookahead (#3455) +- Add a send timeout to outbound peer messages (#3417) + +#### Tests + +- Make Full Sync Test More Accurate (#3555) +- Create Disk From Image Before Mounting (#3550) +- Simplify Resource Conflict Test To Avoid Ci Failures (#3537) +- Make Full Sync Test More Efficient (#3562) +- Evaluate "if" conditions correctly and use last disk SHA (#3556) + +#### CI + +- Improve test requirements and merge conditions for Mergify (#3580) +- Make The Purpose Of Each Sync Test Clearer (#3574) +- Delete A Redundant "Test All" Job (#3552) +- Allow Branches With Dots In The Name (#3557) +- Allow Unprivileged Runs Of Clippy (#3558) +- New Lints In Nightly Rust (#3541) +- Typo In Paths Filtering Keyword (#3516) +- Do Not Wait For Deprecated Cloud Build (#3509) +- Restrict Merges With Unresolved Threads (#3453) +- Put PRs With No Priority Label In The Low Priority Queue (#3454) +- Temporarily allow forked repos to run PR workflows (#3503) + ## [Zebra 1.0.0-beta.4](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-beta.4) - 2022-01-26 Zebra's latest beta improves the networking code and fixes some bugs. A couple of fixed bugs had diff --git a/Cargo.lock b/Cargo.lock index 78f8fe92858..0d5a21d2f86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4755,7 +4755,7 @@ dependencies = [ [[package]] name = "tower-batch" -version = "0.2.20" +version = "0.2.21" dependencies = [ "color-eyre", "ed25519-zebra", @@ -4775,7 +4775,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.16" +version = "0.2.17" dependencies = [ "futures-core", "pin-project 0.4.28", @@ -5450,7 +5450,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "aes", "bech32", @@ -5509,7 +5509,7 @@ version = "1.0.0-beta.0" [[package]] name = "zebra-consensus" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "bellman", "blake2b_simd", @@ -5551,7 +5551,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "arti-client", "bitflags", @@ -5590,7 +5590,7 @@ version = "1.0.0-beta.0" [[package]] name = "zebra-script" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "displaydoc", "hex", @@ -5603,7 +5603,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "bincode", "chrono", @@ -5637,7 +5637,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "color-eyre", "futures", @@ -5660,7 +5660,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "color-eyre", "hex", @@ -5675,7 +5675,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" dependencies = [ "abscissa_core", "atty", diff --git a/README.md b/README.md index b01f37996e8..f8060c9a8d8 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,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.4 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.5 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 @@ -202,8 +202,8 @@ So Zebra's state should always be valid, unless your OS or disk hardware is corr There are a few bugs in Zebra that we're still working on fixing: - [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 + - See [#2209](https://github.com/ZcashFoundation/zebra/issues/2209) for an example. + - These panics can be ignored, unless they happen frequently. - [Interrupt handler does not work when a blocking task is running #1351](https://github.com/ZcashFoundation/zebra/issues/1351) - Zebra should eventually exit once the task finishes. Or you can forcibly terminate the process. diff --git a/book/src/user/install.md b/book/src/user/install.md index b07b6f7b1c2..42f81e7d629 100644 --- a/book/src/user/install.md +++ b/book/src/user/install.md @@ -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.4 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-beta.5 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 diff --git a/tower-batch/Cargo.toml b/tower-batch/Cargo.toml index 5903f2c74eb..3e09905ad67 100644 --- a/tower-batch/Cargo.toml +++ b/tower-batch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-batch" -version = "0.2.20" +version = "0.2.21" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index d65df63e714..2483dd8c55b 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.16" +version = "0.2.17" authors = ["Zcash Foundation "] license = "MIT" edition = "2021" diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index 3652998f7bb..61067d70fb0 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index c6e129f3176..9f03bce302d 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-network/Cargo.toml b/zebra-network/Cargo.toml index 136cf5c66fb..69b4d5b9793 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-network/src/constants.rs b/zebra-network/src/constants.rs index 6c09ee61269..2c440dcbc30 100644 --- a/zebra-network/src/constants.rs +++ b/zebra-network/src/constants.rs @@ -231,7 +231,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.4/"; +pub const USER_AGENT: &str = "/Zebra:1.0.0-beta.5/"; /// 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 3280f44f890..6cc80a8ca80 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index 5ed401b8e23..76ad6706d26 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-test/Cargo.toml b/zebra-test/Cargo.toml index 08ac7e9dcfc..40bce0ca3dc 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-beta.4" +version = "1.0.0-beta.5" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2021" diff --git a/zebra-utils/Cargo.toml b/zebra-utils/Cargo.toml index 7b7ebe096c8..3968d2ced4b 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-beta.4" +version = "1.0.0-beta.5" edition = "2021" # Prevent accidental publication of this utility crate. publish = false diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index 2a59e81b5e4..79ea2e0cded 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-beta.4" +version = "1.0.0-beta.5" edition = "2021" repository = "https://github.com/ZcashFoundation/zebra" # make `cargo run` use `zebrad` by default