New Release 4.6.0-1

TL;DR: The 4.5.0, 4.5.1, and 4.5.1-1 zcashd nodes will reach End of Service on or about January 10th, 2022. Prior to that time, miners must upgrade to 4.6.0-1 and all other testnet and mainnet nodes should upgrade to either 4.6.0 or 4.6.0-1.

Notable changes

getblocktemplate regression fix

We added support for the NU5 consensus rules in v4.5.0, which alters the block header to contain a hashBlockCommitments value instead of the chain history root. However, the output of getblocktemplate wasn’t returning this value; once NU5 activated, the blockcommitmentshash field was being set to “null” (all-zeroes).

In v4.6.0 we added full NU5 support to getblocktemplate, by adding a defaultroots field that gave default values for hashBlockCommitments and the components required to derive it. However, in doing so we introduced a regression in the (now-deprecated) legacy fields, where prior to NU5 activation they contained nonsense.

This release fixes the output of getblocktemplate to have the intended semantics for all fields:

  • The blockcommitmentshash and authdataroot fields in defaultroots are now omitted from block templates for heights before NU5 activation.
  • The legacy fields now always contain the default value to be placed into the block header (regaining their previous semantics).