Skip to content

Zebra 1.2.0

Compare
Choose a tag to compare
@github-actions github-actions released this 01 Sep 22:16
· 532 commits to main since this release
6f50304

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 previous zebrad 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 some z_gettreestate RPC requests with incorrect empty final_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