You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.