Zebra 1.2.0
Zebra 1.2.0 - 2023-09-01
Highlights
This release:
- Starts our work implementing "spend before sync" algorithm for lightwalletd.
- Contains an automatic database upgrade that reduces the size of Zebra's current cached state from approximately 276GB to 244GB. It does so by automatically pruning unneeded note commitment trees from an existing cache. New Zebra instances will also build their cache without these trees.
Breaking Changes
zebrad
1.2.0 cached states are incompatible with previous zebrad
versions:
zebrad
1.2.0 upgrades the cached state format. The new format is incompatible with previouszebrad
versions. After upgrading to this Zebra version, don't downgrade to an earlier version.- When earlier versions try to use states upgraded by
zebrad
1.2.0:zebrad
versions 1.0.0 and 1.0.1 will respond to somez_gettreestate
RPC requests with incorrect emptyfinal_state
fields- pre-release
zebrad
versions can panic when verifying shielded transactions, updating the state, or responding to RPC requests
Changed
- Deduplicate note commitment trees stored in the finalized state (#7312, #7379)
- Insert only the first tree in each series of identical trees into finalized state (#7266)
- Our testing framework now uses the ECC lightwalletd fork (#7307). This was needed to start the work of implementing fast spendability. The ECC repo is now the supported implementation in Zebra, documentation was changed to reflect this. (#7427)
Added
- Documentation for mining with Docker (#7179)
- Note tree sizes field to
getblock
RPC method (#7278) - Note commitment subtree types to zebra-chain (#7371)
- Note subtree index handling to zebra-state, but we're not writing subtrees to the finalized state yet (#7334)
Fixed
- Log a warning instead of panicking for unused mining configs (#7290)
- Avoid expensive note commitment tree root recalculations in eq() methods (#7386)
- Use the correct state version for databases without a state version file (#7385)
- Avoid temporary failures verifying the first non-finalized block or attempting to fork the chain before the final checkpoint (#6810)
- If a database format change is cancelled, also cancel the format check, and don't mark the database as upgraded (#7442)
Contributors
Thank you to everyone who contributed to this release, we couldn't make Zebra without you:
@arya2, @dconnolly, @gustavovalverde, @mpguerra, @oxarbitrage, @teor2345 and @upbqdn