Zebra 1.4.0
Zebra 1.4.0 - 2023-11-07
Zebra's mining RPCs are now available in release builds. Our Docker images are significantly
smaller, because the smaller Zcash verification parameters are now built into the zebrad
binary.
Zebra has updated to the shared Rust dependencies from the zcashd
5.7.0 release.
Zebra recovers better from brief network interruptions, and avoids some network and verification
denial of service and performance issues. We have restored our macOS tests in CI, and now support
macOS on a best-effort basis.
We have changed our documentation website URL, and we are considering deprecating some Docker image
tags in release 1.5.0 and later.
Deprecation Warnings
This release has the following deprecation warnings:
Warning: Deprecation of DockerHub Image Tags in a future release
Zebra currently publishes 11 DockerHub tags for each new release.
We want to reduce the number of DockerHub tags we publish in a future minor Zebra release.
Based on usage and user feedback, we could stop publishing:
- The
1
tag, which updates each release until NU6 - The
1.x
tag, which updates each patch release until the next minor release - The
1.x.y
tag, which is the same asv1.x.y
- The
sha-xxxxxxx
tag, which is the same asv1.x.y
(for production releases)
We also want to standardise experimental image tags to -experimental
, rather than .experimental
.
So for release 1.5.0, we might only publish these tags:
latest
latest-experimental
(a new tag)v1.5.0
v1.5.0-experimental
Please let us know if you need any other tags by opening a GitHub ticket.
We recommend using the latest
tag to always get the most recent Zebra release.
Warning: Documentation Website URL Change
We have replaced the API documentation on the doc.zebra.zfnd.org
website with docs.rs. All links have been updated.
Zebra's API documentation can be found on:
docs.rs
, which renders documentation for the
public API of the latest crate releases;doc-internal.zebra.zfnd.org
, which renders
documentation for the internal API on themain
branch.
doc.zebra.zfnd.org stopped being updated a few days before this release,
and it will soon be shut down.
Significant Changes
This release contains the following significant changes:
Mining RPCs in Production Builds
Zebra's mining RPCs are now available in release builds (#7740). Any Zebra instance can be used
by a solo miner or mining pool. This stabilises 12 RPCs, including getblocktemplate
, submitblock
,
getmininginfo
, getnetworksolps
, [z_]validateaddress
and getblocksubsidy
. For more information,
read our mining blog post.
Please let us know
if your mining pool needs extra RPC methods or fields.
Zcash Parameters in zebrad
Binary
zebrad
now bundles zk-SNARK parameters directly into its binary. This increases the binary size
by a few megabytes, but reduces the size of the Docker image by around 600 MB because
the parameters don't contain the Sprout proving key anymore. The zebrad download
command does nothing, so it has been removed.
Previously, parameters were stored by default in these locations:
~/.zcash-params
(on Linux); or~/Library/Application Support/ZcashParams
(on Mac); orC:\Users\Username\AppData\Roaming\ZcashParams
(on Windows)
If you have upgraded zebrad
to 1.4.0 or later, and zcashd
to 5.7.0 or later, you can delete the
parameter files in these directories to save approximately 700 MB disk space.
zcashd
have deprecated their fetch-params.sh
script,
so it can't be used to retry failed downloads in zebrad
1.3.0 and earlier.
We recommend upgrading to the latest Zebra release to avoid download issues in new installs.
macOS Support
macOS x86_64 is now supported on a best-effort basis. macOS builds and some tests run in Zebra's CI.
Security
- Reconnect with peers after brief network interruption (#7853)
- Add outer timeouts for critical network operations to avoid hangs (#7869)
- Set iterator read bounds where possible in DiskDb, to avoid a known RocksDB denial of service issue (#7731, #7732)
- Fix concurrency issues in tree key formats, and CPU usage in genesis tree roots (#7392)
Removed
- Remove the
zebrad download
command, because it no longer does anything (#7819)
Added
- Enable mining RPCs by default in production builds (#7740)
- Re-enable macOS builds and tests in CI (#7834)
- Make macOS x86_64 a tier 2 supported platform in the docs (#7843)
- Add macOS M1 as a tier 3 supported platform (#7851)
Changed
- Build Sprout and Sapling parameters into the zebrad binary, so a download server isn't needed (#7800, #7844)
- Bump ECC dependencies for
zcashd
5.7.0 (#7784) - Refactor the installation instructions for the
s-nomp
mining pool software (#7835)
Fixed
- Make the
latest
Docker tag point to the production build, rather than the build with experimental features (#7817) - Fix an incorrect consensus-critical ZIP 212 comment (#7774)
- Fix broken links to
zebra_network
andzebra_state
Config
structs on doc-internal.zebra.zfnd.org (#7838)
Contributors
Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@arya2, @gustavovalverde, @mpguerra, @oxarbitrage, @rex4539, @teor2345, @upbqdn, and @vuittont60.