22.0.0
Release Notes for Bitcoin Cash Node version 22.0.0
Bitcoin Cash Node version 22.0.0 is now available from:
Overview
This is a major release of Bitcoin Cash Node that implements the November 15, 2020 Network Upgrade. This will upgrade the difficulty targeting used in Bitcoin Cash to a commonly agreed new algorithm called ASERT.
Additionally, this version contains many corrections and improvements.
User who are running any of our previous releases (0.21.x) are urged to upgrade to v22.0.0 well ahead of November 2020.
Usage recommendations
The update to Bitcoin Cash Node 22.0.0 is required for the November 15, 2020 Bitcoin Cash network upgrade.
Semantic version numbering
As of version 22.0.0, Bitcoin Cash Node uses Semantic Versioning for its version numbers. Hence our version numbers no longer start with a zero.
Semantic versioning makes it easy to tell from the change in version number what are the impacts on interfaces and backward compatibility:
-
A major version (first number) change indicates that an interface changed in a way that makes the new software incompatible with older releases.
-
A minor version change indicates added functionality that is backwards compatible.
-
A patch version (third number) change indicates that a new release only contains bug fixes which are backward compatible.
Network changes
Changes to automatic banning
Automatic banning of peers for bad behavior has been slightly altered:
-
Automatic bans are now referred to as "discouraged" in log output, as
they're not (and weren't even before) strictly banned: incoming connections
are still allowed from them (as was the case before this change), but they're
preferred for eviction. -
Automatic bans will no longer time-out automatically after 24 hours.
Depending on traffic from other peers, automatic bans may time-out at an
indeterminate time. -
Automatic bans will no longer be persisted across restarts. Only manual bans
will be persisted. -
Automatic bans will no longer be returned by the
listbanned
RPC. -
Automatic bans can no longer be lifted with the
setban remove
RPC command.
If you need to remove an automatic ban, you must clear all automatic bans with
theclearbanned false true
RPC command, or restart the software to clear
automatic bans. -
All extant automatic bans ("node misbehaving") that are currently stored in the
node'sbanlist.dat
file will be converted into "manual bans" and will expire
within 24 hours after first running this version of BCHN.
Regtest network now requires standard transactions by default
The regression test chain, that can be enabled by the -regtest
command line flag, now requires transactions to not violate standard policy by default. Making the default the same as for mainnet, makes it easier to test mainnet behavior on regtest. Be reminded that the testnet still allows non-standard
txs by default and that the policy can be locally adjusted with the -acceptnonstdtxn
command line flag for both test chains.
Graceful expiration of this version on May 15, 2021
A mechanism has been added to this version such that it will gracefully expire on May 15, 2021, at the time of the network upgrade which is tentatively scheduled to occur then. Once this software expires, the RPC subsystem will disallow RPC commands. This feature can be disabled with the -expire=0
option. Furthermore, the date of expiration can be altered with the -tachyonactivationtime=<n>
option.
This feature has been added as a safety measure to prevent this version of the node software from mining or otherwise transacting on an incompatible chain, should an upgrade take place on May 15th, 2021. This version will begin to warn via RPC "warnings", via a GUI message, and via periodic messages to the log starting 30 days prior to May 15th, 2021.
Once the future consensus rules of the May 15th, 2021 upgrade to the Bitcoin Cash network have been determined, a new version of Bitcoin Cash Node will be made available well in advance of May 15th, 2021. It is recommended that all users of Bitcoin Cash Node update their nodes at that time so as to ensure
uninterrupted operation.
Related configuration options:
-
-expire
: Specifyexpire=0
in the configuration file or-expire=0
on the CLI to disable the aforementioned graceful expiration mechanism (default: 1). -
-tachyonactivationtime=<n>
: This option controls when the expiration mechanism (if enabled) will expire the node and disable RPC ( seconds since epoch, default: 1621080000).
Deprecated functionality
Autotools build system
The autotools build system (autogen
, configure
, ...) is deprecated and will be removed in a future release. CMake is the replacement build system, look at the documentation for the build instructions. To continue using the autotools build system, pass the --enable-deprecated-build-system flag to
configure
.
CashAddr enabled by default in bitcoin-tx
The bitcoin-tx tool has fully supported CashAddr since v0.21.2. CashAddr in JSON output was disabled by default, but relying on this default was deprecated. Version 22.0.0 now changes the default to enabled. Specify -usecashaddr=0
to retain the old behavior.
Removed functionality
medianfeerate
field removed from getblockstats
The medianfeerate
field in getblockstats
output has been removed. The 50th percentile from the feerate_percentiles
array should be used instead.
-datacarrier
removed
The bitcoind/bitcoin-qt option -datacarrier
was deprecated in v0.21.2 and has now been removed in v22.0.0. Instead, use the existing option -datacarriersize
to control relay and mining of OP_RETURN transactions, e.g. specify -datacarriersize=0
to reject them all.
BIP9 support removed
Bitcoin Cash Node 22.0.0 removed the (incomplete) BIP9 support. In earlier versions, it already was inactive due to no available proposals to vote on. The empty softforks
field in getblockchaininfo
has been removed.
Prototypical Avalanche removed
The Avalanche prototype features have been removed from this release pending specification and evaluation.
Windows 32-bit build removed
The 32-bit Windows target is no longer supported and has been removed from the release shipment.
Users that wish to build for 32 bits Windows should be aware that this will not be tested by the Bitcoin Cash Node team and be prepared to resolve issues on their own.
New RPC methods
No changes.
Low-level RPC changes
-
The
sigops
andsigoplimit
values returned by thegetblocktemplate
andgetblocktemplatelight
methods are now calculated according to the
SigChecks specification. -
The
clearbanned
method now optionally can take two additional boolean
arguments (both default to true if unspecified). These arguments can be used
to control whether manual or automatic bans are to be cleared (or both). -
The
listbanned
method no longer lists automatic bans. -
The
listbanned
method's results array has changed slightly. All entries
now have theirbanned_reason
as "manually added" (sincelistbanned
can
now only ever show manual bans). The "node misbehaving" value for this key
will never appear. This key is now deprecated and may be removed altogether
in a future release of BCHN. -
The
setban
method can no longer lift individual automatic bans. Use
clearbanned
instead to clear all bans, orclearbanned false true
to
clear all automatic bans (while preserving all manual bans).
Regressions
Bitcoin Cash Node 22.0.0 does not introduce any known regressions compared to 0.21.2.
Known Issues
Some issues could not be closed in time for release, but we are tracking all of them on our GitLab repository.
-
MacOS versions earlier than 10.12 are no longer supported. Additionally,
Bitcoin Cash Node does not yet change appearance when macOS "dark mode"
is activated. -
Windows users are recommended not to run multiple instances of bitcoin-qt
or bitcoind on the same machine if the wallet feature is enabled.
There is risk of data corruption if instances are configured to use the same
wallet folder. -
Some users have encountered unit tests failures when running in WSL
environments (e.g. WSL/Ubuntu). At this time, WSL is not considered a
supported environment for the software. This may change in future.The functional failure on WSL is tracked in Issue #33.
It arises when competing node program instances are not prevented from
opening the same wallet folder. Running multiple program instances with
the same configured walletdir could potentially lead to data corruption.
The failure has not been observed on other operating systems so far. -
doc/dependencies.md
needs revision (Issue #65). -
arc lint
will advise that somesrc/
files are in need of reformatting or
contain errors - this is because code style checking is currently a work in
progress while we adjust it to our own project requirements (see Issue #75).
One file indoc
also violates the lint tool (Issue #153) -
test_bitcoin
can collide with temporary files if used by more than
one user on the same system simultaneously. (Issue #43) -
For users running from sources built with BerkeleyDB releases newer than
the 5.3 which is used in this release, please take into consideration
the database format compatibility issues described in Issue #34.
When building from source it is recommended to use BerkeleyDB 5.3 as this
avoids wallet database incompatibility issues with the official release. -
There is a documentation build bug that causes some ordered lists on
docs.bitcoincashnode.org to be rendered incorrectly (Issue #141). -
There is a report that the
test_bitcoin-qt
test executable fails on
Linux Mint 20 (see Issue #144). This does not otherwise appear to impact
the functioning of the BCHN software on that platform. -
An 'autotools' build (the old build method) fails on OSX when using Clang.
(Issue #129) -
With a certain combination of build flags that included disabling
the QR code library, a build failure was observed where an erroneous
linking against the QR code library (not present) was attempted (Issue 138). -
The 'autotools' build is known to require some workarounds in order to
use the 'fuzzing' build feature (Issue #127).
Changes since Bitcoin Cash Node 0.21.2
New documents
doc/bch-upgrades.md
: List of all supported Bitcoin Cash upgradesdoc/coverage.md
: Instructions to generate test coverage measurement
Removed documents
- The documents in the
doc/abc
folder have been moved to the upgrade specifications document repository (https://upgradespecs.bitcoincashnode.org)
Notable commits grouped by functionality
Security or consensus relevant fixes
- 1a79646 Integer ASERT difficulty algorithm with 2-day half-life and MTP activation (aserti3-2d)
- 4f2478d BanManager: Reduce costly linear scans & modernize code
Interfaces / RPC
- 453795b Warn in RPC, Qt, and log as node approaches tachyon, disable RPC after tachyon
- 2fbd749 Remove legacy medianfeerate from getblockstats RPC
- c920a58 Remove softforks field from getblockchaininfo RPC
- 52442c9 Remove -datacarrier CLI option
- 8ecbd3c Change -usecashaddr default to 1 in bitcoin-tx
- b7c02a6 [backport] bitcoin-cli: Eliminate "Error parsing JSON" errors
- 5eb8875 Make getblockheader work with block height or block hash.
- 7de4551 Return hex encoding block header if verbose is set to false
- 7f0ad93 Unhide Axion (November) activation time parameter
- 9873ac4 UniValue fix: Serialize floats properly, irrespective of locale
- fcf0ba5 Remove tr() calls and fix KB -> kB
- 83039f3 Fix CLI help text regressions
Peformance optimizations
- 4bdff70 Performance adjustments from review of backport of D5715
- 00e4609 Split UniValue::getValues() into getObjectValues() and getArrayValues()
- b0edc7d Replace UniValue::exists() with find(), eliminate redundant object searches
- b466250 Remove UniValue global function find_value
- a58b4fb Performance: Optimized HexStr in util/strencodings.h
- e23697d Store UniValue object keys and values together (#51 item 4)
- 69d0189 Nit to timedata.cpp: break out of loop when we get an answer
- 29b3eca uint256: Add an explicit "Uninitialized" constructor for performance
- 74bbc68 Base UniValue::setInt buffer size on maximum integer length
GUI
- b48c870 [Qt] Fix debug screen size calculation
Code quality
- 77dee98 Remove incorrect right indentation from CLI help text
- 5687ff3 [qa] Fix issue 151 (code quality warning about undefined name)
- 3fa525a This is not experimental software
- 8f92174 Increase setexcessiveblock rpc example value to > current max blocksize
- 6d59b99 [lint] Adjust circular dependency expected list to our current baseline (removed 6 cycles)
- e738a04 [lint] Break circular dependency between gbtlight and rpc/mining
- 048d061 Nits from review of D5756 backport
- 95d244b Remove unused UniValue::getObjMap()
- 79c307b Remove barely used UniValue::checkObject()
- 2db3bbe Modernized the code in the generated univalue_escapes.h file
- e276c51 UniValue: removed superfluous
inline
keywords - 1f41bbc Made
UniValue::indentStr
have a consistent declaration - 24a6116 UniValue: Fix GCC compile warnings introduced by !464
- 017b6cf UniValue API additions: takeArrayValues(), front(), back(), operator== and more
- 9975aff [lint] Fix two Python linting issues in test/ which remained after MR485
- 9d298e8 GBTLight: Trivial fix to simplify the code in the unordered_map hasher
- 03df11e Code quality: Removed unused BEGIN, END, UBEGIN, and UEND macros
- 7de5ba6 Follow-up to MR !529 -- added better comments/naming
- 42d4344 Begin properly documenting the UniValue API
- 701faa5 Remove private method UniValue::findKey()
- aeb6640 Expand MurmurHash3 API to accept any data type, not just std::vector
- 035bc17 Improve CRollingBloomFilter API to avoid double copies
- a88ec3f UniValue: Fixed 2 small bugs, plus small performance improvement
- d06c9d4 UniValue: Use std::snprintf in favor of ostringstream
- d11532a Remove never used bool return values of UniValue methods
- e2da2bd timedata.cpp nits: avoid extra copies, use thread safety macro
- 24c92ab wallet rpc: Fix to unused parameter caused by not passing coinControl down
- 6acd000 Fix missing
#include <stdexcept>
in univalue.cpp - 39a4550 Remove UniValue::push_backV() and UniValue::pushKVs()
- af68aef Fix double-copy and other minor nits seen in !591
- 0fbe779 Remove UniValue::clear()
- 813568d [rpc] Fix a few nits, unused parameters, and use std::move in rawtransaction.cpp
- d8f7172 Simplify UniValue::write logic
- c4281fb Fix unused function warning for
GetPubKey
inscript/sign.cpp
Documentation updates
- 4dd54a7 Document implementation of November 2020 Bitcoin Cash Network Upgrade
- 490d710 Upgrade documentation of BIPs and BCH upgrades implementation history (#68)
- 64e2bf4 Update doc/ninja_targets.md
- f841f99 [doc] Add lines before and after lists, and other Markdown doc improvements
- 504a3c1 Remove trailing spaces from generated Markdown documentation
- e799876 [doc,lint] Remove trailing space in non-generated docs
- c1d4225 [doc] Misc documentation fixes
- 4f33644 [doc] Document coverage targets
- 41ae1b7 [doc] Document tag 'gitian'
- 01e63ba [doc] Update documentation and 'pages' deployment to get rid of dead links
- c649ee1 Adds part about building with WSL 2 (which has recently been released) and Ubuntu 20.04.
- bbf6b19 [doc] Add git-lfs installation instructions
- 4ab5419 [doc] Add python dependency to OSX build
- 8ba2423 Restructure mkdocs navigation menu
- 4396c57 [doc] Update build-osx build guide
- d1d9e16 Various Markdown fixes for proper display on docs.bitcoincashnode.org
- 9070d42 Fix Markdown in release notes too
- 652635a Added missing install in the dnf install command
- e245c7c [doc] Add deprecation note for Win32 build and support
- 65da413 [Doc] How to run functional tests in an emulator
- ddcfb45 [doc] Document AArch64 build
Build / general
- 8e6f6ad Use a versioned release notes link in the debian changelog file
- 7130d30 Update manpage generator for !540
- e92388e [build] Improve error on sanitizer check failure
Build / Linux
- b11ea17 [qa] Remove relocated Debian packaging scripts
Build / MacOSX
No changes.
Tests / test framework
- b2d40a9 [tests] A few more tests for ASERT
- 7844d55 Improve UniValue reading/writing tests
- 95d2b0c Adapt bchn-no-minerfund-activation test to use Axion time
- 28281c8 Better unit tests for UniValue setInt/setFloat
- 1187e29 Add some unit tests for arith_uint256::bits() method
Benchmarks
- 3285d52 Added BanMan benchmarks
- 6971887 [qa] Add benchmark comparator tool
- 73b549f Split JSON/RPC benchmarks for more targeted measurements
Seeds / seeder software
- f07f184 Add IP-seed feed 'seed.flowee.cash'
Maintainer tools
- df24a4a Adapt debian-packages.sh to work with BCHN infrastructure (take 2)
- 23f0627 Adapt debian-packags.sh to the BCHN infrastructure
Infrastructure
- 8cdf690 Configure Git LFS
Cleanup
- bfc1f85 Remove Automatic Replay Protection
- 4f6af3c Remove Automatic Replay Protection
- 5c222ec [qa] Remove avalanche prototype from code pending proper specification and design
- 9859cc4 Remove BIP9 support
- 8eeb4d5 Add timestamp for tentative May 2021 upgrade
Continuous Integration (GitLab CI)
- cee29e6 [ci] Transition to from only/except to 'rules' syntax
- 6e97236 [ci] Remove post-phonon tests
- 3a28c85 [doc] Run mkdocs on everything
- df08bc4 [doc] Publish documents outside doc folder
- bc10e3b Add fuzzing to CI
- ac841e1 mkdocs: Return to default plugins and site_url
- 4c2de7e [ci] Enforce RPC coverage in CI
- 1e273d1 [ci] Add AArch64 CI jobs
Backports
- 1353e32 ABC: D6567 Always repport proper sigcheck count
- 07dca8f ABC: D6113 Remove legacy per transaction sigops accounting
- 9d42b5d ABC: D6093 Report updated sigops count in mining RPC
- 774500a ABC: D6111 Remove legacy per block sigops accounting
- e9e1605 ABC: D6106 Remove legacy sigops support from miner
- cca9ced ABC: D6105 Kill GetSigOpCount
- f22ba2c ABC: D6101 Do not count sigops at all anymore
- 266625a ABC: D6576 Always enable sigcheck in the mempool admission
- 5d94abc ABC: D6566 Remove activation logic for chained transaction limit
- 98dec0e ABC: D6173 Removed activation logic for OP_REVERSEBYTES to pretend it was always enabled
- d81bb39 ABC: D7177 (partial) Remove last vestiges of phononActiationTime: use height-based activation
- f6b5dd5 ABC: D6797 Cleanup unused --with-phononactivation from test_framework
- cc6075d ABC: D6796 Cleanup phonon activation in functional tests
- 384c7ee ABC: D6805 Cleanup leftover phononactivationtime option
- eb40653 ABC: D6454 Merge #13096: [Policy] Fix MAX_STANDARD_TX_WEIGHT check
- db82112 ABC: D5612 Remove Windows 32 bit build
- fc95a88 ABC: D5750 Core: PR#11796 [tests] Functional test naming convention
- 6c7f2cb ABC: D6782 Enable Axion upgrades in functional tests
- 0c369a9 ABC: D6781 Enable Axion upgrades in unit tests
- edda65d ABC: D6780 Add facility and test for checking if Axion upgrade is enabled
- 8078117 ABC: 5683 Core: PR#14711 Remove uses of chainActive and mapBlockIndex in wallet code
- c25bfb8 ABC: D6511 Core: PR#15305 [backport#15305] [validation] Crash if disconnecting a block fails
- 41f7f4a ABC: D6500 Core: PR#18037 unit test for new MockForward scheduler method
- f5c4968 ABC: 6572 [Qt] Remove unused WindowFlags parameters
- 04c3bae ABC: D6335 Core: PR#14121 blockfilter: Functions to translate filter types to/from names.
- 3c4140e ABC: D5641 Also track dependencies of native targets
- a26e46b ABC: D5665 Core: PR#18004 build: don't embed a build-id when building libdmg-hfsplus
- ca3223e ABC: D5738 Core: PR#14978 Remove op== on PSBTs; check compatibility in Merge
- c093a26 ABC: D5883 Fix the emulator with autotools
- 7e2978c ABC: D5878 Allow for using an emulator for the functional test framework
- 73ea836 ABC: D6036 Bump misbehaving factor for unexpected version message behavior
- 469258b ABC: D6081 Core: PR#14886 [tests] tidy up imports in wallet_importmulti.py
- 716225b ABC: D6124 Core: PR#14477 (partial) Add support for inferring descriptors from scripts
- 46d3158 ABC: D6134 Core: PR#12119 [testonly] [wallet] use P2WPKH change output if any destination is P2WPKH or P2WSH
- ab6e90f ABC: D6202 Core: PR#17469 Merge #17469: test: Remove fragile assert_memory_usage_stable
- 6ac852f ABC: D6219 [refactor] change orphan txs std::map member to use TxId instead of uint256
- 7e5daea ABC: D6240 Core: PR#17265 random: stop feeding RNG output back into OpenSSL
- bdb2191 ABC: D6237 [build] set _FORTIFY_SOURCE=2 for -O* builds only
- e607d4c ABC: D6251 [CMAKE] Move the OpenSSL symbol detection to Qt rather than config
- d1de921 ABC: D6249 Core: PR#14453 [backport#14453] rpc: Fix wallet unload during walletpassphrase timeout
- 18e8d27 ABC: D6250 [refactor] make ArgsManager& parameter in IsDeprecatedRPCEnabled const
- 59d0bf1 ABC: D6310 [CMAKE] Allow for checking support for several flags at the same time
- c41e8ad ABC: D6309 [libsecp256k1: PR700] Allow overriding default flags
- 1b902d1 ABC: D6303 Wrap nChainTx into GetChainTxCount
- 25bd4eb ABC: D6304 Core: PR#15623 [backport#15623] refactor: Expose UndoReadFromDisk in header
- 7a036b9 ABC: D6317 Core: PR#13116 Merge #13116: Add Clang thread safety annotations for variables guarded by cs_{rpcWarmup,nTimeOffset,warnings}
- d6a0ac2 ABC: D6313 [CMAKE] Rename secp256k1 test targets
- 968218e ABC: D6312 [CMAKE] BOOST_TEST_DYN_LINK is defined twice
- 5e11f6b ABC: D6321 Core: PR#13160 Merge #13160: wallet: Unlock spent outputs
- 3cc6213 ABC: D6319 Core: PR#13535 Merge #13535: [qa] wallet_basic: Specify minimum required amount for listunspent
- 4213baa ABC: D6320 Core: PR#13545 Merge #13545: tests: Fix test case streams_serializedata_xor. Remove Boost dependency.
- b68a87f ABC: D6323 [test] add a couple test cases to uint256_tests.cpp
- 81b4653 ABC: D6327 Fix a comment in validation.cpp
- d06d0be ABC: D6332 Core: PR#14121 index: Allow atomic commits of index state to be extended.
- 3572e8a ABC: D6336 Use BlockHash and TxId in zmq
- 42f5ae1 ABC: D6338 Use BlockHash in BlockFilter
- 0be3b72 ABC: D6344 Core: PR#15280 gui: Fix shutdown order
- e75ea52 ABC: D6367 Core: PR#13756 [refactor] add const CCoinControl& param to SendMoney
- 2711ccc ABC: D6353 Core: PR#12856 Merge #12856: Tests: Add Metaclass for BitcoinTestFramework
- e5d2194 ABC: D6381 Core: PR#13491 Improve handling of INVALID in IsMine
- 0689ae0 ABC: D6378 [devtools] Use a trap to cleanup bitcoind instead of a background process
- 243cb91 ABC: D6386 Core: PR#16898 (partial) [backport#16898] test: Reformat python imports to aid scripted diff
- 61b9a60 ABC: D6394 Core: PR#15246 Merge #15246: qa: Add tests for invalid message headers
- 3edb8f0 ABC: D6398 Use BlockHash for vInventoryBlockToSend
- 131e4f8 ABC: D6399 Core: PR#15759 (partial) Remove unused variable
- 8849147 ABC: D6417 Core: PR#15654 net: Remove unused unsanitized user agent string CNode::strSubVer
- ea75a9a ABC: D6452 Core: PR#14027 Skip stale tip checking if outbound connections are off or if reindexing.
- e7d4fee ABC: D6456 Core: PR#16898 [bugfix] prevent nodes from banning other nodes in ABC tests
- e84f3ec ABC: D6457 Core: PR#14436 Merge #14436: doc: add comment explaining recentRejects-DoS behavior
- add9abc ABC: D6481 Core: PR#13503 Merge #13503: Document FreeBSD quirk. Fix FreeBSD build: Use std::min(...) to allow for compilation under certain FreeBSD versions.
- 5cdb9fe ABC: D6475 Core: PR#15254 Merge #15254: Trivial: fixup a few doxygen comments
- 4d055e0 ABC: D6485 Core: PR#16073 Merge #16073: refactor: Improve CRollingBloomFilter::reset by using std::fill
- ace2fdc ABC: D6476 Core: PR#15343 Merge #15343: [doc] netaddress: Make IPv4 loopback comment more descriptive
- cd1ea29 ABC: D6491 Core: PR#15597 Merge #15597: net: Generate log entry when blocks messages are received unexpectedly
- f21f90f ABC: D6499 Core: PR#18037 [util] allow scheduler to be mocked
- a8748fc ABC: D6517 Core: PR#16117 [backport#16117] util: Add UnintrruptibleSleep
- 9233f98 ABC: D6515 Core: PR#14931 Use std::condition_variable and sync.h instead of boost in scheduler_tests.cpp
- f726eeb ABC: D6522 Core: PR#14931 [backport#14931] test: mempool_persist: Verify prioritization is dumped correctly
- 60f8ce9 ABC: D6538 Core: PR#13531 [backport#13531] doc: Clarify that mempool txiter is const_iterator
- e927c69 ABC: D6550 Core: PR#15831 [backport#15831] test: Add test that addmultisigaddress fails for watchonly addresses
- 078f55b ABC: D6553 Core: PR#16227 [backport#16227 1/8]Add HaveKey and HaveCScript to SigningProvider
- b637a9b ABC: D5900 Core: PR#14632 Merge #14632: Tests: Fix a comment
- 4cb4c83 ABC: D6564 CBlockTreeDB::ReadReindexing => CBlockTreeDB::IsReindexing
- f87c20e ABC: D6565 Make CLIENT_VERSION constexpr
- f623cb8 ABC: D6575 [Qt] Fix deprecated QDateTime(const QDate &)
- cc158f3 ABC: D6573 [Qt] Fix deprecated pixmap() return by pointer with Qt 5.15
- fad5d8f ABC: D6590 Core: PR#15337 [backport#15337] rpc: Fix for segfault if combinepsbt called with empty inputs
- 11530f4 ABC: D6606 [Qt] Fix deprecated QButtonGroup::buttonClicked event
- d12bbf1 ABC: D6605 [Qt] Fix deprecated QString::SplitBehavior (now Qt::SplitBehavior)
- a2c09f3 ABC: D6489 Core: PR#15486 Merge #15486: [addrman, net] Ensure tried collisions resolve, and allow feeler connections to existing outbound netgroups
- 659385f ABC: D6625 Core: PR#16188 Merge #16188: net: Document what happens to getdata of unknown type
- 9b09266 ABC: D6632 Core: PR#12401 Merge #12401: Reset pblocktree before deleting LevelDB file
- d225244 ABC: D6631 Core: PR#15999 Merge #15999: init: Remove dead code in LoadChainTip
- b75c851 ABC: D6671 Core: PR#13457 Merge #13457: tests: Drop variadic macro
- 8d76a0c ABC: D6669 Core: PR#14051 Merge #14051: [Tests] Make combine_logs.py handle multi-line logs
- eb4b91b ABC: D6682 Remove double if in tx_verify.cpp
- 42c4c5c ABC: D6694 Core: PR#18412 Merge #18412: script: fix SCRIPT_ERR_SIG_PUSHONLY error string
- e5455dc ABC: D6697 Core: PR#11418 Merge #11418: Add error string for CLEANSTACK script violation
- 9b59864 ABC: D6713 Core: PR#14816 Merge #14816: Add CScriptNum decode python implementation in functional suite
- ef5643c ABC: D6709 Core: PR#14658 Merge #14658: qa: Add test to ensure node can generate all rpc help texts at runtime
- 074f238 ABC: D5513 Core: PR#16049 depends: switch to secure download of all dependencies
- b637c07 ABC: D5499 Make the fuzzer test runner compatible with cmake
- 8952970 ABC: D5758 Core: PR#15335 Fix lack of warning of unrecognized section names
- f0d275e ABC: D5743 Core: PR#15943 Merge #15943: tests: Fail if RPC has been added without tests
- 82f2324 ABC: D5562 Core: PR#13076 Return a status enum from ScanForWalletTransactions
- a9e47e7 ABC: D6212 Core: PR#15617,PR19219 [backport] Do not relay banned or discouraged IP addresses
- 5e53599 ABC: D6506 Core: PR#1928 Banman: Replace automatic bans with discouragement filter
- af39c42 ABC: D5342 [CMAKE] Fix the check-bitcoin-* targets when running with Xcode
- 1142351 ABC: D5872 Fix the build with ZMQ disabled
- 0fe9f61 ABC: D5431 Request --enable-experimental for the multiset module
- 2043fee ABC: D5394 Core: PR#14264,PR16051 [DOC] Update the depends README with dependencies and cmake instructions
- 0261202 ABC: D5395 [DOC] Update developer notes
- 706d303 ABC: D5360 Make gen-manpages.sh return non-zero if the script fails at any point
- 50ff990 ABC: D6362 Fix the build with Qt 5.15
- e518ec6 ABC: D5932 Core: PR#16248 [backport] Replace the use of fWhitelisted by permission checks
- f842a92 ABC: D5761 [CMAKE] Use a cmake template for config.ini
- cdabadd ABC: D5753 Core: PR#16097 (partial) refactoring: Check IsArgKnown() early
- 799eeb6 ABC: D5764 Core: PR#15891 [backport#15891] test: Require standard txs in regtest by default
- 4172588 ABC: D5936 Core: PR#16656 QA: fix rpc_setban.py race
- 1686399 ABC: D6302 Core: PR#12330 Merge #12330: Reduce scope of cs_wallet locks in listtransactions
- a5226ac ABC: D6301 Core: PR#15345 Merge #15345: net: Correct comparison of addr count
- e1e0d25 ABC: D6299 Core: PR#18700 Fix WSL file locking by using flock instead of fcntl
- 8f46164 ABC: D6294 Core: PR#14599 [backport#14599] Use functions guaranteed to be locale independent
- 069add0 ABC: D6290 Remove CBlockIndex::SetNull
- 49e78f3 ABC: D6288 Core: PR#15139 (partial) [backport#15139] Replace use of BEGIN and END macros on uint256
- 0e809fe ABC: D6285 Disable some more leveldb warnings
- 2c886b5 ABC: D6284 The -Wredundant-move warning is C++ only
- 634e40c ABC: D6281 Fix unused -pie flag for libs
- d647121 ABC: D6213 Fix code alignement in rpc/misc.cpp
- 93fee1c ABC: D6148 Core: PR#15308 [backport#15308] Piecewise construct to avoid invalid construction
- 5c30cc6 ABC: D5954 [trivial] comment correction on wallet_balance.py
- cad767a ABC: D5935 Core: PR#16618 [Fix] Allow connection of a noban banned peer
- d409066 ABC: D5929 Core: PR#16248 (partial) Do not disconnect peer for asking mempool if it has NO_BAN permission
- 7fbd7c3 ABC: D5925 Remove config managed RPC user/pass
- 8908015 ABC: D5842 Core: PR#17604 util: make ScheduleBatchPriority advisory only
- cb31f45 ABC: D5620 Core: PR#16089 depends: add ability to skip building zeromq
- e534c24 ABC: D6006 Core: PR#14150 Merge #14150: Add key origin support to descriptors
- 6b6ca64 ABC: D5776 Core: PR#15456 Enable PID file creation on WIN
- f0d5817 ABC: D5757 Core: PR#15087 [backport#15087] Error if rpcpassword contains hash in conf sections
- e37bdbc ABC: D5735 Core: PR#11630 Simplify Base32 and Base64 conversions
- 53d01af ABC: D5718 Core: PR#14978 Move PSBT definitions and code to separate files
- 1d281a0 ABC: D5677 Pass CChainParams down to DisconnectTip
- 212022b ABC: D5654 Core: PR#17057 build: switch to upstream libdmg-hfsplus
- f7cdfc5 ABC: D5650 Core: PR#16879 build: remove redundant sed patching
- 14af614 ABC: D5628 Use ninja to generate dep files for the native build
- b101a83 ABC: D5610 Core: PR#13764 contrib: Fix test-security-check fail in Ubuntu 18.04
- 56e2aa1 ABC: D5608 Core:PR15446 Improve depends debuggability
- 3c4e162 ABC: D5584 [test_runner] Fix result collector variable shadowing
- fdf4d05 ABC: D5576 [CMAKE] Pass the interface linked libraries to find_component
- a5954b4 ABC: D5525 [CMAKE] Fix the bench build for windows
- 2181f17 ABC: D6226 Core: PR#14129 Merge #14129: Trivial: update clang thread-safety docs url
- 4aee4fb ABC: D6210 Core: PR#15689 netaddress: Update CNetAddr for ORCHIDv2
- 969027e ABC: D6178 Core: PR#14522,PR14672 Merge #14522: tests: add invalid P2P message tests
- ca57954 ABC: D6176 Recategorize seeder connections as not manual
- bda511c ABC: D6164 Core: PR#16995 (partial) [backport#16995] net: Fail instead of truncate command name in CMessageHeader
- 088155a ABC: D6161 Core: PR#17270 (partial) [MOVEONLY] Move cpuid code from random & sha256 to compat/cpuid
- 5510da5 ABC: D6156 Core: PR#17151 gui: remove OpenSSL PRNG seeding (Windows, Qt only)
- 42a5857 ABC: D6155 doc: correct function name in ReportHardwareRand()
- 6ade6a2 ABC: D6149 Core: PR#14820 [backport#14820] test: Fix descriptor_tests not checking ToString output of public descriptors
- f3a0c25 ABC: D6131 Core: PR#11403 Add address_types test
- bc0d97c ABC: D6125 Core: PR#14477 (partial) Add Descriptor::IsSolvable() to distinguish addr/raw from others
- d6a9096 ABC: D6117 Fix Flake8 E741 errors
- a0a0d66 ABC: D6116 Fix dbcrash spurious failures
- 5c751b8 ABC: D6097 Add OP_REVERSEBYTES test case
- 7a16085 ABC: D6075 Core: PR#16918 Merge #16918: test: Make PORT_MIN in test runner configurable
- 8320077 ABC: D6072 Core: PR#13769 [backport#13769] Mark single-argument constructors "explicit"
- 223ac15 ABC: D6061 Core: PR#9332 Merge #9332: Let wallet importmulti RPC accept labels for standard scriptPubKeys
- a5ead6c ABC: D6060 [doc] since D5764, regtest requires standard txns by default
- 5ac5749 ABC: D5966 Core: PR#14275 tests: write the notification to different files to avoid race condition
- b416a21 ABC: D5824 Add a deprecation notice for the autotools build system
- 46628f6 ABC: D5321 [CMAKE] Add support for generating test coverage reports
- 7a64e55 ABC: D5313 [CMAKE] Move the upgrade activated tests out of the TestSuite module
- 131362c ABC: D4629 Core: PR#15399 fuzz: Script validation flags
- 7e281c5 ABC: D5640 Core: PR#16871 build: make building protobuf optional in depends
- 79e8301 ABC: D5991 More include fixes
- f34dd08 ABC: D5383 [libsecp256k1 PR703] Overhaul README.md
- 920435d ABC: D5902 [CMAKE] Fix missing linker wrap for fcntl64
- c004eb7 ABC: D5881 [CMAKE] Propagate the LFS support flags to the libraries
- d447977 ABC: D4816 Core: PR#17118 depends macOS: point --sysroot to SDK
- 3fb97c4 ABC: D6278 Core:PR18553 Avoid non-trivial global constants in SHA-NI code
- 5bb31e9 ABC: D6135 Core: PR#11196 Switch memory_cleanse implementation to BoringSSL's
- def73e3 ABC: D5623 Core: PR#15461 [backport] [depends] boost: update to 1.70
- 26b780a ABC: D6008 Core: PR#15463 Merge #15463: rpc: Speedup getaddressesbylabel
- 2cc34da ABC: D5843 Core: PR#10271 Use std::thread::hardware_concurrency, instead of Boost, to determine available cores
- 02f9523 ABC: D5756 Core: PR#14708 [backport#14708] Warn unrecognised sections in the config file
- f664178 ABC: D5715 Core: PR#14588 Refactor PSBT signing logic to enforce invariant
- ee8d07e ABC: D5803 Build the deb package with cmake
- 2593c34 ABC: D5802 Update the PPA to support Ubuntu 20.04, drop 16.04
- a034517 ABC: D5730 [release-process] Update Ubuntu PPA instruction
- 23ff2ff ABC: D5552 [debian release] Fetch signer string from GPG rather than requiring the user to enter a perfectly formatted one
- 742fe13 ABC: D5482 Use a sane default version for PPA releases
- c947e31 ABC: D5472 Added a script for building and deploying Debian packages to launchpad.net
- 85fea76 ABC: D6053 Core: PR#16830 refactor: Cleanup walletinitinterface.h
- 0624948 ABC: D6025 Fix potential timedata overflow
- 0db527a ABC: D6023 [tests] Remove ctime() call which may be unreliable on some systems
- 8c68225 ABC: D6021 Remove last vestige of the alert system
- c43aaff ABC: D6020 Properly handle LONG_MIN in timedata.cpp
- 0caa89d ABC: D6004 Core: PR#14021 Refactor keymetadata writing to a separate method
- 35dd499 ABC: D5992 Remove dead code in core_memusage.h
- c0e5a01 ABC: D5990 Add missing includes
- 1058174 ABC: D5963 [lint-circular-dependencies] changed expected dep list to establish baseline
- d2f013b ABC: D5934 Core: PR#16248 Add functional tests for flexible whitebind/list
- aa371a8 ABC: D5986 Core: PR#17708 prevector: avoid misaligned member accesses
- 7025e91 ABC: D5965 Core: PR#15826 Pure python EC
- 8a676ac ABC: D5961 Core: PR#15638 (partial) [backport#15638] [build] Move CheckTransaction from lib_server to lib_consensus
- 083b84b ABC: D5959 Core: PR#12627 qa: Fix some tests to work on native windows
- f86747f ABC: D5946 Update confusing names in rpc_blockchain.py
- ffd3e98 ABC: D5950 Core: PR#14845 [backport#14845] [tests] Add wallet_balance.py
- fb95042 ABC: D5889 Core: PR#13734 gui: Drop boost::scoped_array and use wchar_t API explicitly on Windows
- 5a0b503 ABC: D5884 Core: PR#15934 (partial) Clarify emptyIncludeConf logic
- c4cdf21 ABC: D5882 [CMAKE] Increase the unit test verbosity to test_suite
- c3c8135 ABC: D5891 Reorder univalue include
- 86e45f0 ABC: D5896 Link univalue in the seeder
- d9dae9d ABC: D5844 Core: PR#16563 Add test for AddTimeData
- 565c830 ABC: D5847 Use BlockHash for CheckProofOfWork
- ea69809 ABC: D5841 Fix declaration order in util/system.h
- 30e7ad4 ABC: D5829 Core: PR#15069 Merge #15069: test: Fix rpc_net.py "pong" race condition
- 2ba8674 ABC: D5821 Core: PR#14456 Merge #14456: test: forward timeouts properly in send_blocks_and_test
- 1cfb750 ABC: D5811 Core: PR#14057 Only log "Using PATH_TO_bitcoin.conf" message on startup if conf file exists.
- 07c3a4d ABC: D5830 Rename IsGood() to IsReliable()
- ebf3d99 ABC: D5806 refactor: test/bench: dedup Build{Crediting,Spending}Transaction()
- 83f042c ABC: D5804 Remove CheckFinalTx
- ce6edaa ABC: D5799 Core: PR#12916 [backport#12916] Introduce BigEndian wrapper and use it for netaddress ports
- cf3bdb5 ABC: D5794 Core: PR#14783 [backport#14783] qt: Call noui_connect to prevent boost::signals2::no_slots_error in early calls to InitWarning
- cb7cdd5 ABC: D5783 Core: PR#14298 Merge #14298: [REST] improve performance for JSON calls
- 31f67a7 ABC: D5788 Fix a bug where running test_runner.py --usecli would fail when built without bitcoin-cli
- 5a274a8 ABC: D5780 Core: PR#14097 Merge #14097: validation: Log FormatStateMessage on ConnectBlock error in ConnectTip
- 815e3ad ABC: D5774 util: Explain why the path is cached
- 657f9dc ABC: D5747 Core: PR#14618 [backport#14618] rpc: Make HTTP RPC debug logging more informative
- 1dca776 ABC: D5742 Core: PR#13105 Merge #13105: [qa] Add --failfast option to functional test runner
- b8af70a ABC: D5748 Core: PR#13216 implements different disk sizes for different networks on intro
- 3a81a24 ABC: D5745 Core: PR#14628 [backport#14628] Rename misleading 'defaultPort' to 'http_port'
- 923bd22 ABC: D5731 Core: PR#17121 Merge #17121: test: speedup wallet_backup by whitelisting peers (immediate tx relay)
- 844c8bb ABC: D5709 Core: PR#13647 [backport] Scripts and tools: Fix BIND_NOW check in security-check.py
- 28d5fc9 ABC: D5699 Core: PR#13565 [backport] test: Fix AreInputsStandard test to reference the proper scriptPubKey
- a3a5c17 ABC: D5706 Core: PR#14978 Factor BroadcastTransaction out of sendrawtransaction
- bdc8d9b ABC: D5707 Core: PR#13664 [backport] Trivial: fix references to share/rpcuser (now share/rpcauth)
- 8ea7cd2 ABC: D5672 Core: PR#17231 depends: fix boost mac cross build with clang 9+
- 7c13da4 ABC: D5680 Core: PR#17521 depends: only use D-Bus with Qt on linux
- 7d1f461 ABC: D5688 Core: PR#13118 [backport] RPCAuth Detection in Logs
- 6bb0a1c ABC: D5682 Make use of ADDR_SOFT_CAP outside just the seeder test suite
- b5115f7 ABC: D5681 Clean cache and tmp directory for instegration tests
- dcc9d7d ABC: D5676 Pass CChainParams down to UpdateTip
- 1860e16 ABC: D5668 Core: PR#17928 depends: Consistent use of package variable
- 81cd07a ABC: D5655 Core: PR#16809 depends: zlib: Move toolchain options to configure
- c7ef86a ABC: D5651 Core: PR#16926 Add OpenSSL termios fix for musl libc
- 4945fff ABC: D5659 Reword confusing warning message in RPC linter
- e2f7f29 ABC: D5661 Add setexcessiveblock to vRPCConvertParams
- feabdec ABC: D5652 Core: PR#17087 build: Add variable printing target to Makefiles
- ec6ea1e ABC: D5666 Core: PR#17676 build: pass -dead_strip_dylibs to ld on macOS
- 77b8349 ABC: D5658 Remove trailing whitespaces in old release notes
- 1df4359 ABC: D5614 Core: PR#15581 depends: Make less assumptions about build env
- 7983ddf ABC: D5613 Clean the native directory when using the clean target
- 3796783 ABC: D5626 Core: PR#15485 Merge #15485: add rpc_misc.py, mv test getmemoryinfo, add test mallocinfo
- 386860e ABC: D5605 Core: PR#15580 depends: native_protobuf: avoid system zlib
- 8f8654f ABC: D5602 Core: PR#14647 build: Remove illegal spacing in darwin.mk
- d11c394 ABC: D5604 Core: PR#13884 depends: Enable unicode support on dbd for Windows
- 9e9ab30 ABC: D5560 Core: PR#15039 [depends] Don't build libevent sample code
- 25ace52 ABC: D5569 Core: PR#13061 Merge #13061: Make tests pass after 2020
- 44315a3 ABC: D5455 [CMAKE] Silent git error output when running from cmake
- e1224ac ABC: D5393 [CMAKE] Improve FindEvent
- f3397b6 ABC: D5384 [libsecp256k1 PR709] Remove secret-dependant non-constant time operation in ecmult_const.
- 0c00f74 ABC: D5358 [libsecp256k1 PR661] Make ./configure string consistent
- bfebabb ABC: D5355 [libsecp256k1 PR654] Fix typo
- 21f4f73 ABC: D5354 [libsecp256k1 PR656] Fix typo in docs for _context_set_illegal_callback
- f144ff5 ABC: D5348 [libsecp256k1 PR631] typo in comment for secp256k1_ec_pubkey_tweak_mul ()
- 73dc261 ABC: D4628 Core: PR#15399 fuzz: Move deserialize tests to test/fuzz/deserialize.cpp
- a039f77 ABC: D5825 Core: PR#17891 [backport] scripted-diff: Replace CCriticalSection with RecursiveMutex
- d7dda0e ABC: D5849 Core: PR#15788 Backport leftovers from 15788
- db6ebe7 ABC: D5848 Core: PR#13219,PR13806,PR15413,PR15788 bench: Add block assemble benchmark
- d110c08 ABC: D5493 Core: PR#15788 (partial) test: Use test_bitcoin setup in bench
- 6eea2b0 ABC: D5690 Core: PR#15201 Merge #15201: net: Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes.
- 936228f ABC: D5547 Core: PR#14561 Merge #14561: Remove fs::relative call and fix listwalletdir tests
- 046cf05 ABC: D5546 Fixup paths in wallet_multiwallet
- ae28a40 Core: PR#13918 [backport] Replace median fee rate with feerate percentiles
- 1ef830a Core: PR#15412,PR#15488 [tests] Add simple test of getblockstats call via bitcoin-cli