Zebra 1.9.0
This release includes deployment of NU6 on Testnet, configurable funding streams on custom Testnets, and updates Zebra's end-of-support (EoS) from 16 weeks to 10 weeks so that it will panic before the expected activation height of NU6 on Mainnet.
It also replaces the shielded-scan
compilation feature with a new zebra-scanner
binary, adds a TrustedChainSync
module for replicating Zebra's best chain state, and a gRPC server in zebra-rpc
as steps towards zcashd deprecation.
Recovering after finalizing a block from a chain fork
Zebra doesn't enforce an end-of-support height on Testnet, and previous versions of Zebra could mine or follow a chain fork that does not
activate NU6 on Testnet at height 2976000. Once a block from a fork is finalized in Zebra's state cache, updating to a version of Zebra that
does expect NU6 activation at that height will result in Zebra getting stuck, as it cannot rollback its finalized state. This can be resolved
by syncing Zebra from scratch, or by using the copy-state
command to create a new state cache up to height 2975999. To use the copy-state
command, first make a copy Zebra's Testnet configuration with a different cache directory path, for example, if Zebra's configuration is at the
default path, by running cp ~/.config/zebrad.toml ./zebrad-copy-target.toml
, then opening the new configuration file and editing the
cache_dir
path in the state
section. Once there's a copy of Zebra's configuration with the new state cache directory path, run:
zebrad copy-state --target-config-path "./zebrad-copy-target.toml" --max-source-height "2975999"
, and then update the original
Zebra configuration to use the new state cache directory.
Added
- A
zebra-scanner
binary replacing theshielded-scan
compilation feature inzebrad
(#8608) - Adds a
TrustedChainSync
module for keeping up with Zebra's non-finalized best chain from a separate process (#8596) - Add a tonic server in zebra-rpc with a
chain_tip_change()
method that notifies clients when Zebra's best chain tip changes (#8674) - NU6 network upgrade variant, minimum protocol version, and Testnet activation height (#8693, 8733, #8804)
- Configurable NU6 activation height on Regtest (#8700)
- Configurable Testnet funding streams (#8718)
- Post-NU6 funding streams, including a lockbox funding stream (#8694)
- Add value pool balances to
getblockchaininfo
RPC method response (#8769) - Add NU6 lockbox funding stream information to
getblocksubsidy
RPC method response (#8742)
Changed
- Reduce the end-of-support halt time from 16 weeks to 10 weeks (#8734)
- Bump the current protocol version from 170100 to 170110 (#8804)
- Track the balance of the deferred chain value pool (#8732, #8729)
- Require that coinbase transactions balance exactly after NU6 activation (#8727)
- Support in-place disk format upgrades for major database version bumps (#8748)
Fixed
- Return full network upgrade activation list in
getblockchaininfo
method (#8699) - Update documentation for the new
zebra-scanner
binary (#8675) - Update documentation for using Zebra with lightwalletd (#8714)
- Reduce debug output for Network on Regtest and default Testnet (#8760)
Contributors
Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@arya2, @conradoplg, @oxarbitrage, @therealyingtong and @upbqdn