diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bbe8204..3aa4e577 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,89 @@ # CHANGELOG -All notable changes to Zebra will be documented in this file. +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-alpha.19](https://github.com/ZcashFoundation/zebra/releases/tag/v1.0.0-alpha.19) - 2021-10-19 + +Zebra's latest alpha updates dependencies, improves metrics, gossips verified blocks and transactions, and continues the mempool-related implementation. + +### Added + +- Ignore `AlreadyInChain` error in the syncer (#2890) +- Give more information to the user in the wrong port init warning (#2853) +- Send looked up UTXOs to the transaction verifier (#2849) +- Return the transaction fee from the transaction verifier (#2876) +- Gossip recently verified block hashes to peers (#2729) +- Compute the serialized transaction size of unmined transactions (#2824) + +#### Mempool + +- Add a queue checker task, to make sure mempool transactions propagate (#2888) +- Store the transaction fee in the mempool storage (#2885) +- Add a debug config that enables the mempool (#2862) +- Pass the mempool config to the mempool (#2861) +- Add expired transactions to the mempool rejected list (#2852) +- Send AdvertiseTransactionIds to peers (#2823) +- Add a mempool config section (#2845) +- Add transactions that failed verification to the mempool rejected list (#2821) +- Un-reject mempool transactions if the rejection depends on the current tip + (#2844) +- Split storage errors by match type: TXID or WTXID (#2833) +- Remove transactions in newly committed blocks from the mempool (#2827) + +#### Documentation + +- Improve the template for release versioning (#2906) +- Improve the documentation for the mempool transaction downloader (#2879) +- Add the documentation for the mempool storage and gossip modules (#2884) + +#### Network Upgrade 5 + +- Set the minimum testnet network protocol version to NU5 (#2851) + +#### Testing and CI + +- Add some additional checks to the acceptance mempool test (#2880) + +#### Metrics + +- Refactor and add some new mempool metrics (#2878) +- Improve logging for initial peer connections (#2896) +- Always zero the mempool metrics when the mempool is disabled (#2875) +- Add a basic mempool storage Grafana dashboard (#2866) +- Add zcash.mempool.size.transactions and zcash.mempool.size.bytes metrics + (#2860) +- Make some grafana labels shorter for graph readability (#2850) +- Make block metrics more accurate (#2835) + +### Changed + +#### Mempool + +- Avoid broadcasting mempool rejected or expired transactions to peers (#2858) +- Encapsulate some mempool functions with the Mempool type (#2872) +- Remove duplicate IDs in mempool requests and responses (#2887) +- Refactor mempool spend conflict checks to increase performance (#2826) +- Rename mempool storage methods by match type (#2841) +- Remove unused mempool errors (#2831) + +### Fixed + +- Fix synchronization delay issue (#2921) +- Fix test failures by flushing output streams before exiting Zebra (#2911, #2923) +- Increase Zebra's restart acceptance test timeout (#2910) +- Avoid spurious acceptance test failures by decreasing the peer crawler timeout (#2905) +- Cancel pending download tasks when the mempool is disabled (#2886) +- Stop allowing some newly mined transactions into the mempool (#2874) +- Stop panicking when pruning unused queued blocks (#2842) + +### Security + +- Upgrade to ed25519-zebra 3.0.0 (#2864) +- Stop ignoring the mempool conflicting transaction reject list size limit (#2855) + + ## [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. diff --git a/Cargo.lock b/Cargo.lock index 85abab30..2ac208e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3986,7 +3986,7 @@ dependencies = [ [[package]] name = "tower-batch" -version = "0.2.14" +version = "0.2.15" dependencies = [ "color-eyre", "ed25519-zebra", @@ -4006,7 +4006,7 @@ dependencies = [ [[package]] name = "tower-fallback" -version = "0.2.12" +version = "0.2.13" dependencies = [ "futures-core", "pin-project 0.4.28", @@ -4753,7 +4753,7 @@ dependencies = [ [[package]] name = "zebra-chain" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" dependencies = [ "aes 0.6.0", "bech32", @@ -4808,7 +4808,7 @@ version = "1.0.0-alpha.0" [[package]] name = "zebra-consensus" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" dependencies = [ "bellman", "blake2b_simd", @@ -4846,7 +4846,7 @@ dependencies = [ [[package]] name = "zebra-network" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" dependencies = [ "bitflags", "byteorder", @@ -4881,7 +4881,7 @@ version = "1.0.0-alpha.0" [[package]] name = "zebra-script" -version = "1.0.0-alpha.19" +version = "1.0.0-alpha.20" dependencies = [ "displaydoc", "hex", @@ -4894,7 +4894,7 @@ dependencies = [ [[package]] name = "zebra-state" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" dependencies = [ "bincode", "chrono", @@ -4928,7 +4928,7 @@ dependencies = [ [[package]] name = "zebra-test" -version = "1.0.0-alpha.15" +version = "1.0.0-alpha.16" dependencies = [ "color-eyre", "futures 0.3.17", @@ -4952,7 +4952,7 @@ dependencies = [ [[package]] name = "zebra-utils" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" dependencies = [ "color-eyre", "hex", @@ -4967,7 +4967,7 @@ dependencies = [ [[package]] name = "zebrad" -version = "1.0.0-alpha.18" +version = "1.0.0-alpha.19" dependencies = [ "abscissa_core", "atty", diff --git a/README.md b/README.md index 185c7c02..63e73678 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.18 zebrad` +3. Run `cargo install --locked --git https://github.com/ZcashFoundation/zebra --tag v1.0.0-alpha.19 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 bc598f0a..4af0cc99 100644 --- a/tower-batch/Cargo.toml +++ b/tower-batch/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-batch" -version = "0.2.14" +version = "0.2.15" authors = ["Zcash Foundation "] license = "MIT" edition = "2018" diff --git a/tower-fallback/Cargo.toml b/tower-fallback/Cargo.toml index 0bae1ad7..c4dd50fe 100644 --- a/tower-fallback/Cargo.toml +++ b/tower-fallback/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "tower-fallback" -version = "0.2.12" +version = "0.2.13" authors = ["Zcash Foundation "] license = "MIT" edition = "2018" diff --git a/zebra-chain/Cargo.toml b/zebra-chain/Cargo.toml index 6bf3faba..5b1e3bb3 100644 --- a/zebra-chain/Cargo.toml +++ b/zebra-chain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-chain" -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-consensus/Cargo.toml b/zebra-consensus/Cargo.toml index 7d812a79..f3ecf5ae 100644 --- a/zebra-consensus/Cargo.toml +++ b/zebra-consensus/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-consensus" -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-network/Cargo.toml b/zebra-network/Cargo.toml index e0f61d44..49a1bb47 100644 --- a/zebra-network/Cargo.toml +++ b/zebra-network/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-network" -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-network/src/constants.rs b/zebra-network/src/constants.rs index 2fc09357..c798a95c 100644 --- a/zebra-network/src/constants.rs +++ b/zebra-network/src/constants.rs @@ -109,7 +109,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.18/"; +pub const USER_AGENT: &str = "/Zebra:1.0.0-alpha.19/"; /// 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 dddad5fd..68518866 100644 --- a/zebra-script/Cargo.toml +++ b/zebra-script/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-script" -version = "1.0.0-alpha.19" +version = "1.0.0-alpha.20" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-state/Cargo.toml b/zebra-state/Cargo.toml index aeb06d25..b8790991 100644 --- a/zebra-state/Cargo.toml +++ b/zebra-state/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-state" -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-test/Cargo.toml b/zebra-test/Cargo.toml index 4c2ce515..f227158b 100644 --- a/zebra-test/Cargo.toml +++ b/zebra-test/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zebra-test" -version = "1.0.0-alpha.15" +version = "1.0.0-alpha.16" authors = ["Zcash Foundation "] license = "MIT OR Apache-2.0" edition = "2018" diff --git a/zebra-utils/Cargo.toml b/zebra-utils/Cargo.toml index 2ec85023..facba1d0 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.18" +version = "1.0.0-alpha.19" edition = "2018" # Prevent accidental publication of this utility crate. publish = false diff --git a/zebrad/Cargo.toml b/zebrad/Cargo.toml index 082b2c4b..6b4019cc 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.18" +version = "1.0.0-alpha.19" edition = "2018" repository = "https://github.com/ZcashFoundation/zebra" # make `cargo run` use `zebrad` by default