Skip to content

Zebra 6.2.1

Latest

Choose a tag to compare

@upbqdn upbqdn released this 22 Jul 19:09
f3edc40

Changed

  • On Testnet, the getblocktemplate RPC no longer switches to a
    minimum-difficulty block template early. Zebra previously treated a template
    as minimum-difficulty as soon as its cur_time came within a fixed 150
    seconds (2 * PoWTargetSpacing after Blossom) of the consensus
    minimum-difficulty threshold, clamping cur_time up to just past the
    threshold. On Testnet this future-dated the block's timestamp and produced
    spurious minimum-difficulty blocks that depress difficulty far below its
    equilibrium. Templates now switch to minimum difficulty only once cur_time
    reaches the consensus threshold itself. This is a Testnet-only,
    template-construction (non-consensus) change: it does not alter block
    validity, and it does not change the difficulty-averaging rule that amplifies
    each minimum-difficulty block into a large difficulty drop (tracked in
    zcash/zips#1321)
    (#10873)

Security

  • Allow chain synchronization to immediately retry an honest block body after rejecting a body
    with the same header hash, without waiting for a child block to trigger cleanup.
  • Mitigate a peer-driven CPU-exhaustion vector on nodes with NU6.3 (Ironwood) active: reject
    underpaying and structurally invalid shielded mempool transactions before their expensive proof
    verification, and disconnect peers that send transactions with invalid shielded proofs.