gitlab bitcoin-cash-node/bitcoin-cash-node v22.0.0

latest releases: v27.0.0, v26.1.0, v26.0.0...
3 years ago

Release Notes for Bitcoin Cash Node version 22.0.0

Bitcoin Cash Node version 22.0.0 is now available from:

https://bitcoincashnode.org

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 the clearbanned 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's banlist.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: Specify expire=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 and sigoplimit values returned by the getblocktemplate and getblocktemplatelight 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 their banned_reason as "manually added" (since listbanned 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, or clearbanned 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 some src/ 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 in doc 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 upgrades
  • doc/coverage.md: Instructions to generate test coverage measurement

Removed documents

Notable commits grouped by functionality

Security or consensus relevant fixes

  • 1a79646e Integer ASERT difficulty algorithm with 2-day half-life and MTP activation (aserti3-2d)
  • 4f2478d8 BanManager: Reduce costly linear scans & modernize code

Interfaces / RPC

  • 453795b7 Warn in RPC, Qt, and log as node approaches tachyon, disable RPC after tachyon
  • 2fbd749e Remove legacy medianfeerate from getblockstats RPC
  • c920a586 Remove softforks field from getblockchaininfo RPC
  • 52442c9d Remove -datacarrier CLI option
  • 8ecbd3cc Change -usecashaddr default to 1 in bitcoin-tx
  • b7c02a66 [backport] bitcoin-cli: Eliminate "Error parsing JSON" errors
  • 5eb88756 Make getblockheader work with block height or block hash.
  • 7de4551c Return hex encoding block header if verbose is set to false
  • 7f0ad935 Unhide Axion (November) activation time parameter
  • 9873ac4e UniValue fix: Serialize floats properly, irrespective of locale
  • fcf0ba55 Remove tr() calls and fix KB -> kB
  • 83039f3c Fix CLI help text regressions

