Release notes now being edited on https://github.com/digibyte-core/digibyte-devwiki/wiki/22.0-Release-Notes-draft
After branching off for a major version release of DigiByte 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 for the process.
Create the draft, named "version Release Notes Draft" (e.g. "0.20.0 Release Notes Draft"), as a collaborative wiki in:
https://github.com/digibyte-core/digibyte-devwiki/wiki/
Before the final release, move the notes back to this git repository.
DigiByte Core version version is now available from:
https://digibyte.org/bin/digibyte-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/digibyte-core/digibyte/issues
To receive security and update notifications, please subscribe to:
https://digibyte.org/en/list/announcements/join/
Validation speed and network propagation performance have been greatly improved, leading to much shorter sync and initial block download times.
- The script signature cache has been reimplemented as a "cuckoo cache", allowing for more signatures to be cached and faster lookups.
- Assumed-valid blocks have been introduced which allows script validation to be skipped for ancestors of known-good blocks, without changing the security model. See below for more details.
- In some cases, compact blocks are now relayed before being fully validated as per BIP152.
- P2P networking has been refactored with a focus on concurrency and throughput. Network operations are no longer bottlenecked by validation. As a result, block fetching is several times faster than previous releases in many cases.
- The UTXO cache now claims unused mempool memory. This speeds up initial block download as UTXO lookups are a major bottleneck there, and there is no use for the mempool at that stage.
DigiByte Core has supported automatically pruning the blockchain since 0.11. Pruning the blockchain allows for significant storage space savings as the vast majority of the downloaded data can be discarded after processing so very little of it remains on the disk.
Manual block pruning can now be enabled by setting -prune=1. Once that is set,
the RPC command pruneblockchain can be used to prune the blockchain up to the
specified height or timestamp.
The getinfo RPC command has been deprecated. Each field in the RPC call
has been moved to another command's output with that command also giving
additional information that getinfo did not provide. The following table
shows where each field has been moved to:
getinfo field |
Moved to |
|---|---|
"version" |
getnetworkinfo()["version"] |
"protocolversion" |
getnetworkinfo()["protocolversion"] |
"walletversion" |
getwalletinfo()["walletversion"] |
"balance" |
getwalletinfo()["balance"] |
"blocks" |
getblockchaininfo()["blocks"] |
"timeoffset" |
getnetworkinfo()["timeoffset"] |
"connections" |
getnetworkinfo()["connections"] |
"proxy" |
getnetworkinfo()["networks"][0]["proxy"] |
"difficulty" |
getblockchaininfo()["difficulty"] |
"testnet" |
getblockchaininfo()["chain"] == "test" |
"keypoololdest" |
getwalletinfo()["keypoololdest"] |
"keypoolsize" |
getwalletinfo()["keypoolsize"] |
"unlocked_until" |
getwalletinfo()["unlocked_until"] |
"paytxfee" |
getwalletinfo()["paytxfee"] |
"relayfee" |
getnetworkinfo()["relayfee"] |
"errors" |
getnetworkinfo()["warnings"] |
Previously the ZeroMQ notification system was unavailable on Windows due to various issues with ZMQ. These have been fixed upstream and now ZMQ can be used on Windows. Please see this document for help with using ZMQ in general.
The ability to nest RPC commands has been added to the debug console. This allows users to have the output of a command become the input to another command without running the commands separately.
The nested RPC commands use bracket syntax (i.e. getwalletinfo()) and can
be nested (i.e. getblock(getblockhash(1))). Simple queries can be
done with square brackets where object values are accessed with either an
array index or a non-quoted string (i.e. listunspent()[0][txid]). Both
commas and spaces can be used to separate parameters in both the bracket syntax
and normal RPC command syntax.
A RPC command and GUI toggle have been added to enable or disable all p2p network activity. The network status icon in the bottom right hand corner is now the GUI toggle. Clicking the icon will either enable or disable all p2p network activity. If network activity is disabled, the icon will be grayed out with an X on top of it.
Additionally the setnetworkactive RPC command has been added which does
the same thing as the GUI icon. The command takes one boolean parameter,
true enables networking and false disables it.
When DigiByte Core is out-of-sync on startup, a semi-transparent information layer will be shown over top of the normal display. This layer contains details about the current sync progress and estimates the amount of time remaining to finish syncing. This layer can also be hidden and subsequently unhidden by clicking on the progress bar at the bottom of the window.
Commands sent over the JSON-RPC interface and through the digibyte-cli binary
can now use named arguments. This follows the JSON-RPC specification
for passing parameters by-name with an object.
digibyte-cli has been updated to support this by parsing name=value arguments
when the -named option is given.
Some examples:
src/digibyte-cli -named help command="help"
src/digibyte-cli -named getblockhash height=0
src/digibyte-cli -named getblock blockhash=000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
src/digibyte-cli -named sendtoaddress address="(snip)" amount="1.0" subtractfeefromamount=true
The order of arguments doesn't matter in this case. Named arguments are also
useful to leave out arguments that should stay at their default value. The
rarely-used arguments comment and comment_to to sendtoaddress, for example, can
be left out. However, this is not yet implemented for many RPC calls, this is
expected to land in a later release.
The RPC server remains fully backwards compatible with positional arguments.
A new startup option, -walletrbf, has been added to allow users to have all
transactions sent opt into RBF support. The default value for this option is
currently false, so transactions will not opt into RBF by default. The new
bumpfee RPC can be used to replace transactions that opt into RBF.
The debug console maintains a history of previously entered commands that can be
accessed by pressing the Up-arrow key so that users can easily reuse previously
entered commands. Commands which have sensitive information such as passphrases and
private keys will now have a (...) in place of the parameters when accessed through
the history.
The mempool will be saved to the data directory prior to shutdown
to a mempool.dat file. This file preserves the mempool so that when the node
restarts the mempool can be filled with transactions without waiting for new transactions
to be created. This will also preserve any changes made to a transaction through
commands such as prioritisetransaction so that those changes will not be lost.
The Alert System was disabled and deprecated in DigiByte Core 0.12.1 and removed in 0.13.0. The Alert System was retired with a maximum sequence final alert which causes any nodes supporting the Alert System to display a static hard-coded "Alert Key Compromised" message which also prevents any other alerts from overriding it. This final alert is hard-coded into this release so that all old nodes receive the final alert.
-
After resetting the options by clicking the
Reset Optionsbutton in the options dialog or with the-resetguioptionsstartup option, the user will be prompted to choose the data directory again. This is to ensure that custom data directories will be kept after the option reset which clears the custom data directory set via the choose datadir dialog. -
Multiple peers can now be selected in the list of peers in the debug window. This allows for users to ban or disconnect multiple peers simultaneously instead of banning them one at a time.
-
An indicator has been added to the bottom right hand corner of the main window to indicate whether the wallet being used is a HD wallet. This icon will be grayed out with an X on top of it if the wallet is not a HD wallet.
-
importprunedfundsonly accepts two required arguments. Some versions accept an optional third arg, which was always ignored. Make sure to never pass more than two arguments. -
The first boolean argument to
getaddednodeinfohas been removed. This is an incompatible change. -
RPC command
getmininginfoloses the "testnet" field in favor of the more generic "chain" (which has been present for years). -
A new RPC command
preciousblockhas been added which marks a block as precious. A precious block will be treated as if it were received earlier than a competing block. -
A new RPC command
importmultihas been added which receives an array of JSON objects representing the intention of importing a public key, a private key, an address and script/p2sh -
Use of
getrawtransactionfor retrieving confirmed transactions with unspent outputs has been deprecated. For now this will still work, but in the future it may change to only be able to retrieve information about transactions in the mempool or iftxindexis enabled. -
A new RPC command
getmemoryinfohas been added which will return information about the memory usage of DigiByte Core. This was added in conjunction with optimizations to memory management. See Pull #8753 for more information. -
A new RPC command
bumpfeehas been added which allows replacing an unconfirmed wallet transaction that signaled RBF (see the-walletrbfstartup option above) with a new transaction that pays a higher fee, and should be more likely to get confirmed quickly.
- UTXO set query (
GET /rest/getutxos/<checkmempool>/<txid>-<n>/<txid>-<n> /.../<txid>-<n>.<bin|hex|json>) responses were changed to return status codeHTTP_BAD_REQUEST(400) instead ofHTTP_INTERNAL_SERVER_ERROR(500) when requests contain invalid parameters.
Since the changes in 0.12 to automatically limit the size of the mempool and improve the performance of block creation in mining code it has not been important for relay nodes or miners to set -minrelaytxfee. With this release the following concepts that were tied to this option have been separated out:
- incremental relay fee used for calculating BIP 125 replacement and mempool limiting. (1000 satoshis/kB)
- calculation of threshold for a dust output. (effectively 3 * 1000 satoshis/kB)
- minimum fee rate of a package of transactions to be included in a block created by the mining code. If miners wish to set this minimum they can use the new
-blockmintxfeeoption. (defaults to 1000 satoshis/kB)
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/DigiByte-Qt (on Mac)
or digibyted/digibyte-qt (on Linux).
Upgrading directly from a version of DigiByte 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 DigiByte Core are generally supported.
DigiByte Core is supported and extensively tested on operating systems using the Linux kernel, macOS 10.14+, and Windows 7 and newer. DigiByte Core should also work on most other Unix-like systems but is not as frequently tested on them. It is not recommended to use DigiByte Core on unsupported systems.
DigiByte Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.10+, and Windows 7 and newer (Windows XP is not supported).
DigiByte Core should also work on most other Unix-like systems but is not frequently tested on them.
DigiByte Core 0.16.0 introduces full support for segwit in the wallet and user interfaces. A new -addresstype argument has been added, which supports legacy, p2sh-segwit (default), and bech32 addresses. It controls what kind of addresses are produced by getnewaddress, getaccountaddress, and createmultisigaddress. A -changetype argument has also been added, with the same options, and by default equal to -addresstype, to control which kind of change is used.
A new address_type parameter has been added to the getnewaddress and addmultisigaddress RPCs to specify which type of address to generate.
A change_type argument has been added to the fundrawtransaction RPC to override the -changetype argument for specific transactions.
- All segwit addresses created through
getnewaddressor*multisigRPCs explicitly get their redeemscripts added to the wallet file. This means that downgrading after creating a segwit address will work, as long as the wallet file is up to date. - All segwit keys in the wallet get an implicit redeemscript added, without it being written to the file. This means recovery of an old backup will work, as long as you use new software.
- All keypool keys that are seen used in transactions explicitly get their redeemscripts added to the wallet files. This means that downgrading after recovering from a backup that includes a segwit address will work
Note that some RPCs do not yet support segwit addresses. Notably, signmessage/verifymessage doesn't support segwit addresses, nor does importmulti at this time. dumpwallet/importwallet work, but will (in comments) list the corresponding P2PKH addresses for all keys, even those only used in segwit addresses. Support for segwit in those RPCs will continue to be added in future versions.
P2WPKH change outputs are now used by default if any destination in the transaction is a P2WPKH or P2WSH output. This is done to ensure the change output is as indistinguishable from the other outputs as possible in either case.
Full support for native segwit addresses (BIP173 / Bech32) has now been added. This includes the ability to send to BIP173 addresses (including non-v0 ones), and generating these addresses (including as default new addresses, see above).
A checkbox has been added to the GUI to select whether a Bech32 address or P2SH-wrapped address should be generated when using segwit addresses. When launched with -addresstype=bech32 it is checked by default. When launched with -addresstype=legacy it is unchecked and disabled.
Due to a backward-incompatible change in the wallet database, wallets created with version 0.16.0 will be rejected by previous versions. Also, version 0.16.0 will only create hierarchical deterministic (HD) wallets.
The send screen now uses BIP125 RBF by default, regardless of -walletrbf.
There is a checkbox to mark the transaction as final.
The RPC default remains unchanged: to use RBF, launch with -walletrbf=1 or
use the replaceable argument for individual transactions.
DigiByte Core now has more flexibility in where the wallets directory can be located. Previously wallet database files were stored at the top level of the digibyte data directory. The behavior is now:
- For new installations (where the data directory doesn't already exist),
wallets will now be stored in a new
wallets/subdirectory inside the data directory by default. - For existing nodes (where the data directory already exists), wallets will be
stored in the data directory root by default. If a
wallets/subdirectory already exists in the data directory root, then wallets will be stored in thewallets/subdirectory by default. - The location of the wallets directory can be overridden by specifying a
-walletdir=<path>option where<path>can be an absolute path to a directory or directory symlink.
Care should be taken when choosing the wallets directory location, as if it becomes unavailable during operation, funds may be lost.
The minimum version of the GCC compiler required to compile DigiByte Core is now 4.8. No effort will be
made to support older versions of GCC. See discussion in issue #11732 for more information.
The minimum version for the Clang compiler is still 3.3. Other minimum dependency versions can be found in doc/dependencies.md in the repository.
Pruned nodes can now signal BIP159's NODE_NETWORK_LIMITED using service bits, in preparation for full BIP159 support in later versions. This would allow pruned nodes to serve the most recent blocks. However, the current change does not yet include support for connecting to these pruned peers.
The SHA256 hashing optimizations for architectures supporting SSE4, which lead to ~50% speedups in SHA256 on supported hardware (~5% faster synchronization and block validation), have now been enabled by default. In previous versions they were enabled using the --enable-experimental-asm flag when building, but are now the default and no longer deemed experimental.
- Uses of "µDGB" in the GUI now also show the more colloquial term "bits", specified in BIP176.
- The option to reuse a previous address has now been removed. This was justified by the need to "resend" an invoice, but now that we have the request history, that need should be gone.
- Support for searching by TXID has been added, rather than just address and label.
- A "Use available balance" option has been added to the send coins dialog, to add the remaining available wallet balance to a transaction output.
- A toggle for unblinding the password fields on the password dialog has been added. ======= From 0.17.0 onwards macOS <10.10 is no longer supported. 0.17.0 is built using Qt 5.9.x, which doesn't support versions of macOS older than 10.10. ======= From DigiByte Core 22.0 onwards, macOS versions earlier than 10.14 are no longer supported.
-
This release removes support for Tor version 2 hidden services in favor of Tor v3 only, as the Tor network dropped support for Tor v2 with the release of Tor version 0.4.6. Henceforth, DigiByte Core ignores Tor v2 addresses; it neither rumors them over the network to other peers, nor stores them in memory or to
peers.dat. (#22050) -
Added NAT-PMP port mapping support via
libnatpmp. (#18077)
-
Due to BIP 350 being implemented, behavior for all RPCs that accept addresses is changed when a native witness version 1 (or higher) is passed. These now require a Bech32m encoding instead of a Bech32 one, and Bech32m encoding will be used for such addresses in RPC output as well. No version 1 addresses should be created for mainnet until consensus rules are adopted that give them meaning (e.g. through BIP 341). Once that happens, Bech32m is expected to be used for them, so this shouldn't affect any production systems, but may be observed on other networks where such addresses already have meaning (like signet). (#20861)
-
The
getpeerinfoRPC returns two new boolean fields,bip152_hb_toandbip152_hb_from, that respectively indicate whether we selected a peer to be in compact blocks high-bandwidth mode or whether a peer selected us as a compact blocks high-bandwidth peer. High-bandwidth peers send new block announcements via acmpctblockmessage rather than the usual inv/headers announcements. See BIP 152 for more details. (#19776) -
getpeerinfono longer returns the following fields:addnode,banscore, andwhitelisted, which were previously deprecated in 0.21. Instead ofaddnode, theconnection_typefield returns manual. Instead ofwhitelisted, thepermissionsfield indicates if the peer has special privileges. Thebanscorefield has simply been removed. (#20755) -
The following RPCs:
gettxout,getrawtransaction,decoderawtransaction,decodescript,gettransaction, and REST endpoints:/rest/tx,/rest/getutxos,/rest/blockdeprecated the following fields (which are no longer returned in the responses by default):addresses,reqSigs. The-deprecatedrpc=addressesflag must be passed for these fields to be included in the RPC response. This flag/option will be available only for this major release, after which the deprecation will be removed entirely. Note that these fields are attributes of thescriptPubKeyobject returned in the RPC response. However, in the response ofdecodescriptthese fields are top-level attributes, and included again as attributes of thescriptPubKeyobject. (#20286) -
When creating a hex-encoded digibyte transaction using the
digibyte-txutility with the-jsonoption set, the following fields:addresses,reqSigsare no longer returned in the tx output of the response. (#20286) -
The
listbannedRPC now returns two new numeric fields:ban_durationandtime_remaining. Respectively, these new fields indicate the duration of a ban and the time remaining until a ban expires, both in seconds. Additionally, theban_createdfield is repositioned to come beforebanned_until. (#21602) -
The
getnodeaddressesRPC now returns a "network" field indicating the network type (ipv4, ipv6, onion, or i2p) for each address. (#21594) -
getnodeaddressesnow also accepts a "network" argument (ipv4, ipv6, onion, or i2p) to return only addresses of the specified network. (#21843) -
The
testmempoolacceptRPC now accepts multiple transactions (still experimental at the moment, API may be unstable). This is intended for testing transaction packages with dependency relationships; it is not recommended for batch-validating independent transactions. In addition to mempool policy, package policies apply: the list cannot contain more than 25 transactions or have a total size exceeding 101K virtual bytes, and cannot conflict with (spend the same inputs as) each other or the mempool, even if it would be a valid BIP125 replace-by-fee. There are some known limitations to the accuracy of the test accept: it's possible fortestmempoolacceptto return "allowed"=True for a group of transactions, but "too-long-mempool-chain" if they are actually submitted. (#20833) -
addmultisigaddressandcreatemultisignow support up to 20 keys for Segwit addresses. (#20867)
Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below.
- The
-natpmpoption has been added to use NAT-PMP to map the listening port. If both UPnP and NAT-PMP are enabled, a successful allocation from UPnP prevails over one from NAT-PMP. (#18077)
Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below.
- Passing an invalid
-rpcauthargument now cause digibyted to fail to start. (#20461)
-
A new CLI
-addrinfocommand returns the number of addresses known to the node per network type (including Tor v2 versus v3) and total. This can be useful to see if the node knows enough addresses in a network to use options like-onlynet=<network>or to upgrade to this release of DigiByte Core 22.0 that supports Tor v3 only. (#21595) -
A new
-rpcwaittimeoutargument todigibyte-clisets the timeout in seconds to use with-rpcwait. If the timeout expires,digibyte-cliwill report a failure. (#21056)
-
A new
listdescriptorsRPC is available to inspect the contents of descriptor-enabled wallets. The RPC returns public versions of all imported descriptors, including their timestamp and flags. For ranged descriptors, it also returns the range boundaries and the next index to generate addresses from. (#20226) -
The
bumpfeeRPC is not available with wallets that have private keys disabled.psbtbumpfeecan be used instead. (#20891) -
The
fundrawtransaction,sendandwalletcreatefundedpsbtRPCs now support aninclude_unsafeoption that whentrueallows using unsafe inputs to fund the transaction. Note that the resulting transaction may become invalid if one of the unsafe inputs disappears. If that happens, the transaction must be funded with different inputs and republished. (#21359) -
We now support up to 20 keys in
multi()andsortedmulti()descriptors underwsh(). (#20867)
-
The RPC server can process a limited number of simultaneous RPC requests. Previously, if this limit was exceeded, the RPC server would respond with status code 500 (
HTTP_INTERNAL_SERVER_ERROR). Now it returns status code 503 (HTTP_SERVICE_UNAVAILABLE). (#18335) -
Error codes have been updated to be more accurate for the following error cases (#18466):
signmessagenow returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the passed address is invalid. Previously returned RPC_TYPE_ERROR (-3).verifymessagenow returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the passed address is invalid. Previously returned RPC_TYPE_ERROR (-3).verifymessagenow returns RPC_TYPE_ERROR (-3) if the passed signature is malformed. Previously returned RPC_INVALID_ADDRESS_OR_KEY (-5).
- The
createrawtransactionRPC will now accept an array or dictionary (kept for compatibility) for theoutputsparameter. This means the order of transaction outputs can be specified by the client. - The
fundrawtransactionRPC will reject the previously deprecatedreserveChangeKeyoption. sendmanynow shuffles outputs to improve privacy, so any previously expected behavior with regards to output ordering can no longer be relied upon.- The new RPC
testmempoolacceptcan be used to test acceptance of a transaction to the mempool without adding it. - JSON transaction decomposition now includes a
weightfield which provides the transaction's exact weight. This is included in REST /rest/tx/ and /rest/block/ endpoints when in json mode. This is also included ingetblock(with verbosity=2),listsinceblock,listtransactions, andgetrawtransactionRPC commands. - New
feesfield introduced ingetrawmempool,getmempoolancestors,getmempooldescendantsandgetmempoolentrywhen verbosity is set totruewith sub-fieldsancestor,base,modifiedanddescendantdenominated in BTC. This new field deprecates previous fee fields, such asfee,modifiedfee,ancestorfeeanddescendantfee. - The new RPC
getzmqnotificationsreturns information about active ZMQ notifications.
The -wallet=<path> option now accepts full paths instead of requiring wallets
to be located in the -walletdir directory.
If -wallet=<path> is specified with a path that does not exist, it will now
create a wallet directory at the specified location (containing a wallet.dat
data file, a db.log file, and database/log.?????????? files) instead of just
creating a data file at the path and storing log files in the parent
directory. This should make backing up wallets more straightforward than
before because the specified wallet path can just be directly archived without
having to look in the parent directory for transaction log files.
For backwards compatibility, wallet paths that are names of existing data files
in the -walletdir directory will continue to be accepted and interpreted the
same as before.
-
When digibyte is not started with any
-wallet=<path>options, the name of the default wallet returned bygetwalletinfoandlistwalletsRPCs is now the empty string""instead of"wallet.dat". If digibyte is started with any-wallet=<path>options, there is no change in behavior, and the name of any wallet is just its<path>string. -
Passing an empty string (
"") as theaddress_typeparameter togetnewaddress,getrawchangeaddress,addmultisigaddress,fundrawtransactionRPCs is now an error. Previously, this would fall back to using the default address type. It is still possible to pass null or leave the parameter unset to use the default address type. -
Bare multisig outputs to our keys are no longer automatically treated as incoming payments. As this feature was only available for multisig outputs for which you had all private keys in your wallet, there was generally no use for them compared to single-key schemes. Furthermore, no address format for such outputs is defined, and wallet software can't easily send to it. These outputs will no longer show up in
listtransactions,listunspent, or contribute to your balance, unless they are explicitly watched (usingimportaddressorimportmultiwith hex script argument).signrawtransaction*also still works for them.
-
The log timestamp format is now ISO 8601 (e.g. "2018-02-28T12:34:56Z").
-
When running digibyted with
-debugbut without-daemon, logging to stdout is now the default behavior. Setting-printtoconsole=1no longer implicitly disables logging to debug.log. Instead, logging to file can be explicitly disabled by setting-debuglogfile=0.
The -blockmaxsize option for miners to limit their blocks' sizes was
deprecated in V0.15.1, and has now been removed. Miners should use the
-blockmaxweight option if they want to limit the weight of their blocks'
weights.
The listtransactions RPC account parameter which was deprecated in 0.17.0
and renamed to dummy has been un-deprecated and renamed again to label.
When digibyte is configured with the -deprecatedrpc=accounts setting, specifying
a label/account/dummy argument will return both outgoing and incoming
transactions. Without the -deprecatedrpc=accounts setting, it will only return
incoming transactions (because it used to be possible to create transactions
spending from specific accounts, but this is no longer possible with labels).
When -deprecatedrpc=accounts is set, it's possible to pass the empty string ""
to list transactions that don't have any label. Without
-deprecatedrpc=accounts, passing the empty string is an error because returning
only non-labeled transactions is not generally useful behavior and can cause
confusion.
- #14685
9406502Fix a deserialization overflow edge case (kazcw) - #14728
b901578Fix uninitialized read when stringifying an addrLocal (kazcw)
- #14441
5150accRestore ability to list incoming transactions by label (jnewbery) - #13546
91fa15aFix use of uninitialized valuebnb_usedin CWallet::CreateTransaction(…) (practicalswift) - #14310
bb90695Ensure wallet is unlocked before signing (gustavonalle) - #14690
5782fdcThrow error if CPubKey is invalid during PSBT keypath serialization (instagibbs) - #14852
2528443backport: [tests] Addwallet_balance.py(MarcoFalke) - #14196
3362a95psbt: always drop the unnecessary utxo and convert non-witness utxo to witness when necessary (achow101) - #14588
70ee1f8Refactor PSBT signing logic to enforce invariant and fix signing bug (gwillen) - #14424
89a9a9dStop requiring imported pubkey to sign non-PKH schemes (sipa, MeshCollider)
- #14417
fb9ad04Fix listreceivedbyaddress not taking address as a string (etscrivner) - #14596
de5e48aBugfix: RPC: Addaddress_typenamed param for createmultisig (luke-jr) - #14618
9666dbaMake HTTP RPC debug logging more informative (practicalswift) - #14197
7bee414[psbt] Convert non-witness UTXOs to witness if witness sig created (achow101) - #14377
a3fe125Check that a separator is found for psbt inputs, outputs, and global map (achow101) - #14356
7a590d8Fix converttopsbt permitsigdata arg, add basic test (instagibbs) - #14453
75b5d8cFix wallet unload during walletpassphrase timeout (promag)
- #14403
0242b5aRevert "Force TLS1.0+ for SSL connections" (real-or-random) - #14593
df5131bExplicitly disable "Dark Mode" appearance on macOS (fanquake)
- #14647
7edebedRemove illegal spacing in darwin.mk (ch4ot1c) - #14698
ec71f06Add digibyte-tx.exe into Windows installer (ken2812221)
- #13965
29899ecFix extended functional tests fail (ken2812221) - #14011
9461f98Disable wallet and address book Qt tests on macOS minimal platform (ryanofsky) - #14180
86fadeeRun all tests even if wallet is not compiled (MarcoFalke) - #14122
8bc1badTestrpc_help.pyfailed: Check whether ZMQ is enabled or not (Kvaciral) - #14101
96dc936Use named args in validation acceptance tests (MarcoFalke) - #14020
24d796aAdd tests for RPC help (promag) - #14052
7ff32a6Add some actual witness inrpc_rawtransaction(MarcoFalke) - #14215
b72fbabUse correct python index slices in example test (sdaftuar) - #14024
06544faAddTestNode::assert_debug_log(MarcoFalke) - #14658
60f7a97Add test to ensure node can generate all rpc help texts at runtime (MarcoFalke) - #14632
96f15e8Fix a comment (fridokus) - #14700
f9db08eAvoid race inp2p_invalid_blockby waiting for the block request (MarcoFalke) - #14845
67225e2Addwallet_balance.py(jnewbery)
- #14161
5f51fd6doc/descriptors.md tweaks (ryanofsky) - #14276
85aacc4Add autogen.sh in ARM Cross-compilation (walterwhite81) ======= Tests
bitcoin/8.22.0
Thanks to everyone who directly contributed to this release:
- Andrew Chow
- Chun Kuan Lee
- David A. Harding
- Eric Scrivner
- fanquake
- fridokus
- Glenn Willen
- Gregory Sanders
- gustavonalle
- John Newbery
- Jon Layton
- Jonas Schnelli
- João Barbosa
- Kaz Wesley
- Kvaciral
- Luke Dashjr
- MarcoFalke
- MeshCollider
- Pieter Wuille
- practicalswift
- Russell Yanofsky
- Sjors Provoost
- Suhas Daftuar
- Tim Ruffing
- Walter
- Wladimir J. van der Laan
0.17
As well as everyone that helped translating on Transifex.
As well as to everyone that helped with translations on Transifex.
bitcoin/8.22.0