mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-11 04:12:36 -03:00
986003aff9
5c34507ecb
core_write: Rename calculate_fee to have_undo for clarity (fyquah)8edf6204a8
release-notes: Add release note about getblock verbosity level 3. (fyquah)459104b2aa
rest: Add test for prevout fields in getblock (fyquah)4330af6f72
rpc: Add test for level 3 verbosity getblock rpc call. (fyquah)51dbc167e9
rpc: Add level 3 verbosity to getblock RPC call. (fyquah)3cc95345ca
rpc: Replace boolean argument for tx details with enum class. (fyquah) Pull request description: Author of #21245 expressed [time issues](https://github.com/bitcoin/bitcoin/pull/21245#issuecomment-902332088) in the original PR. Given that #21245 has received a lot of review*, I have decided to open this new pull request with [modifications required to get ACK from luke-jr ](https://github.com/bitcoin/bitcoin/pull/21245#issuecomment-905150806) and a few nits of mine. ### Original PR description > Display the prevout in transaction inputs when calling getblock level 3 verbosity. This PR affects the existing `/rest/block` API by adding a `prevout` fields to tx inputs. This is mentioned in the change to the release notes. > > I added some functional tests that > > * checks that the RPC call still works when TxUndo can't be found > > * Doesn't display the "value" or "scriptPubKey" of the previous output when at a lower verbosity level > > > This "completes" the issue #18771 ### Possible improvements *b0bf4f255f
- I can include even this commit to this PR if deemed useful or I can leave it for a follow-up PR. See https://github.com/bitcoin/bitcoin/pull/21245#issuecomment-894853784 for more context. ### Examples Examples of the `getblock` output with various verbose levels. Note that `000000000000001f682b188971cc1a121546be4e9d5baf22934fdc7f538288d5` contains only 2 transactions. #### Verbose level 0 ```bash ./bitcoin-cli -testnet getblock 000000000000001f682b188971cc1a121546be4e9d5baf22934fdc7f538288d5 0 ``` ##### Verbose level 1 ```bash ./bitcoin-cli -testnet getblock 000000000000001f682b188971cc1a121546be4e9d5baf22934fdc7f538288d5 1 ``` ##### Verbose level 2 ```bash ./bitcoin-cli -testnet getblock 000000000000001f682b188971cc1a121546be4e9d5baf22934fdc7f538288d5 2 ``` ##### Verbose level 3 ```bash ./bitcoin-cli -testnet getblock 000000000000001f682b188971cc1a121546be4e9d5baf22934fdc7f538288d5 3 ``` #### REST ```bash curl -H "content-type:text/plain;" http://127.0.0.1:18332/rest/block/000000000000001f682b188971cc1a121546be4e9d5baf22934fdc7f538288d5.json ``` <sub>* ... and my everyday obsessive checking of my email inbox whether the PR moves forward.</sub> Edit laanwj: Removed at symbol from message, and large example output to prevent it from all ending up in the commit message. ACKs for top commit: 0xB10C: ACK5c34507ecb
meshcollider: utACK5c34507ecb
theStack: ACK5c34507ecb
👘 promag: Concept ACK5c34507ecb
Tree-SHA512: bbff120d8fd76e617b723b102b0c606e0d8eb27f21c631d5f4cdab0892137c4bc7c65b1df144993405f942c91be47a26e80480102af55bff22621c19f518aea3
170 lines
5.7 KiB
Markdown
170 lines
5.7 KiB
Markdown
*After branching off for a major version release of Bitcoin Core, use this
|
|
template to create the initial release notes draft.*
|
|
|
|
*The release notes draft is a temporary file that can be added to by anyone. See
|
|
[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes)
|
|
for the process.*
|
|
|
|
*Create the draft, named* "*version* Release Notes Draft"
|
|
*(e.g. "22.0 Release Notes Draft"), as a collaborative wiki in:*
|
|
|
|
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/
|
|
|
|
*Before the final release, move the notes back to this git repository.*
|
|
|
|
*version* Release Notes Draft
|
|
===============================
|
|
|
|
Bitcoin Core version *version* is now available from:
|
|
|
|
<https://bitcoincore.org/bin/bitcoin-core-*version*/>
|
|
|
|
This release includes new features, various bug fixes and performance
|
|
improvements, as well as updated translations.
|
|
|
|
Please report bugs using the issue tracker at GitHub:
|
|
|
|
<https://github.com/bitcoin/bitcoin/issues>
|
|
|
|
To receive security and update notifications, please subscribe to:
|
|
|
|
<https://bitcoincore.org/en/list/announcements/join/>
|
|
|
|
How to Upgrade
|
|
==============
|
|
|
|
If you are running an older version, shut it down. Wait until it has completely
|
|
shut down (which might take a few minutes in some cases), then run the
|
|
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)
|
|
or `bitcoind`/`bitcoin-qt` (on Linux).
|
|
|
|
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
|
|
possible, but it might take some time if the data directory needs to be migrated. Old
|
|
wallet versions of Bitcoin Core are generally supported.
|
|
|
|
Compatibility
|
|
==============
|
|
|
|
Bitcoin Core is supported and extensively tested on operating systems
|
|
using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin
|
|
Core should also work on most other Unix-like systems but is not as
|
|
frequently tested on them. It is not recommended to use Bitcoin Core on
|
|
unsupported systems.
|
|
|
|
Notable changes
|
|
===============
|
|
|
|
P2P and network changes
|
|
-----------------------
|
|
|
|
- A bitcoind node will no longer rumour addresses to inbound peers by default.
|
|
They will become eligible for address gossip after sending an ADDR, ADDRV2,
|
|
or GETADDR message. (#21528)
|
|
|
|
Fee estimation changes
|
|
----------------------
|
|
|
|
- Fee estimation now takes the feerate of replacement (RBF) transactions into
|
|
account. (#22539)
|
|
|
|
Rescan startup parameter removed
|
|
--------------------------------
|
|
|
|
The `-rescan` startup parameter has been removed. Wallets which require
|
|
rescanning due to corruption will still be rescanned on startup.
|
|
Otherwise, please use the `rescanblockchain` RPC to trigger a rescan. (#23123)
|
|
|
|
Updated RPCs
|
|
------------
|
|
|
|
- The `-deprecatedrpc=addresses` configuration option has been removed. RPCs
|
|
`gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`,
|
|
`gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`,
|
|
`/rest/block` no longer return the `addresses` and `reqSigs` fields, which
|
|
were previously deprecated in 22.0. (#22650)
|
|
- The `getblock` RPC command now supports verbose level 3 containing transaction inputs
|
|
`prevout` information. The existing `/rest/block/` REST endpoint is modified to contain
|
|
this information too. Every `vin` field will contain an additional `prevout` subfield
|
|
describing the spent output. `prevout` contains the following keys:
|
|
- `generated` - true if the spent coins was a coinbase.
|
|
- `height`
|
|
- `value`
|
|
- `scriptPubKey`
|
|
|
|
- `listunspent` now includes `ancestorcount`, `ancestorsize`, and
|
|
`ancestorfees` for each transaction output that is still in the mempool.
|
|
(#12677)
|
|
|
|
- `lockunspent` now optionally takes a third parameter, `persistent`, which
|
|
causes the lock to be written persistently to the wallet database. This
|
|
allows UTXOs to remain locked even after node restarts or crashes. (#23065)
|
|
|
|
New RPCs
|
|
--------
|
|
|
|
Build System
|
|
------------
|
|
|
|
Files
|
|
-----
|
|
|
|
* On startup, the list of banned hosts and networks (via `setban` RPC) in
|
|
`banlist.dat` is ignored and only `banlist.json` is considered. Bitcoin Core
|
|
version 22.x is the only version that can read `banlist.dat` and also write
|
|
it to `banlist.json`. If `banlist.json` already exists, version 22.x will not
|
|
try to translate the `banlist.dat` into json. After an upgrade, `listbanned`
|
|
can be used to double check the parsed entries. (#22570)
|
|
|
|
New settings
|
|
------------
|
|
|
|
Updated settings
|
|
----------------
|
|
|
|
- In previous releases, the meaning of the command line option
|
|
`-persistmempool` (without a value provided) incorrectly disabled mempool
|
|
persistence. `-persistmempool` is now treated like other boolean options to
|
|
mean `-persistmempool=1`. Passing `-persistmempool=0`, `-persistmempool=1`
|
|
and `-nopersistmempool` is unaffected. (#23061)
|
|
|
|
Tools and Utilities
|
|
-------------------
|
|
|
|
- Update `-getinfo` to return data in a user-friendly format that also reduces vertical space. (#21832)
|
|
|
|
- CLI `-addrinfo` now returns a single field for the number of `onion` addresses
|
|
known to the node instead of separate `torv2` and `torv3` fields, as support
|
|
for Tor V2 addresses was removed from Bitcoin Core in 22.0. (#22544)
|
|
|
|
Wallet
|
|
------
|
|
|
|
GUI changes
|
|
-----------
|
|
|
|
- UTXOs which are locked via the GUI are now stored persistently in the
|
|
wallet database, so are not lost on node shutdown or crash. (#23065)
|
|
|
|
Low-level changes
|
|
=================
|
|
|
|
RPC
|
|
---
|
|
|
|
- `getblockchaininfo` now returns a new `time` field, that provides the chain tip time. (#22407)
|
|
|
|
Tests
|
|
-----
|
|
|
|
- For the `regtest` network the activation heights of several softforks were
|
|
set to block height 1. They can be changed by the runtime setting
|
|
`-testactivationheight=name@height`. (#22818)
|
|
|
|
Credits
|
|
=======
|
|
|
|
Thanks to everyone who directly contributed to this release:
|
|
|
|
|
|
As well as to everyone that helped with translations on
|
|
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
|