zcashd/doc/release-notes.md

114 lines
4.8 KiB
Markdown
Raw Normal View History

(note: this is a temporary file, to be added-to by anybody, and moved to
release-notes at release time)
Notable changes
===============
Fixes
-----
This release fixes an issue that could potentially cause a node to crash with the
log message "The wallet's best block hash `<hash>` was not detected in restored
chain state. Giving up; please restart with `-rescan`."
Transparent pool and chain supply tracking
------------------------------------------
Since v2.0.0, `zcashd` has tracked the change in value within the Sprout and
Sapling shielded pools for each block; v5.0.0 added the Orchard pool. This
release completes the set, by tracking the change in value within the
"transparent" pool (more precisely, the value stored in Bitcoin-style UTXOs).
`zcashd` also now tracks the change in "chain supply" for each block, defined as
the sum of coinbase output values, minus unclaimed fees. This is precisely equal
to the sum of the value in the transparent and shielded pools, and equivalent to
the sum of all unspent coins/notes on the chain. It is bounded above by the
theoretical maximum supply, but in practice is lower due to, for example, miners
not claiming transaction fees.
> Bitcoin-style consensus rules implement fees as an imbalance between spent
> coins/notes and newly-created coins/notes. The consensus rules require that a
> coinbase transaction's outputs have a total value no greater than the sum of
> that block's subsidy and the fees made available by the transactions in the
> block. However, the consensus rules do not require that all of the available
> funds are claimed, and a miner can create coinbase transactions with lower
> value in the outputs (though in the case of Zcash, the consensus rules do
> require the transaction to include [ZIP 1014](https://zips.z.cash/zip-1014)
> Funding Stream outputs).
After upgrading to v5.4.0, `zcashd` will start tracking changes in transparent
pool value and chain supply from the height at which it is restarted. Block
heights prior to this will not have any information recorded. To track changes
from genesis, and thus monitor the total transparent pool size and chain supply,
you would need to restart your node with the `-reindex` option.
Wallet Performance Fixes
------------------------
The 100MiB memory limit for the batch scanner has been replaced by a 1000-block
limit. This eliminates an expensive call to determine the current memory usage
of the batch scanner.
The following associated metric has been removed from the set of metrics
reported when `-prometheusport` is set:
- (gauge) `zcashd.wallet.batchscanner.usage.bytes`
2022-12-02 21:58:38 -08:00
RPC Changes
-----------
- `z_sendmany` will no longer select transparent coinbase when "ANY\_TADDR" is
used as the `fromaddress`. It was already documented to do this, but the
previous behavior didnt match. When coinbase notes were selected in this
case, they would (properly) require that the transaction didnt have any
change, but this could be confusing, as the documentation stated that these
two conditions (using "ANY\_TADDR" and disallowing change) wouldnt coincide.
- A new value pool object with `"id": "transparent"` has been added to the
`valuePools` list in `getblockchaininfo` and `getblock`.
- A new `chainSupply` key has been added to `getblockchaininfo` and `getblock`
to report the total chain supply as of that block height (if tracked), and the
change in chain supply caused by the block (for `getblock`, if measured).
Mining
-------
- Changes to `getblocktemplate` have been backported from upstream Bitcoin Core,
to significantly improve its performance by doing more work ahead of time in
the mempool (and reusing the work across multiple `getblocktemplate` calls).
[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:
- `gbt_oldhashes`: the `finalsaplingroothash`, `lightclientroothash`, and
`blockcommitmentshash` fields in the output of `getblocktemplate` have been
replaced by the `defaultroots` field.
The following previously-deprecated features have been disabled by default, and
will be removed in 18 weeks:
- `legacy_privacy`
- `getnewaddress`
- `getrawchangeaddress`
- `z_getnewaddress`
- `z_listaddresses`
- `addrtype`
- `wallettxvjoinsplit`
The following previously-deprecated features have been removed:
- `dumpwallet`
2022-12-02 21:25:07 -08:00
- `zcrawreceive`
- `zcrawjoinsplit`
- `zcrawkeygen`
Platform Support
----------------
- CentOS 8 has been removed from the list of supported platforms. It reached EoL
on December 31st 2021, and does not satisfy our Tier 2 policy requirements.