Zcashd release version 5.9.0
Zcashd release candidate v5.9.0-rc1
Zcashd release version 5.9.1
Notable Changes
===============
- This release adds a `z_converttex` RPC method to support conversion of transparent
p2pkh addresses to the ZIP 320 (TEX) format.
- zcashd will now disconnect from a peer on receipt of a malformed `version`
message, and also will reject duplicate `verack` messages from outbound
connections. See https://github.com/zcash/zcash/pull/6781 for additional
details.
Zcashd release candidate v5.9.1-rc1
Zcashd hotfix release version 5.6.1
Notable changes
===============
Fixes
-----
Fixes an issue introduced in v5.6.0 that could cause loss of data from the
wallet's Orchard note commitment tree. Users upgrading directly from v5.5.0
should upgrade directly to v5.6.1. Wallets that were previously upgraded to
v5.6.0 whose wallets contained unspent Orchard notes at the time of the upgrade
will be automatically re-scanned on startup to repair the corrupted note
commitment tree.
Also, the `height` parameter to the `getblocksubsidy` RPC call had accidentally
been made required instead of optional as part of the v5.5.0 upgrade. This
hotfix restores `height` to being treated as an optional parameter.
Zcashd release version 5.7.0
Notable changes
===============
Deprecation of `fetch-params.sh`
--------------------------------
The `fetch-params.sh` script (also `zcash-fetch-params`) is now deprecated. The
`zcashd` binary now bundles zk-SNARK parameters directly and so parameters do not
need to be downloaded or stored separately. The script will now do nothing but
state that it is deprecated; it will be removed in a future release.
Previously, parameters were stored by default in these locations:
* `~/.zcash-params` (on Linux); or
* `~/Library/Application Support/ZcashParams` (on Mac); or
* `C:\Users\Username\AppData\Roaming\ZcashParams` (on Windows)
Unless you need to generate transactions using the deprecated Sprout shielded
pool, you can delete the parameter files stored in these directories to save
space as they are no longer read or used by `zcashd`. If you do wish to use the
Sprout pool, you will need the `sprout-groth16.params` file in the
aforementioned directory. This file is currently available for download
[here](https://download.z.cash/downloads/sprout-groth16.params).
Mempool metrics
---------------
`zcashd` now reports the following new metrics when `-prometheusport` is set:
- (gauge) `zcash.mempool.actions.unpaid { "bk" = ["< 0.2", "< 0.4", "< 0.6", "< 0.8", "< 1"] }`
- (gauge) `zcash.mempool.actions.paid`
- (gauge) `zcash.mempool.size.weighted { "bk" = ["< 1", "1", "> 1", "> 2", "> 3"] }`
The `zcash.mempool.actions` metrics count the number of [logical actions] across
the transactions in the mempool, while `zcash.mempool.size.weighted` is a
weight-bucketed version of the `zcash.mempool.size.bytes` metric.
The [ZIP 317 weight ratio][weight_ratio] of a transaction is used to bucket its
logical actions and byte size. A weight ratio of at least 1 means that the
transaction's fee is at least the ZIP 317 conventional fee, and all of its
logical actions are considered "paid". A weight ratio lower than 1 corresponds
to the fraction of the transaction's logical actions that are "paid". The
remaining fraction (i.e. 1 - weight ratio) are subject to the unpaid action
limit that miners configure for their blocks with `-blockunpaidactionlimit`.
[logical actions]: https://zips.z.cash/zip-0317#fee-calculation
[weight_ratio]: https://zips.z.cash/zip-0317#recommended-algorithm-for-block-template-construction
Zcashd release candidate v5.7.0-rc1
Zcashd release version 5.8.0
This is a maintenance release that updates dependencies and sets a new
end-of-service height to help ensure continuity of services.
Zcashd release candidate v5.8.0-rc1
Zcashd release candidate v5.5.0-rc3
Zcashd release v5.6.0-gitian
This release corrects a build configuration error in v5.6.0 that
prevented the `gitian` builds from creating reproducible binaries.
Zcashd release candidate v5.6.0-rc1
zcashd release 5.4.2
Notable changes
===============
This hotfix remediates memory exhaustion vulnerabilities that zcashd inherited
as a fork of bitcoind. These bugs could allow an attacker to use peer-to-peer
messages to fill the memory of a node, resulting in a crash.
Zcashd release v5.5.0
Notable changes
===============
RPC Changes
-----------
- `getdeprecationinfo` has several changes:
- It now returns additional information about currently deprecated and
disabled features.
- A new `end_of_service` object that contains both the block height for
end-of-service and the estimated time that the end-of-service halt is
expected to occur. Note that this height is just an approximation and
will change over time as the end-of-service block height approaches,
due to the variability in block times. The
`end_of_service` object is intended to replace the `deprecationheight`
field; see the [Deprecations](#deprecations) section for additional detail.
- This RPC method was previously only available for mainnet nodes; it is now
also available for testnet and regtest nodes, in which case it does not
return end-of-service halt information (as testnet and regtest nodes do not
have an end-of-service halt feature.)
- Several `z_sendmany`, `z_shieldcoinbase` and `z_mergetoaddress` failures have
moved from synchronous to asynchronous, so while you should already be
checking the async operation status, there are now more cases that may trigger
failure at that stage.
- The `AllowRevealedRecipients` privacy policy is now required in order to choose a
transparent change address for a transaction. This will only occur when the wallet
is unable to construct the transaction without selecting funds from the transparent
pool, so the impact of this change is that for such transactions, the user must specify
`AllowFullyTransparent`.
- The `z_shieldcoinbase` RPC method now supports an optional memo.
- The `z_shieldcoinbase` and `z_mergetoaddress` RPC methods now support an
optional privacy policy.
- The `z_mergetoaddress` RPC method can now merge _to_ UAs and can also send
between different shielded pools (when `AllowRevealedAmounts` is specified).
- The `estimatepriority` RPC call has been removed.
- The `priority_delta` argument to the `prioritisetransaction` RPC call now has
no effect and must be set to a dummy value (0 or null).
Changes to Transaction Fee Selection
------------------------------------
- The zcashd wallet now uses the conventional transaction fee calculated according
to [ZIP 317](https://zips.z.cash/zip-0317) by default. This conventional fee
will be used unless a fee is explicitly specified in an RPC call, or for the
wallet's legacy transaction creation APIs (`sendtoaddress`, `sendmany`, and
`fundrawtransaction`) when the `-paytxfee` option is set.
- The `-mintxfee` and `-sendfreetransactions` options have been removed. These
options previously instructed the legacy transaction creation APIs to increase
fees to this limit and to use a zero fee for "small" transactions that spend
"old" inputs, respectively. They will now cause a warning on node startup if
used.
Changes to Block Template Construction
--------------------------------------
We now use a new block template construction algorithm documented in
[ZIP 317](https://zips.z.cash/zip-0317#recommended-algorithm-for-block-template-construction).
- This algorithm no longer favours transactions that were previously considered
"high priority" because they spent older inputs. The `-blockprioritysize` config
option, which configured the portion of the block reserved for these transactions,
has been removed and will now cause a warning if used.
- The `-blockminsize` option, which configured the size of a portion of the block
to be filled regardless of transaction fees or priority, has also been removed
and will cause a warning if used.
- A `-blockunpaidactionlimit` option has been added to control the limit on
"unpaid actions" that will be accepted in a block for transactions paying less
than the ZIP 317 fee. This defaults to 50.
Change to Transaction Relay Policy
----------------------------------
The allowance for "free transactions" in mempool acceptance and relay has been
removed. All transactions must pay at least the minimum relay threshold, currently
100 zatoshis per 1000 bytes up to a maximum of 1000 zatoshis, in order to be
accepted and relayed. (Individual nodes can change this using `-minrelaytxfee`
but in practice the network default needs to be adhered to.) This policy is under
review and [might be made stricter](https://zips.z.cash/zip-0317#transaction-relaying);
if that happens then the ZIP 317 conventional fee will still be sufficient for
mempool acceptance and relay.
Removal of Priority Estimation
------------------------------
Estimation of "priority" needed for a transaction to be included within a target
number of blocks, and the associated `estimatepriority` RPC call, have been
removed. The format for `fee_estimates.dat` has also changed to no longer save
these priority estimates. It will automatically be converted to the new format
which is not readable by prior versions of the software. The `-txconfirmtarget`
config option is now obsolete and has also been removed. It will cause a
warning if used.
[Deprecations](https://zcash.github.io/zcash/user/deprecation.html)
--------------
The following features have been deprecated, but remain available by default.
These features may be disabled by setting `-allowdeprecated=none`. 18 weeks
after this release, these features will be disabled by default and the following
flags to `-allowdeprecated` will be required to permit their continued use:
- `deprecationinfo_deprecationheight`: The `deprecationheight` field of
`getdeprecationinfo` has been deprecated and replaced by the `end_of_service`
object.
Zcashd release candidate v5.5.0-rc1
Zcashd release candidate v5.5.0-rc2