Peformance optimizations

  • 4bdff706 Performance adjustments from review of backport of D5715
  • 00e46091 Split UniValue::getValues() into getObjectValues() and getArrayValues()
  • b0edc7da Replace UniValue::exists() with find(), eliminate redundant object searches
  • b4662502 Remove UniValue global function find_value
  • a58b4fbc Performance: Optimized HexStr in util/strencodings.h
  • e23697d4 Store UniValue object keys and values together (#51 item 4)
  • 69d0189e Nit to timedata.cpp: break out of loop when we get an answer
  • 29b3ecae uint256: Add an explicit "Uninitialized" constructor for performance
  • 74bbc681 Base UniValue::setInt buffer size on maximum integer length

GUI

  • b48c870c [Qt] Fix debug screen size calculation

Code quality

  • 77dee980 Remove incorrect right indentation from CLI help text
  • 5687ff3e [qa] Fix issue 151 (code quality warning about undefined name)
  • 3fa525a1 This is not experimental software
  • 8f92174d Increase setexcessiveblock rpc example value to > current max blocksize
  • 6d59b99d [lint] Adjust circular dependency expected list to our current baseline (removed 6 cycles)
  • e738a042 [lint] Break circular dependency between gbtlight and rpc/mining
  • 048d0618 Nits from review of D5756 backport
  • 95d244b8 Remove unused UniValue::getObjMap()
  • 79c307b7 Remove barely used UniValue::checkObject()
  • 2db3bbe9 Modernized the code in the generated univalue_escapes.h file
  • e276c510 UniValue: removed superfluous inline keywords
  • 1f41bbc2 Made UniValue::indentStr have a consistent declaration
  • 24a61164 UniValue: Fix GCC compile warnings introduced by !464
  • 017b6cfa UniValue API additions: takeArrayValues(), front(), back(), operator== and more
  • 9975aff5 [lint] Fix two Python linting issues in test/ which remained after MR485
  • 9d298e85 GBTLight: Trivial fix to simplify the code in the unordered_map hasher
  • 03df11e4 Code quality: Removed unused BEGIN, END, UBEGIN, and UEND macros
  • 7de5ba64 Follow-up to MR !529 -- added better comments/naming
  • 42d43446 Begin properly documenting the UniValue API
  • 701faa5d Remove private method UniValue::findKey()
  • aeb66403 Expand MurmurHash3 API to accept any data type, not just std::vector
  • 035bc176 Improve CRollingBloomFilter API to avoid double copies
  • a88ec3fa UniValue: Fixed 2 small bugs, plus small performance improvement
  • d06c9d41 UniValue: Use std::snprintf in favor of ostringstream
  • d11532aa Remove never used bool return values of UniValue methods
  • e2da2bd1 timedata.cpp nits: avoid extra copies, use thread safety macro
  • 24c92ab0 wallet rpc: Fix to unused parameter caused by not passing coinControl down
  • 6acd0006 Fix missing #include <stdexcept> in univalue.cpp
  • 39a45503 Remove UniValue::push_backV() and UniValue::pushKVs()
  • af68aef9 Fix double-copy and other minor nits seen in !591
  • 0fbe779c Remove UniValue::clear()
  • 813568de [rpc] Fix a few nits, unused parameters, and use std::move in rawtransaction.cpp
  • d8f71721 Simplify UniValue::write logic
  • c4281fbc Fix unused function warning for GetPubKey in script/sign.cpp

Documentation updates

  • 4dd54a74 Document implementation of November 2020 Bitcoin Cash Network Upgrade
  • 490d7104 Upgrade documentation of BIPs and BCH upgrades implementation history (#68)
  • 64e2bf4d Update doc/ninja_targets.md
  • f841f99d [doc] Add lines before and after lists, and other Markdown doc improvements
  • 504a3c1d Remove trailing spaces from generated Markdown documentation
  • e799876f [doc,lint] Remove trailing space in non-generated docs
  • c1d4225e [doc] Misc documentation fixes
  • 4f336447 [doc] Document coverage targets
  • 41ae1b73 [doc] Document tag 'gitian'
  • 01e63bad [doc] Update documentation and 'pages' deployment to get rid of dead links
  • c649ee1b Adds part about building with WSL 2 (which has recently been released) and Ubuntu 20.04.
  • bbf6b193 [doc] Add git-lfs installation instructions
  • 4ab54192 [doc] Add python dependency to OSX build
  • 8ba24230 Restructure mkdocs navigation menu
  • 4396c577 [doc] Update build-osx build guide
  • d1d9e161 Various Markdown fixes for proper display on docs.bitcoincashnode.org
  • 9070d42f Fix Markdown in release notes too
  • 652635a4 Added missing install in the dnf install command
  • e245c7c8 [doc] Add deprecation note for Win32 build and support
  • 65da4134 [Doc] How to run functional tests in an emulator
  • ddcfb45e [doc] Document AArch64 build

Build / general

  • 8e6f6adf Use a versioned release notes link in the debian changelog file
  • 7130d304 Update manpage generator for !540
  • e92388e9 [build] Improve error on sanitizer check failure

Build / Linux

  • b11ea179 [qa] Remove relocated Debian packaging scripts

Build / MacOSX

No changes.

Tests / test framework

  • b2d40a9a [tests] A few more tests for ASERT
  • 7844d55a Improve UniValue reading/writing tests
  • 95d2b0cb Adapt bchn-no-minerfund-activation test to use Axion time
  • 28281c82 Better unit tests for UniValue setInt/setFloat
  • 1187e295 Add some unit tests for arith_uint256::bits() method

Benchmarks

  • 3285d52b Added BanMan benchmarks
  • 6971887c [qa] Add benchmark comparator tool
  • 73b549f8 Split JSON/RPC benchmarks for more targeted measurements

Seeds / seeder software

  • f07f1842 Add IP-seed feed 'seed.flowee.cash'

Maintainer tools

  • df24a4a4 Adapt debian-packages.sh to work with BCHN infrastructure (take #2)
  • 23f06272 Adapt debian-packags.sh to the BCHN infrastructure

Infrastructure

Cleanup

  • bfc1f85c Remove Automatic Replay Protection
  • 4f6af3c7 Remove Automatic Replay Protection
  • 5c222ec3 [qa] Remove avalanche prototype from code pending proper specification and design
  • 9859cc4f Remove BIP9 support
  • 8eeb4d58 Add timestamp for tentative May 2021 upgrade

Continuous Integration (GitLab CI)

  • cee29e6f [ci] Transition to from only/except to 'rules' syntax
  • 6e972365 [ci] Remove post-phonon tests
  • 3a28c856 [doc] Run mkdocs on everything
  • df08bc40 [doc] Publish documents outside doc folder
  • bc10e3b8 Add fuzzing to CI
  • ac841e14 mkdocs: Return to default plugins and site_url
  • 4c2de7ed [ci] Enforce RPC coverage in CI
  • 1e273d17 [ci] Add AArch64 CI jobs

Backports

  • 1353e328 ABC: D6567 Always repport proper sigcheck count
  • 07dca8fe ABC: D6113 Remove legacy per transaction sigops accounting
  • 9d42b5da ABC: D6093 Report updated sigops count in mining RPC
  • 774500a4 ABC: D6111 Remove legacy per block sigops accounting
  • e9e1605a ABC: D6106 Remove legacy sigops support from miner
  • cca9ced4 ABC: D6105 Kill GetSigOpCount
  • f22ba2cb ABC: D6101 Do not count sigops at all anymore
  • 266625ab ABC: D6576 Always enable sigcheck in the mempool admission
  • 5d94abc3 ABC: D6566 Remove activation logic for chained transaction limit
  • 98dec0e7 ABC: D6173 Removed activation logic for OP_REVERSEBYTES to pretend it was always enabled
  • d81bb39e ABC: D7177 (partial) Remove last vestiges of phononActiationTime: use height-based activation
  • f6b5dd59 ABC: D6797 Cleanup unused --with-phononactivation from test_framework
  • cc6075db ABC: D6796 Cleanup phonon activation in functional tests
  • 384c7eea ABC: D6805 Cleanup leftover phononactivationtime option
  • eb406532 ABC: D6454 Merge #13096: [Policy] Fix MAX_STANDARD_TX_WEIGHT check
  • db821120 ABC: D5612 Remove Windows 32 bit build
  • fc95a88b ABC: D5750 Core: PR#11796 [tests] Functional test naming convention
  • 6c7f2cb6 ABC: D6782 Enable Axion upgrades in functional tests
  • 0c369a96 ABC: D6781 Enable Axion upgrades in unit tests
  • edda65d3 ABC: D6780 Add facility and test for checking if Axion upgrade is enabled
  • 80781174 ABC: 5683 Core: PR#14711 Remove uses of chainActive and mapBlockIndex in wallet code
  • c25bfb83 ABC: D6511 Core: PR#15305 [backport#15305] [validation] Crash if disconnecting a block fails
  • 41f7f4a6 ABC: D6500 Core: PR#18037 unit test for new MockForward scheduler method
  • f5c49684 ABC: 6572 [Qt] Remove unused WindowFlags parameters
  • 04c3baeb ABC: D6335 Core: PR#14121 blockfilter: Functions to translate filter types to/from names.
  • 3c4140e1 ABC: D5641 Also track dependencies of native targets
  • a26e46bb ABC: D5665 Core: PR#18004 build: don't embed a build-id when building libdmg-hfsplus
  • ca3223e4 ABC: D5738 Core: PR#14978 Remove op== on PSBTs; check compatibility in Merge
  • c093a265 ABC: D5883 Fix the emulator with autotools
  • 7e2978c7 ABC: D5878 Allow for using an emulator for the functional test framework
  • 73ea8365 ABC: D6036 Bump misbehaving factor for unexpected version message behavior
  • 469258bf ABC: D6081 Core: PR#14886 [tests] tidy up imports in wallet_importmulti.py
  • 716225bf ABC: D6124 Core: PR#14477 (partial) Add support for inferring descriptors from scripts
  • 46d31587 ABC: D6134 Core: PR#12119 [testonly] [wallet] use P2WPKH change output if any destination is P2WPKH or P2WSH
  • ab6e90f0 ABC: D6202 Core: PR#17469 Merge #17469: test: Remove fragile assert_memory_usage_stable
  • 6ac852fb ABC: D6219 [refactor] change orphan txs std::map member to use TxId instead of uint256
  • 7e5daea9 ABC: D6240 Core: PR#17265 random: stop feeding RNG output back into OpenSSL
  • bdb21915 ABC: D6237 [build] set _FORTIFY_SOURCE=2 for -O* builds only
  • e607d4c3 ABC: D6251 [CMAKE] Move the OpenSSL symbol detection to Qt rather than config
  • d1de9214 ABC: D6249 Core: PR#14453 [backport#14453] rpc: Fix wallet unload during walletpassphrase timeout
  • 18e8d274 ABC: D6250 [refactor] make ArgsManager& parameter in IsDeprecatedRPCEnabled const
  • 59d0bf1e ABC: D6310 [CMAKE] Allow for checking support for several flags at the same time
  • c41e8ad2 ABC: D6309 [libsecp256k1: PR700] Allow overriding default flags
  • 1b902d1c ABC: D6303 Wrap nChainTx into GetChainTxCount
  • 25bd4ebb ABC: D6304 Core: PR#15623 [backport#15623] refactor: Expose UndoReadFromDisk in header
  • 7a036b91 ABC: D6317 Core: PR#13116 Merge #13116: Add Clang thread safety annotations for variables guarded by cs_{rpcWarmup,nTimeOffset,warnings}
  • d6a0ac26 ABC: D6313 [CMAKE] Rename secp256k1 test targets
  • 968218eb ABC: D6312 [CMAKE] BOOST_TEST_DYN_LINK is defined twice
  • 5e11f6b9 ABC: D6321 Core: PR#13160 Merge #13160: wallet: Unlock spent outputs
  • 3cc62139 ABC: D6319 Core: PR#13535 Merge #13535: [qa] wallet_basic: Specify minimum required amount for listunspent
  • 4213baa1 ABC: D6320 Core: PR#13545 Merge #13545: tests: Fix test case streams_serializedata_xor. Remove Boost dependency.
  • b68a87fb ABC: D6323 [test] add a couple test cases to uint256_tests.cpp
  • 81b46539 ABC: D6327 Fix a comment in validation.cpp
  • d06d0bea ABC: D6332 Core: PR#14121 index: Allow atomic commits of index state to be extended.
  • 3572e8a1 ABC: D6336 Use BlockHash and TxId in zmq
  • 42f5ae19 ABC: D6338 Use BlockHash in BlockFilter
  • 0be3b725 ABC: D6344 Core: PR#15280 gui: Fix shutdown order
  • e75ea52d ABC: D6367 Core: PR#13756 [refactor] add const CCoinControl& param to SendMoney
  • 2711cccc ABC: D6353 Core: PR#12856 Merge #12856: Tests: Add Metaclass for BitcoinTestFramework
  • e5d21947 ABC: D6381 Core: PR#13491 Improve handling of INVALID in IsMine
  • 0689ae02 ABC: D6378 [devtools] Use a trap to cleanup bitcoind instead of a background process
  • 243cb91b ABC: D6386 Core: PR#16898 (partial) [backport#16898] test: Reformat python imports to aid scripted diff
  • 61b9a601 ABC: D6394 Core: PR#15246 Merge #15246: qa: Add tests for invalid message headers
  • 3edb8f08 ABC: D6398 Use BlockHash for vInventoryBlockToSend
  • 131e4f8f ABC: D6399 Core: PR#15759 (partial) Remove unused variable
  • 8849147f ABC: D6417 Core: PR#15654 net: Remove unused unsanitized user agent string CNode::strSubVer
  • ea75a9a6 ABC: D6452 Core: PR#14027 Skip stale tip checking if outbound connections are off or if reindexing.
  • e7d4fee9 ABC: D6456 Core: PR#16898 [bugfix] prevent nodes from banning other nodes in ABC tests
  • e84f3ec5 ABC: D6457 Core: PR#14436 Merge #14436: doc: add comment explaining recentRejects-DoS behavior
  • add9abce ABC: D6481 Core: PR#13503 Merge #13503: Document FreeBSD quirk. Fix FreeBSD build: Use std::min(...) to allow for compilation under certain FreeBSD versions.
  • 5cdb9fe6 ABC: D6475 Core: PR#15254 Merge #15254: Trivial: fixup a few doxygen comments
  • 4d055e0a ABC: D6485 Core: PR#16073 Merge #16073: refactor: Improve CRollingBloomFilter::reset by using std::fill
  • ace2fdc6 ABC: D6476 Core: PR#15343 Merge #15343: [doc] netaddress: Make IPv4 loopback comment more descriptive
  • cd1ea292 ABC: D6491 Core: PR#15597 Merge #15597: net: Generate log entry when blocks messages are received unexpectedly
  • f21f90f5 ABC: D6499 Core: PR#18037 [util] allow scheduler to be mocked
  • a8748fce ABC: D6517 Core: PR#16117 [backport#16117] util: Add UnintrruptibleSleep
  • 9233f98e ABC: D6515 Core: PR#14931 Use std::condition_variable and sync.h instead of boost in scheduler_tests.cpp
  • f726eebe ABC: D6522 Core: PR#14931 [backport#14931] test: mempool_persist: Verify prioritization is dumped correctly
  • 60f8ce94 ABC: D6538 Core: PR#13531 [backport#13531] doc: Clarify that mempool txiter is const_iterator
  • e927c697 ABC: D6550 Core: PR#15831 [backport#15831] test: Add test that addmultisigaddress fails for watchonly addresses
  • 078f55b7 ABC: D6553 Core: PR#16227 [backport#16227 1/8]Add HaveKey and HaveCScript to SigningProvider
  • b637a9b0 ABC: D5900 Core: PR#14632 Merge #14632: Tests: Fix a comment
  • 4cb4c833 ABC: D6564 CBlockTreeDB::ReadReindexing => CBlockTreeDB::IsReindexing
  • f87c20e8 ABC: D6565 Make CLIENT_VERSION constexpr
  • f623cb89 ABC: D6575 [Qt] Fix deprecated QDateTime(const QDate &)
  • cc158f39 ABC: D6573 [Qt] Fix deprecated pixmap() return by pointer with Qt 5.15
  • fad5d8f4 ABC: D6590 Core: PR#15337 [backport#15337] rpc: Fix for segfault if combinepsbt called with empty inputs
  • 11530f4f ABC: D6606 [Qt] Fix deprecated QButtonGroup::buttonClicked event
  • d12bbf14 ABC: D6605 [Qt] Fix deprecated QString::SplitBehavior (now Qt::SplitBehavior)
  • a2c09f36 ABC: D6489 Core: PR#15486 Merge #15486: [addrman, net] Ensure tried collisions resolve, and allow feeler connections to existing outbound netgroups
  • 659385f5 ABC: D6625 Core: PR#16188 Merge #16188: net: Document what happens to getdata of unknown type
  • 9b09266e ABC: D6632 Core: PR#12401 Merge #12401: Reset pblocktree before deleting LevelDB file
  • d225244b ABC: D6631 Core: PR#15999 Merge #15999: init: Remove dead code in LoadChainTip
  • b75c8518 ABC: D6671 Core: PR#13457 Merge #13457: tests: Drop variadic macro
  • 8d76a0ce ABC: D6669 Core: PR#14051 Merge #14051: [Tests] Make combine_logs.py handle multi-line logs
  • eb4b91b2 ABC: D6682 Remove double if in tx_verify.cpp
  • 42c4c5c5 ABC: D6694 Core: PR#18412 Merge #18412: script: fix SCRIPT_ERR_SIG_PUSHONLY error string
  • e5455dc6 ABC: D6697 Core: PR#11418 Merge #11418: Add error string for CLEANSTACK script violation
  • 9b59864b ABC: D6713 Core: PR#14816 Merge #14816: Add CScriptNum decode python implementation in functional suite
  • ef5643ce ABC: D6709 Core: PR#14658 Merge #14658: qa: Add test to ensure node can generate all rpc help texts at runtime
  • 074f238f ABC: D5513 Core: PR#16049 depends: switch to secure download of all dependencies
  • b637c071 ABC: D5499 Make the fuzzer test runner compatible with cmake
  • 89529706 ABC: D5758 Core: PR#15335 Fix lack of warning of unrecognized section names
  • f0d275e7 ABC: D5743 Core: PR#15943 Merge #15943: tests: Fail if RPC has been added without tests
  • 82f23246 ABC: D5562 Core: PR#13076 Return a status enum from ScanForWalletTransactions
  • a9e47e79 ABC: D6212 Core: PR#15617,PR19219 [backport] Do not relay banned or discouraged IP addresses
  • 5e535994 ABC: D6506 Core: PR#1928 Banman: Replace automatic bans with discouragement filter
  • af39c420 ABC: D5342 [CMAKE] Fix the check-bitcoin-* targets when running with Xcode
  • 1142351f ABC: D5872 Fix the build with ZMQ disabled
  • 0fe9f61b ABC: D5431 Request --enable-experimental for the multiset module
  • 2043fee4 ABC: D5394 Core: PR#14264,PR16051 [DOC] Update the depends README with dependencies and cmake instructions
  • 02612029 ABC: D5395 [DOC] Update developer notes
  • 706d3038 ABC: D5360 Make gen-manpages.sh return non-zero if the script fails at any point
  • 50ff9909 ABC: D6362 Fix the build with Qt 5.15
  • e518ec62 ABC: D5932 Core: PR#16248 [backport] Replace the use of fWhitelisted by permission checks
  • f842a920 ABC: D5761 [CMAKE] Use a cmake template for config.ini
  • cdabaddb ABC: D5753 Core: PR#16097 (partial) refactoring: Check IsArgKnown() early
  • 799eeb67 ABC: D5764 Core: PR#15891 [backport#15891] test: Require standard txs in regtest by default
  • 41725888 ABC: D5936 Core: PR#16656 QA: fix rpc_setban.py race
  • 16863995 ABC: D6302 Core: PR#12330 Merge #12330: Reduce scope of cs_wallet locks in listtransactions
  • a5226ac3 ABC: D6301 Core: PR#15345 Merge #15345: net: Correct comparison of addr count
  • e1e0d255 ABC: D6299 Core: PR#18700 Fix WSL file locking by using flock instead of fcntl
  • 8f46164d ABC: D6294 Core: PR#14599 [backport#14599] Use functions guaranteed to be locale independent
  • 069add0f ABC: D6290 Remove CBlockIndex::SetNull
  • 49e78f33 ABC: D6288 Core: PR#15139 (partial) [backport#15139] Replace use of BEGIN and END macros on uint256
  • 0e809fed ABC: D6285 Disable some more leveldb warnings
  • 2c886b50 ABC: D6284 The -Wredundant-move warning is C++ only
  • 634e40cf ABC: D6281 Fix unused -pie flag for libs
  • d6471211 ABC: D6213 Fix code alignement in rpc/misc.cpp
  • 93fee1cf ABC: D6148 Core: PR#15308 [backport#15308] Piecewise construct to avoid invalid construction
  • 5c30cc66 ABC: D5954 [trivial] comment correction on wallet_balance.py
  • cad767a4 ABC: D5935 Core: PR#16618 [Fix] Allow connection of a noban banned peer
  • d4090662 ABC: D5929 Core: PR#16248 (partial) Do not disconnect peer for asking mempool if it has NO_BAN permission
  • 7fbd7c38 ABC: D5925 Remove config managed RPC user/pass
  • 89080157 ABC: D5842 Core: PR#17604 util: make ScheduleBatchPriority advisory only
  • cb31f450 ABC: D5620 Core: PR#16089 depends: add ability to skip building zeromq
  • e534c245 ABC: D6006 Core: PR#14150 Merge #14150: Add key origin support to descriptors
  • 6b6ca640 ABC: D5776 Core: PR#15456 Enable PID file creation on WIN
  • f0d5817d ABC: D5757 Core: PR#15087 [backport#15087] Error if rpcpassword contains hash in conf sections
  • e37bdbcc ABC: D5735 Core: PR#11630 Simplify Base32 and Base64 conversions
  • 53d01afd ABC: D5718 Core: PR#14978 Move PSBT definitions and code to separate files
  • 1d281a05 ABC: D5677 Pass CChainParams down to DisconnectTip
  • 212022bd ABC: D5654 Core: PR#17057 build: switch to upstream libdmg-hfsplus
  • f7cdfc54 ABC: D5650 Core: PR#16879 build: remove redundant sed patching
  • 14af614d ABC: D5628 Use ninja to generate dep files for the native build
  • b101a83b ABC: D5610 Core: PR#13764 contrib: Fix test-security-check fail in Ubuntu 18.04
  • 56e2aa12 ABC: D5608 Core:PR15446 Improve depends debuggability
  • 3c4e1622 ABC: D5584 [test_runner] Fix result collector variable shadowing
  • fdf4d05c ABC: D5576 [CMAKE] Pass the interface linked libraries to find_component
  • a5954b4a ABC: D5525 [CMAKE] Fix the bench build for windows
  • 2181f174 ABC: D6226 Core: PR#14129 Merge #14129: Trivial: update clang thread-safety docs url
  • 4aee4fb2 ABC: D6210 Core: PR#15689 netaddress: Update CNetAddr for ORCHIDv2
  • 969027e3 ABC: D6178 Core: PR#14522,PR14672 Merge #14522: tests: add invalid P2P message tests
  • ca579549 ABC: D6176 Recategorize seeder connections as not manual
  • bda511cc ABC: D6164 Core: PR#16995 (partial) [backport#16995] net: Fail instead of truncate command name in CMessageHeader
  • 088155a5 ABC: D6161 Core: PR#17270 (partial) [MOVEONLY] Move cpuid code from random & sha256 to compat/cpuid
  • 5510da5d ABC: D6156 Core: PR#17151 gui: remove OpenSSL PRNG seeding (Windows, Qt only)
  • 42a58571 ABC: D6155 doc: correct function name in ReportHardwareRand()
  • 6ade6a2f ABC: D6149 Core: PR#14820 [backport#14820] test: Fix descriptor_tests not checking ToString output of public descriptors
  • f3a0c25c ABC: D6131 Core: PR#11403 Add address_types test
  • bc0d97cf ABC: D6125 Core: PR#14477 (partial) Add Descriptor::IsSolvable() to distinguish addr/raw from others
  • d6a90963 ABC: D6117 Fix Flake8 E741 errors
  • a0a0d66c ABC: D6116 Fix dbcrash spurious failures
  • 5c751b82 ABC: D6097 Add OP_REVERSEBYTES test case
  • 7a160850 ABC: D6075 Core: PR#16918 Merge #16918: test: Make PORT_MIN in test runner configurable
  • 8320077d ABC: D6072 Core: PR#13769 [backport#13769] Mark single-argument constructors "explicit"
  • 223ac15a ABC: D6061 Core: PR#9332 Merge #9332: Let wallet importmulti RPC accept labels for standard scriptPubKeys
  • a5ead6cf ABC: D6060 [doc] since D5764, regtest requires standard txns by default
  • 5ac57497 ABC: D5966 Core: PR#14275 tests: write the notification to different files to avoid race condition
  • b416a217 ABC: D5824 Add a deprecation notice for the autotools build system
  • 46628f60 ABC: D5321 [CMAKE] Add support for generating test coverage reports
  • 7a64e55a ABC: D5313 [CMAKE] Move the upgrade activated tests out of the TestSuite module
  • 131362c3 ABC: D4629 Core: PR#15399 fuzz: Script validation flags
  • 7e281c57 ABC: D5640 Core: PR#16871 build: make building protobuf optional in depends
  • 79e8301e ABC: D5991 More include fixes
  • f34dd08a ABC: D5383 [libsecp256k1 PR703] Overhaul README.md
  • 920435d4 ABC: D5902 [CMAKE] Fix missing linker wrap for fcntl64
  • c004eb7d ABC: D5881 [CMAKE] Propagate the LFS support flags to the libraries
  • d4479779 ABC: D4816 Core: PR#17118 depends macOS: point --sysroot to SDK
  • 3fb97c44 ABC: D6278 Core:PR18553 Avoid non-trivial global constants in SHA-NI code
  • 5bb31e99 ABC: D6135 Core: PR#11196 Switch memory_cleanse implementation to BoringSSL's
  • def73e35 ABC: D5623 Core: PR#15461 [backport] [depends] boost: update to 1.70
  • 26b780aa ABC: D6008 Core: PR#15463 Merge #15463: rpc: Speedup getaddressesbylabel
  • 2cc34da8 ABC: D5843 Core: PR#10271 Use std::thread::hardware_concurrency, instead of Boost, to determine available cores
  • 02f9523f ABC: D5756 Core: PR#14708 [backport#14708] Warn unrecognised sections in the config file
  • f6641787 ABC: D5715 Core: PR#14588 Refactor PSBT signing logic to enforce invariant
  • ee8d07e0 ABC: D5803 Build the deb package with cmake
  • 2593c34e ABC: D5802 Update the PPA to support Ubuntu 20.04, drop 16.04
  • a0345174 ABC: D5730 [release-process] Update Ubuntu PPA instruction
  • 23ff2ff4 ABC: D5552 [debian release] Fetch signer string from GPG rather than requiring the user to enter a perfectly formatted one
  • 742fe13c ABC: D5482 Use a sane default version for PPA releases
  • c947e310 ABC: D5472 Added a script for building and deploying Debian packages to launchpad.net
  • 85fea76a ABC: D6053 Core: PR#16830 refactor: Cleanup walletinitinterface.h
  • 06249487 ABC: D6025 Fix potential timedata overflow
  • 0db527a3 ABC: D6023 [tests] Remove ctime() call which may be unreliable on some systems
  • 8c682257 ABC: D6021 Remove last vestige of the alert system
  • c43aaff8 ABC: D6020 Properly handle LONG_MIN in timedata.cpp
  • 0caa89da ABC: D6004 Core: PR#14021 Refactor keymetadata writing to a separate method
  • 35dd499b ABC: D5992 Remove dead code in core_memusage.h
  • c0e5a017 ABC: D5990 Add missing includes
  • 10581742 ABC: D5963 [lint-circular-dependencies] changed expected dep list to establish baseline
  • d2f013ba ABC: D5934 Core: PR#16248 Add functional tests for flexible whitebind/list
  • aa371a8b ABC: D5986 Core: PR#17708 prevector: avoid misaligned member accesses
  • 7025e91e ABC: D5965 Core: PR#15826 Pure python EC
  • 8a676ac8 ABC: D5961 Core: PR#15638 (partial) [backport#15638] [build] Move CheckTransaction from lib_server to lib_consensus
  • 083b84b0 ABC: D5959 Core: PR#12627 qa: Fix some tests to work on native windows
  • f86747f7 ABC: D5946 Update confusing names in rpc_blockchain.py
  • ffd3e982 ABC: D5950 Core: PR#14845 [backport#14845] [tests] Add wallet_balance.py
  • fb950428 ABC: D5889 Core: PR#13734 gui: Drop boost::scoped_array and use wchar_t API explicitly on Windows
  • 5a0b5039 ABC: D5884 Core: PR#15934 (partial) Clarify emptyIncludeConf logic
  • c4cdf215 ABC: D5882 [CMAKE] Increase the unit test verbosity to test_suite
  • c3c81351 ABC: D5891 Reorder univalue include
  • 86e45f07 ABC: D5896 Link univalue in the seeder
  • d9dae9dd ABC: D5844 Core: PR#16563 Add test for AddTimeData
  • 565c8305 ABC: D5847 Use BlockHash for CheckProofOfWork
  • ea698096 ABC: D5841 Fix declaration order in util/system.h
  • 30e7ad4c ABC: D5829 Core: PR#15069 Merge #15069: test: Fix rpc_net.py "pong" race condition
  • 2ba86745 ABC: D5821 Core: PR#14456 Merge #14456: test: forward timeouts properly in send_blocks_and_test
  • 1cfb750b ABC: D5811 Core: PR#14057 Only log "Using PATH_TO_bitcoin.conf" message on startup if conf file exists.
  • 07c3a4da ABC: D5830 Rename IsGood() to IsReliable()
  • ebf3d993 ABC: D5806 refactor: test/bench: dedup Build{Crediting,Spending}Transaction()
  • 83f042c6 ABC: D5804 Remove CheckFinalTx
  • ce6edaac ABC: D5799 Core: PR#12916 [backport#12916] Introduce BigEndian wrapper and use it for netaddress ports
  • cf3bdb59 ABC: D5794 Core: PR#14783 [backport#14783] qt: Call noui_connect to prevent boost::signals2::no_slots_error in early calls to InitWarning
  • cb7cdd5f ABC: D5783 Core: PR#14298 Merge #14298: [REST] improve performance for JSON calls
  • 31f67a75 ABC: D5788 Fix a bug where running test_runner.py --usecli would fail when built without bitcoin-cli
  • 5a274a8d ABC: D5780 Core: PR#14097 Merge #14097: validation: Log FormatStateMessage on ConnectBlock error in ConnectTip
  • 815e3ad7 ABC: D5774 util: Explain why the path is cached
  • 657f9dc3 ABC: D5747 Core: PR#14618 [backport#14618] rpc: Make HTTP RPC debug logging more informative
  • 1dca7767 ABC: D5742 Core: PR#13105 Merge #13105: [qa] Add --failfast option to functional test runner
  • b8af70ae ABC: D5748 Core: PR#13216 implements different disk sizes for different networks on intro
  • 3a81a244 ABC: D5745 Core: PR#14628 [backport#14628] Rename misleading 'defaultPort' to 'http_port'
  • 923bd22a ABC: D5731 Core: PR#17121 Merge #17121: test: speedup wallet_backup by whitelisting peers (immediate tx relay)
  • 844c8bb7 ABC: D5709 Core: PR#13647 [backport] Scripts and tools: Fix BIND_NOW check in security-check.py
  • 28d5fc9a ABC: D5699 Core: PR#13565 [backport] test: Fix AreInputsStandard test to reference the proper scriptPubKey
  • a3a5c178 ABC: D5706 Core: PR#14978 Factor BroadcastTransaction out of sendrawtransaction
  • bdc8d9b6 ABC: D5707 Core: PR#13664 [backport] Trivial: fix references to share/rpcuser (now share/rpcauth)
  • 8ea7cd29 ABC: D5672 Core: PR#17231 depends: fix boost mac cross build with clang 9+
  • 7c13da4b ABC: D5680 Core: PR#17521 depends: only use D-Bus with Qt on linux
  • 7d1f461f ABC: D5688 Core: PR#13118 [backport] RPCAuth Detection in Logs
  • 6bb0a1c0 ABC: D5682 Make use of ADDR_SOFT_CAP outside just the seeder test suite
  • b5115f74 ABC: D5681 Clean cache and tmp directory for instegration tests
  • dcc9d7df ABC: D5676 Pass CChainParams down to UpdateTip
  • 1860e16c ABC: D5668 Core: PR#17928 depends: Consistent use of package variable
  • 81cd07a7 ABC: D5655 Core: PR#16809 depends: zlib: Move toolchain options to configure
  • c7ef86af ABC: D5651 Core: PR#16926 Add OpenSSL termios fix for musl libc
  • 4945fff2 ABC: D5659 Reword confusing warning message in RPC linter
  • e2f7f29c ABC: D5661 Add setexcessiveblock to vRPCConvertParams
  • feabdeca ABC: D5652 Core: PR#17087 build: Add variable printing target to Makefiles
  • ec6ea1ef ABC: D5666 Core: PR#17676 build: pass -dead_strip_dylibs to ld on macOS
  • 77b83493 ABC: D5658 Remove trailing whitespaces in old release notes
  • 1df43591 ABC: D5614 Core: PR#15581 depends: Make less assumptions about build env
  • 7983ddf8 ABC: D5613 Clean the native directory when using the clean target
  • 37967839 ABC: D5626 Core: PR#15485 Merge #15485: add rpc_misc.py, mv test getmemoryinfo, add test mallocinfo
  • 386860e1 ABC: D5605 Core: PR#15580 depends: native_protobuf: avoid system zlib
  • 8f8654fd ABC: D5602 Core: PR#14647 build: Remove illegal spacing in darwin.mk
  • d11c3943 ABC: D5604 Core: PR#13884 depends: Enable unicode support on dbd for Windows
  • 9e9ab307 ABC: D5560 Core: PR#15039 [depends] Don't build libevent sample code
  • 25ace521 ABC: D5569 Core: PR#13061 Merge #13061: Make tests pass after 2020
  • 44315a39 ABC: D5455 [CMAKE] Silent git error output when running from cmake
  • e1224ac1 ABC: D5393 [CMAKE] Improve FindEvent
  • f3397b6c ABC: D5384 [libsecp256k1 PR709] Remove secret-dependant non-constant time operation in ecmult_const.
  • 0c00f742 ABC: D5358 [libsecp256k1 PR661] Make ./configure string consistent
  • bfebabb3 ABC: D5355 [libsecp256k1 PR654] Fix typo
  • 21f4f731 ABC: D5354 [libsecp256k1 PR656] Fix typo in docs for _context_set_illegal_callback
  • f144ff56 ABC: D5348 [libsecp256k1 PR631] typo in comment for secp256k1_ec_pubkey_tweak_mul ()
  • 73dc2619 ABC: D4628 Core: PR#15399 fuzz: Move deserialize tests to test/fuzz/deserialize.cpp
  • a039f772 ABC: D5825 Core: PR#17891 [backport] scripted-diff: Replace CCriticalSection with RecursiveMutex
  • d7dda0e0 ABC: D5849 Core: PR#15788 Backport leftovers from 15788
  • db6ebe7f ABC: D5848 Core: PR#13219,PR13806,PR15413,PR15788 bench: Add block assemble benchmark
  • d110c08a ABC: D5493 Core: PR#15788 (partial) test: Use test_bitcoin setup in bench
  • 6eea2b04 ABC: D5690 Core: PR#15201 Merge #15201: net: Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes.
  • 936228fb ABC: D5547 Core: PR#14561 Merge #14561: Remove fs::relative call and fix listwalletdir tests
  • 046cf057 ABC: D5546 Fixup paths in wallet_multiwallet
  • ae28a40a Core: PR#13918 [backport] Replace median fee rate with feerate percentiles
  • 1ef830ae Core: PR#15412,PR#15488 [tests] Add simple test of getblockstats call via bitcoin-cli

Don't miss a new bitcoin-cash-node release

NewReleases is sending notifications on new releases.