Bitcoin Core Changelog

What's new in Bitcoin Core 26.0

Feb 6, 2024
  • P2P and network changes:
  • Experimental support for the v2 transport protocol defined in BIP324 was added. It is off by default, but when enabled using -v2transport it will be negotiated on a per-connection basis with other peers that support it too. The existing v1 transport protocol remains fully supported.
  • Nodes with multiple reachable networks will actively try to have at least one outbound connection to each network. This improves individual resistance to eclipse attacks and network level resistance to partition attacks. Users no longer need to perform active measures to ensure being connected to multiple enabled networks. (#27213)
  • Pruning:
  • When using assumeutxo with -prune, the prune budget may be exceeded if it is set lower than 1100MB (i.e. MIN_DISK_SPACE_FOR_BLOCK_FILES * 2). Prune budget is normally split evenly across each chainstate, unless the resulting prune budget per chainstate is beneath MIN_DISK_SPACE_FOR_BLOCK_FILES in which case that value will be used. (#27596)
  • Updated RPCs:
  • Setting -rpcserialversion=0 is deprecated and will be removed in a future release. It can currently still be used by also adding the -deprecatedrpc=serialversion option. (#28448)
  • The hash_serialized_2 value has been removed from gettxoutsetinfo since the value it calculated contained a bug and did not take all data into account. It is superseded by hash_serialized_3 which provides the same functionality but serves the correctly calculated hash. (#28685)
  • New fields transport_protocol_type and session_id were added to the getpeerinfo RPC to indicate whether the v2 transport protocol is in use, and if so, what the session id is.
  • A new argument v2transport was added to the addnode RPC to indicate whether a v2 transaction connection is to be attempted with the peer.
  • Miniscript expressions can now be used in Taproot descriptors for all RPCs working with descriptors. (#27255)
  • finalizepsbt is now able to finalize a PSBT with inputs spending Miniscript-compatible Taproot leaves. (#27255)
  • Changes to wallet related RPCs can be found in the Wallet section below.
  • New RPCs:
  • loadtxoutset has been added, which allows loading a UTXO snapshot of the format generated by dumptxoutset. Once this snapshot is loaded, its contents will be deserialized into a second chainstate data structure, which is then used to sync to the network’s tip.
  • Meanwhile, the original chainstate will complete the initial block download process in the background, eventually validating up to the block that the snapshot is based upon.
  • The result is a usable bitcoind instance that is current with the network tip in a matter of minutes rather than hours. UTXO snapshot are typically obtained via third-party sources (HTTP, torrent, etc.) which is reasonable since their contents are always checked by hash.
  • You can find more information on this process in the assumeutxo design document (https://github.com/bitcoin/bitcoin/blob/master/doc/design/assumeutxo.md).
  • getchainstates has been added to aid in monitoring the assumeutxo sync process.
  • A new getprioritisedtransactions RPC has been added. It returns a map of all fee deltas created by the user with prioritisetransaction, indexed by txid. The map also indicates whether each transaction is present in the mempool. (#27501)
  • A new RPC, submitpackage, has been added. It can be used to submit a list of raw hex transactions to the mempool to be evaluated as a package using consensus and mempool policy rules. These policies include package CPFP, allowing a child with high fees to bump a parent below the mempool minimum feerate (but not minimum relay feerate). (#27609)
  • Warning: successful submission does not mean the transactions will propagate throughout the network, as package relay is not supported.
  • Not all features are available. The package is limited to a child with all of its unconfirmed parents, and no parent may spend the output of another parent. Also, package RBF is not supported. Refer to doc/policy/packages.md for more details on package policies and limitations.
  • This RPC is experimental. Its interface may change.
  • A new RPC getaddrmaninfo has been added to view the distribution of addresses in the new and tried table of the node’s address manager across different networks(ipv4, ipv6, onion, i2p, cjdns). The RPC returns count of addresses in new and tried table as well as their sum for all networks. (#27511)
  • A new importmempool RPC has been added. It loads a valid mempool.dat file and attempts to add its contents to the mempool. This can be useful to import mempool data from another node without having to modify the datadir contents and without having to restart the node. (#27460)
  • Warning: Importing untrusted files is dangerous, especially if metadata from the file is taken over.
  • If you want to apply fee deltas, it is recommended to use the getprioritisedtransactions and prioritisetransaction RPCs instead of the apply_fee_delta_priority option to avoid double-prioritising any already-prioritised transactions in the mempool.
  • Updated settings:
  • bitcoind and bitcoin-qt will now raise an error on startup if a datadir that is being used contains a bitcoin.conf file that will be ignored, which can happen when a datadir= line is used in a bitcoin.conf file. The error message is just a diagnostic intended to prevent accidental misconfiguration, and it can be disabled to restore the previous behavior of using the datadir while ignoring the bitcoin.conf contained in it. (#27302)
  • Passing an invalid -debug, -debugexclude, or -loglevel logging configuration option now raises an error, rather than logging an easily missed warning. (#27632)
  • Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
  • New settings:
  • Tools and Utilities:
  • A new bitcoinconsensus_verify_script_with_spent_outputs function is available in libconsensus which optionally accepts the spent outputs of the transaction being verified.
  • A new bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT flag is available in libconsensus that will verify scripts with the Taproot spending rules.
  • Wallet:
  • Wallet loading has changed in this release. Wallets with some corrupted records that could be previously loaded (with warnings) may no longer load. For example, wallets with corrupted address book entries may no longer load. If this happens, it is recommended load the wallet in a previous version of Bitcoin Core and import the data into a new wallet. Please also report an issue to help improve the software and make wallet loading more robust in these cases. (#24914)
  • The createwallet RPC will no longer create legacy (BDB) wallets when setting descriptors=false without also providing the -deprecatedrpc=create_bdb option. This is because the legacy wallet is being deprecated in a future release. (#28597)
  • The gettransaction, listtransactions, listsinceblock RPCs now return the abandoned field for all transactions. Previously, the “abandoned” field was only returned for sent transactions. (#25158)
  • The listdescriptors, decodepsbt and similar RPC methods now show h rather than apostrophe (') to indicate hardened derivation. This does not apply when using the private parameter, which matches the marker used when descriptor was generated or imported. Newly created wallets use h. This change makes it easier to handle descriptor strings manually. E.g. the importdescriptors RPC call is easiest to use h as the marker: '["desc": ".../0h/..."]'. With this change listdescriptors will use h, so you can copy-paste the result, without having to add escape characters or switch ' to ‘h’ manually. Note that this changes the descriptor checksum. For legacy wallets the hdkeypath field in getaddressinfo is unchanged, nor is the serialization format of wallet dumps. (#26076)
  • The getbalances RPC now returns a lastprocessedblock JSON object which contains the wallet’s last processed block hash and height at the time the balances were calculated. This result shouldn’t be cached because importing new keys could invalidate it. (#26094)
  • The gettransaction RPC now returns a lastprocessedblock JSON object which contains the wallet’s last processed block hash and height at the time the transaction information was generated. (#26094)
  • The getwalletinfo RPC now returns a lastprocessedblock JSON object which contains the wallet’s last processed block hash and height at the time the wallet information was generated. (#26094)
  • Coin selection and transaction building now accounts for unconfirmed low-feerate ancestor transactions. When it is necessary to spend unconfirmed outputs, the wallet will add fees to ensure that the new transaction with its ancestors will achieve a mining score equal to the feerate requested by the user. (#26152)
  • For RPC methods which accept options parameters ((importmulti, listunspent, fundrawtransaction, bumpfee, send, sendall, walletcreatefundedpsbt, simulaterawtransaction), it is now possible to pass the options as named parameters without the need for a nested object. (#26485)
  • The deprecatedrpc=walletwarningfield configuration option has been removed. The createwallet, loadwallet, restorewallet and unloadwallet RPCs no longer return the “warning” string field. The same information is provided through the “warnings” field added in v25.0, which returns a JSON array of strings. The “warning” string field was deprecated also in v25.0. (#27757)
  • The signrawtransactionwithkey, signrawtransactionwithwallet, walletprocesspsbt and descriptorprocesspsbt calls now return the more specific RPC_INVALID_PARAMETER error instead of RPC_MISC_ERROR if their sighashtype argument is malformed. (#28113)
  • RPC walletprocesspsbt, and descriptorprocesspsbt return object now includes field hex (if the transaction is complete) containing the serialized transaction suitable for RPC sendrawtransaction. (#28414)
  • It’s now possible to use Miniscript inside Taproot leaves for descriptor wallets. (#27255)
  • Descriptors:
  • The usage of hybrid public keys in output descriptors has been removed. Hybrid public keys are an exotic public key encoding not supported by output descriptors (as specified in BIP380 and documented in doc/descriptors.md). Bitcoin Core would previously incorrectly accept descriptors containing such hybrid keys. (#28587)
  • GUI changes:
  • The transaction list in the GUI no longer provides a special category for “payment to yourself”. Now transactions that have both inputs and outputs that affect the wallet are displayed on separate lines for spending and receiving. (gui#119)
  • A new menu option allows migrating a legacy wallet based on keys and implied output script types stored in BerkeleyDB (BDB) to a modern wallet that uses descriptors stored in SQLite. (gui#738)
  • The PSBT operations dialog marks outputs paying your own wallet with “own address”. (gui#740)
  • The ability to create legacy wallets is being removed. (gui#764)
  • Contrib:
  • Bash completion files have been renamed from bitcoin*.bash-completion to bitcoin*.bash. This means completions can be automatically loaded on demand based on invoked commands’ names when they are put into the completion directory (found with pkg-config --variable=completionsdir bash-completion) without requiring renaming. (#28507)
  • Low-level changes:
  • Tests:
  • Non-standard transactions are now disabled by default on testnet for relay and mempool acceptance. The previous behaviour can be re-enabled by setting -acceptnonstdtxn=1. (#28354)

New in Bitcoin Core 25.0 (Aug 8, 2023)

  • P2P and network changes: Transactions of non-witness size 65 bytes and above are now allowed by mempool and relay policy. This is to better reflect the actual afforded protections against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265)
  • New RPCs: The scanblocks RPC returns the relevant blockhashes from a set of descriptors by scanning all blockfilters in the given range. It can be used in combination with the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note that this functionality can only be used if a compact block filter index (-blockfilterindex=1) has been constructed by the node. (#23549)
  • Updated RPCs: All JSON-RPC methods accept a new named parameter called args that can contain positional parameter values. This is a convenience to allow some parameter values to be passed by name without having to name every value. The python test framework and bitcoin-cli tool both take advantage of this, so for example: bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1
  • Can now be shortened to: bitcoin-cli -named createwallet mywallet load_on_startup=1
  • The verifychain RPC will now return false if the checks didn’t fail, but couldn’t be completed at the desired depth and level. This could be due to missing data while pruning, due to an insufficient dbcache or due to the node being shutdown before the call could finish. (#25574)
  • sendrawtransaction has a new, optional argument, maxburnamount with a default value of 0. Any transaction containing an unspendable output with a value greater than maxburnamount will not be submitted. At present, the outputs deemed unspendable are those with scripts that begin with an OP_RETURN code (known as ‘datacarriers’), scripts that exceed the maximum script size, and scripts that contain invalid opcodes.
  • The testmempoolaccept RPC now returns 2 additional results within the “fees” result: “effective-feerate” is the feerate including fees and sizes of transactions validated together if package validation was used, and also includes any modified fees from prioritisetransaction. The “effective-includes” result lists the wtxids of transactions whose modified fees and sizes were used in the effective-feerate (#26646).
  • decodescript may now infer a Miniscript descriptor under P2WSH context if it is not lacking information. (#27037)
  • finalizepsbt is now able to finalize a transaction with inputs spending Miniscript-compatible P2WSH scripts. (#24149)
  • Changes to wallet related RPCs can be found in the Wallet section below.
  • Build System:
  • The --enable-upnp-default and --enable-natpmp-default options have been removed. If you want to use port mapping, you can configure it using a .conf file, or by passing the relevant options at runtime. (#26896)
  • Updated settings:
  • If the -checkblocks or -checklevel options are explicitly provided by the user, but the verification checks cannot be completed due to an insufficient dbcache, Bitcoin Core will now return an error at startup. (#25574)
  • Ports specified in -port and -rpcport options are now validated at startup. Values that previously worked and were considered valid can now result in errors. (#22087)
  • Setting -blocksonly will now reduce the maximum mempool memory to 5MB (users may still use -maxmempool to override). Previously, the default 300MB would be used, leading to unexpected memory usage for users running with -blocksonly expecting it to eliminate mempool memory usage.
  • As unused mempool memory is shared with dbcache, this also reduces the dbcache size for users running with -blocksonly, potentially impacting performance.
  • Setting -maxconnections=0 will now disable -dnsseed and -listen (users may still set them to override).
  • Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
  • New settings:
  • The shutdownnotify option is used to specify a command to execute synchronously before Bitcoin Core has begun its shutdown sequence. (#23395)
  • Wallet:
  • The minconf option, which allows a user to specify the minimum number of confirmations a UTXO being spent has, and the maxconf option, which allows specifying the maximum number of confirmations, have been added to the following RPCs in #25375:
  • fundrawtransaction
  • send
  • walletcreatefundedpsbt
  • sendall
  • Added a new next_index field in the response in listdescriptors to have the same format as importdescriptors (#26194)
  • RPC listunspent now has a new argument include_immature_coinbase to include coinbase UTXOs that don’t meet the minimum spendability depth requirement (which before were silently skipped). (#25730)
  • Rescans for descriptor wallets are now significantly faster if compact block filters (BIP158) are available. Since those are not constructed by default, the configuration option “-blockfilterindex=1” has to be provided to take advantage of the optimization. This improves the performance of the RPC calls rescanblockchain, importdescriptors and restorewallet. (#25957)
  • RPC unloadwallet now fails if a rescan is in progress. (#26618)
  • Wallet passphrases may now contain null characters. Prior to this change, only characters up to the first null character were recognized and accepted. (#27068)
  • Address Purposes strings are now restricted to the currently known values of “send”, “receive”, and “refund”. Wallets that have unrecognized purpose strings will have loading warnings, and the listlabels RPC will raise an error if an unrecognized purpose is requested. (#27217)
  • In the createwallet, loadwallet, unloadwallet, and restorewallet RPCs, the “warning” string field is deprecated in favor of a “warnings” field that returns a JSON array of strings to better handle multiple warning messages and for consistency with other wallet RPCs. The “warning” field will be fully removed from these RPCs in v26. It can be temporarily re-enabled during the deprecation period by launching bitcoind with the configuration option -deprecatedrpc=walletwarningfield. (#27279)
  • Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149)
  • GUI changes:
  • The “Mask values” is a persistent option now. (gui#701)
  • The “Mask values” option affects the “Transaction” view now, in addition to the “Overview” one. (gui#708)
  • REST:
  • A new /rest/deploymentinfo endpoint has been added for fetching various state info regarding deployments of consensus changes. (#25412)
  • Binary verification:
  • The binary verification script has been updated. In previous releases it would verify that the binaries had been signed with a single “release key”. In this release and moving forward it will verify that the binaries are signed by a threshold of trusted keys. For more details and examples, see: https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md (#27358)
  • Low-level changes:
  • RPC:
  • The JSON-RPC server now rejects requests where a parameter is specified multiple times with the same name, instead of silently overwriting earlier parameter values with later ones. (#26628)
  • RPC listsinceblock now accepts an optional label argument to fetch incoming transactions having the specified label. (#25934)
  • Previously setban, addpeeraddress, walletcreatefundedpsbt, methods allowed non-boolean and non-null values to be passed as boolean parameters. Any string, number, array, or object value that was passed would be treated as false. After this change, passing any value except true, false, or null now triggers a JSON value is not of expected type error. (#26213)

New in Bitcoin Core 23.0 (Sep 21, 2022)

  • P2P and network changes:
  • A bitcoind node will no longer rumour addresses to inbound peers by default. They will become eligible for address gossip after sending an ADDR, ADDRV2, or GETADDR message. (#21528)
  • Before this release, Bitcoin Core had a strong preference to try to connect only to peers that listen on port 8333. As a result of that, Bitcoin nodes listening on non-standard ports would likely not get any Bitcoin Core peers connecting to them. This preference has been removed. (#23542)
  • Full support has been added for the CJDNS network. See the new option -cjdnsreachable and doc/cjdns.md (#23077)
  • Fee estimation changes:
  • Fee estimation now takes the feerate of replacement (RBF) transactions into account. (#22539)
  • Rescan startup parameter removed:
  • The -rescan startup parameter has been removed. Wallets which require rescanning due to corruption will still be rescanned on startup. Otherwise, please use the rescanblockchain RPC to trigger a rescan. (#23123)
  • Tracepoints and Userspace, Statically Defined Tracing support:
  • Bitcoin Core release binaries for Linux now include experimental tracepoints which act as an interface for process-internal events. These can be used for review, debugging, monitoring, and more. The tracepoint API is semi-stable. While the API is tested, process internals might change between releases requiring changes to the tracepoints. Information about the existing tracepoints can be found under doc/tracing.md and usage examples are provided in contrib/tracing/.
  • Updated RPCs:
  • The validateaddress RPC now returns an error_locations array for invalid addresses, with the indices of invalid character locations in the address (if known). For example, this will attempt to locate up to two Bech32 errors, and return their locations if successful. Success and correctness are only guaranteed if fewer than two substitution errors have been made. The error message returned in the error field now also returns more specific errors when decoding fails. (#16807)
  • The -deprecatedrpc=addresses configuration option has been removed. RPCs gettxout, getrawtransaction, decoderawtransaction, decodescript, gettransaction verbose=true and REST endpoints /rest/tx, /rest/getutxos, /rest/block no longer return the addresses and reqSigs fields, which were previously deprecated in 22.0. (#22650)
  • The getblock RPC command now supports verbosity level 3 containing transaction inputs’ prevout information. The existing /rest/block/ REST endpoint is modified to contain this information too. Every vin field will contain an additional prevout subfield describing the spent output. prevout contains the following keys:
  • generated - true if the spent coins was a coinbase.
  • height
  • value
  • scriptPubKey
  • The top-level fee fields fee, modifiedfee, ancestorfees and descendantfees returned by RPCs getmempoolentry,getrawmempool(verbose=true), getmempoolancestors(verbose=true) and getmempooldescendants(verbose=true) are deprecated and will be removed in the next major version (use -deprecated=fees if needed in this version). The same fee fields can be accessed through the fees object in the result. WARNING: deprecated fields ancestorfees and descendantfees are denominated in sats, whereas all fields in the fees object are denominated in BTC. (#22689)
  • Both createmultisig and addmultisigaddress now include a warnings field, which will show a warning if a non-legacy address type is requested when using uncompressed public keys. (#23113)
  • Changes to wallet related RPCs can be found in the Wallet section below.
  • New RPCs:
  • Information on soft fork status has been moved from getblockchaininfo to the new getdeploymentinfo RPC which allows querying soft fork status at any block, rather than just at the chain tip. Inclusion of soft fork status in getblockchaininfo can currently be restored using the configuration -deprecatedrpc=softforks, but this will be removed in a future release. Note that in either case, the status field now reflects the status of the current block rather than the next block. (#23508)
  • Files:
  • On startup, the list of banned hosts and networks (via setban RPC) in banlist.dat is ignored and only banlist.json is considered. Bitcoin Core version 22.x is the only version that can read banlist.dat and also write it to banlist.json. If banlist.json already exists, version 22.x will not try to translate the banlist.dat into json. After an upgrade, listbanned can be used to double check the parsed entries. (#22570)
  • Updated settings:
  • In previous releases, the meaning of the command line option -persistmempool (without a value provided) incorrectly disabled mempool persistence. -persistmempool is now treated like other boolean options to mean -persistmempool=1. Passing -persistmempool=0, -persistmempool=1 and -nopersistmempool is unaffected. (#23061)
  • -maxuploadtarget now allows human readable byte units [k|K|m|M|g|G|t|T]. E.g. -maxuploadtarget=500g. No whitespace, +- or fractions allowed. Default is M if no suffix provided. (#23249)
  • If -proxy= is given together with -noonion then the provided proxy will not be set as a proxy for reaching the Tor network. So it will not be possible to open manual connections to the Tor network for example with the addnode RPC. To mimic the old behavior use -proxy= together with -onlynet= listing all relevant networks except onion. (#22834)
  • Tools and Utilities:
  • Update -getinfo to return data in a user-friendly format that also reduces vertical space. (#21832)
  • CLI -addrinfo now returns a single field for the number of onion addresses known to the node instead of separate torv2 and torv3 fields, as support for Tor V2 addresses was removed from Bitcoin Core in 22.0. (#22544)
  • Wallet:
  • Descriptor wallets are now the default wallet type. Newly created wallets will use descriptors unless descriptors=false is set during createwallet, or the Descriptor wallet checkbox is unchecked in the GUI.
  • Note that wallet RPC commands like importmulti and dumpprivkey cannot be used with descriptor wallets, so if your client code relies on these commands without specifying descriptors=false during wallet creation, you will need to update your code.
  • Newly created descriptor wallets will contain an automatically generated tr() descriptor which allows for creating single key Taproot receiving addresses.
  • upgradewallet will now automatically flush the keypool if upgrading from a non-HD wallet to an HD wallet, to immediately start using the newly-generated HD keys. (#23093)
  • a new RPC newkeypool has been added, which will flush (entirely clear and refill) the keypool. (#23093)
  • listunspent now includes ancestorcount, ancestorsize, and ancestorfees for each transaction output that is still in the mempool. (#12677)
  • lockunspent now optionally takes a third parameter, persistent, which causes the lock to be written persistently to the wallet database. This allows UTXOs to remain locked even after node restarts or crashes. (#23065)
  • receivedby RPCs now include coinbase transactions. Previously, the following wallet RPCs excluded coinbase transactions: getreceivedbyaddress, getreceivedbylabel, listreceivedbyaddress, listreceivedbylabel. This release changes this behaviour and returns results accounting for received coins from coinbase outputs. The previous behaviour can be restored using the configuration -deprecatedrpc=exclude_coinbase, but may be removed in a future release. (#14707)
  • A new option in the same receivedby RPCs, include_immature_coinbase (default=false), determines whether to account for immature coinbase transactions. Immature coinbase transactions are coinbase transactions that have 100 or fewer confirmations, and are not spendable. (#14707)
  • GUI changes:
  • UTXOs which are locked via the GUI are now stored persistently in the wallet database, so are not lost on node shutdown or crash. (#23065)
  • The Bech32 checkbox has been replaced with a dropdown for all address types, including the new Bech32m (BIP-350) standard for Taproot enabled wallets.
  • Low-level changes:
  • RPC:
  • getblockchaininfo now returns a new time field, that provides the chain tip time. (#22407)
  • Tests:
  • For the regtest network the activation heights of several softforks were set to block height 1. They can be changed by the runtime setting -testactivationheight=name@height. (#22818)

New in Bitcoin Core 22.0 (Nov 16, 2021)

  • Consensus:
  • #19438 Introduce deploymentstatus (ajtowns)
  • #20207 Follow-up extra comments on taproot code and tests (sipa)
  • #21330 Deal with missing data in signature hashes more consistently (sipa)
  • Policy:
  • #18766 Disable fee estimation in blocksonly mode (by removing the fee estimates global) (darosior)
  • #20497 Add MAX_STANDARD_SCRIPTSIG_SIZE to policy (sanket1729)
  • #20611 Move TX_MAX_STANDARD_VERSION to policy (MarcoFalke)
  • Mining:
  • #19937, bitcoin/bitcoin#20923 Signet mining utility (ajtowns)
  • Block and transaction handling:
  • #14501 Fix possible data race when committing block files (luke-jr)
  • #15946 Allow maintaining the blockfilterindex when using prune (jonasschnelli)
  • #18710 Add local thread pool to CCheckQueue (hebasto)
  • #19521 Coinstats Index (fjahr)
  • #19806 UTXO snapshot activation (jamesob)
  • #19905 Remove dead CheckForkWarningConditionsOnNewFork (MarcoFalke)
  • #19935 Move SaltedHashers to separate file and add some new ones (achow101)
  • #20054 Remove confusing and useless “unexpected version” warning (MarcoFalke)
  • #20519 Handle rename failure in DumpMempool(…) by using the RenameOver(…) return value (practicalswift)
  • #20749, bitcoin/bitcoin#20750, bitcoin/bitcoin#21055, bitcoin/bitcoin#21270, bitcoin/bitcoin#21525, bitcoin/bitcoin#21391, bitcoin/bitcoin#21767, bitcoin/bitcoin#21866 Prune g_chainman usage (dongcarl)
  • #20833 rpc/validation: enable packages through testmempoolaccept (glozow)
  • #20834 Locks and docs in ATMP and CheckInputsFromMempoolAndCache (glozow)
  • #20854 Remove unnecessary try-block (amitiuttarwar)
  • #20868 Remove redundant check on pindex (jarolrod)
  • #20921 Don’t try to invalidate genesis block in CChainState::InvalidateBlock (theStack)
  • #20972 Locks: Annotate CTxMemPool::check to require cs_main (dongcarl)
  • #21009 Remove RewindBlockIndex logic (dhruv)
  • #21025 Guard chainman chainstates with cs_main (dongcarl)
  • #21202 Two small clang lock annotation improvements (amitiuttarwar)
  • #21523 Run VerifyDB on all chainstates (jamesob)
  • #21573 Update libsecp256k1 subtree to latest master (sipa)
  • #21582, bitcoin/bitcoin#21584, bitcoin/bitcoin#21585 Fix assumeutxo crashes (MarcoFalke)
  • #21681 Fix ActivateSnapshot to use hardcoded nChainTx (jamesob)
  • #21796 index: Avoid async shutdown on init error (MarcoFalke)
  • #21946 Document and test lack of inherited signaling in RBF policy (ariard)
  • #22084 Package testmempoolaccept followups (glozow)
  • #22102 Remove Warning: from warning message printed for unknown new rules (prayank23)
  • #22112 Force port 0 in I2P (vasild)
  • #22135 CRegTestParams: Use args instead of gArgs (kiminuo)
  • #22146 Reject invalid coin height and output index when loading assumeutxo (MarcoFalke)
  • #22253 Distinguish between same tx and same-nonwitness-data tx in mempool (glozow)
  • #22261 Two small fixes to node broadcast logic (jnewbery)
  • #22415 Make m_mempool optional in CChainState (jamesob)
  • #22499 Update assumed chain params (sriramdvt)
  • #22589 net, doc: update I2P hardcoded seeds and docs for 22.0 (jonatack)
  • P2P protocol and network code:
  • #18077 Add NAT-PMP port forwarding support (hebasto)
  • #18722 addrman: improve performance by using more suitable containers (vasild)
  • #18819 Replace cs_feeFilter with simple std::atomic (MarcoFalke)
  • #19203 Add regression fuzz harness for CVE-2017-18350. Add FuzzedSocket (practicalswift)
  • #19288 fuzz: Add fuzzing harness for TorController (practicalswift)
  • #19415 Make DNS lookup mockable, add fuzzing harness (practicalswift)
  • #19509 Per-Peer Message Capture (troygiorshev)
  • #19763 Don’t try to relay to the address’ originator (vasild)
  • #19771 Replace enum CConnMan::NumConnections with enum class ConnectionDirection (luke-jr)
  • #19776 net, rpc: expose high bandwidth mode state via getpeerinfo (theStack)
  • #19832 Put disconnecting logs into BCLog::NET category (hebasto)
  • #19858 Periodically make block-relay connections and sync headers (sdaftuar)
  • #19884 No delay in adding fixed seeds if -dnsseed=0 and peers.dat is empty (dhruv)
  • #20079 Treat handshake misbehavior like unknown message (MarcoFalke)
  • #20138 Assume that SetCommonVersion is called at most once per peer (MarcoFalke)
  • #20162 p2p: declare Announcement::m_state as uint8_t, add getter/setter (jonatack)
  • #20197 Protect onions in AttemptToEvictConnection(), add eviction protection test coverage (jonatack)
  • #20210 assert CNode::m_inbound_onion is inbound in ctor, add getter, unit tests (jonatack)
  • #20228 addrman: Make addrman a top-level component (jnewbery)
  • #20234 Don’t bind on 0.0.0.0 if binds are restricted to Tor (vasild)
  • #20477 Add unit testing of node eviction logic (practicalswift)
  • #20516 Well-defined CAddress disk serialization, and addrv2 anchors.dat (sipa)
  • #20557 addrman: Fix new table bucketing during unserialization (jnewbery)
  • #20561 Periodically clear m_addr_known (sdaftuar)
  • #20599 net processing: Tolerate sendheaders and sendcmpct messages before verack (jnewbery)
  • #20616 Check CJDNS address is valid (lontivero)
  • #20617 Remove m_is_manual_connection from CNodeState (ariard)
  • #20624 net processing: Remove nStartingHeight check from block relay (jnewbery)
  • #20651 Make p2p recv buffer timeout 20 minutes for all peers (jnewbery)
  • #20661 Only select from addrv2-capable peers for torv3 address relay (sipa)
  • #20685 Add I2P support using I2P SAM (vasild)
  • #20690 Clean up logging of outbound connection type (sdaftuar)
  • #20721 Move ping data to net_processing (jnewbery)
  • #20724 Cleanup of -debug=net log messages (ajtowns)
  • #20747 net processing: Remove dropmessagestest (jnewbery)
  • #20764 cli -netinfo peer connections dashboard updates 🎄 ✨ (jonatack)
  • #20788 add RAII socket and use it instead of bare SOCKET (vasild)
  • #20791 remove unused legacyWhitelisted in AcceptConnection() (jonatack)
  • #20816 Move RecordBytesSent() call out of cs_vSend lock (jnewbery)
  • #20845 Log to net debug in MaybeDiscourageAndDisconnect except for noban and manual peers (MarcoFalke)
  • #20864 Move SocketSendData lock annotation to header (MarcoFalke)
  • #20965 net, rpc: return NET_UNROUTABLE as not_publicly_routable, automate helps (jonatack)
  • #20966 banman: save the banlist in a JSON format on disk (vasild)
  • #21015 Make all of net_processing (and some of net) use std::chrono types (dhruv)
  • #21029 bitcoin-cli: Correct docs (no “generatenewaddress” exists) (luke-jr)
  • #21148 Split orphan handling from net_processing into txorphanage (ajtowns)
  • #21162 Net Processing: Move RelayTransaction() into PeerManager (jnewbery)
  • #21167 make CNode::m_inbound_onion public, initialize explicitly (jonatack)
  • #21186 net/net processing: Move addr data into net_processing (jnewbery)
  • #21187 Net processing: Only call PushAddress() from net_processing (jnewbery)
  • #21198 Address outstanding review comments from PR20721 (jnewbery)
  • #21222 log: Clarify log message when file does not exist (MarcoFalke)
  • #21235 Clarify disconnect log message in ProcessGetBlockData, remove send bool (MarcoFalke)
  • #21236 Net processing: Extract addr send functionality into MaybeSendAddr() (jnewbery)
  • #21261 update inbound eviction protection for multiple networks, add I2P peers (jonatack)
  • #21328 net, refactor: pass uint16 CService::port as uint16 (jonatack)
  • #21387 Refactor sock to add I2P fuzz and unit tests (vasild)
  • #21395 Net processing: Remove unused CNodeState.address member (jnewbery)
  • #21407 i2p: limit the size of incoming messages (vasild)
  • #21506 p2p, refactor: make NetPermissionFlags an enum class (jonatack)
  • #21509 Don’t send FEEFILTER in blocksonly mode (mzumsande)
  • #21560 Add Tor v3 hardcoded seeds (laanwj)
  • #21563 Restrict period when cs_vNodes mutex is locked (hebasto)
  • #21564 Avoid calling getnameinfo when formatting IPv4 addresses in CNetAddr::ToStringIP (practicalswift)
  • #21631 i2p: always check the return value of Sock::Wait() (vasild)
  • #21644 p2p, bugfix: use NetPermissions::HasFlag() in CConnman::Bind() (jonatack)
  • #21659 flag relevant Sock methods with [[nodiscard]] (vasild)
  • #21750 remove unnecessary check of CNode::cs_vSend (vasild)
  • #21756 Avoid calling getnameinfo when formatting IPv6 addresses in CNetAddr::ToStringIP (practicalswift)
  • #21775 Limit m_block_inv_mutex (MarcoFalke)
  • #21825 Add I2P hardcoded seeds (jonatack)
  • #21843 p2p, rpc: enable GetAddr, GetAddresses, and getnodeaddresses by network (jonatack)
  • #21845 net processing: Don’t require locking cs_main before calling RelayTransactions() (jnewbery)
  • #21872 Sanitize message type for logging (laanwj)
  • #21914 Use stronger AddLocal() for our I2P address (vasild)
  • #21985 Return IPv6 scope id in CNetAddr::ToStringIP() (laanwj)
  • #21992 Remove -feefilter option (amadeuszpawlik)
  • #21996 Pass strings to NetPermissions::TryParse functions by const ref (jonatack)
  • #22013 ignore block-relay-only peers when skipping DNS seed (ajtowns)
  • #22050 Remove tor v2 support (jonatack)
  • #22096 AddrFetch - don’t disconnect on self-announcements (mzumsande)
  • #22141 net processing: Remove hash and fValidatedHeaders from QueuedBlock (jnewbery)
  • #22144 Randomize message processing peer order (sipa)
  • #22147 Protect last outbound HB compact block peer (sdaftuar)
  • #22179 Torv2 removal followups (vasild)
  • #22211 Relay I2P addresses even if not reachable (by us) (vasild)
  • #22284 Performance improvements to ProtectEvictionCandidatesByRatio() (jonatack)
  • #22387 Rate limit the processing of rumoured addresses (sipa)
  • #22455 addrman: detect on-disk corrupted nNew and nTried during unserialization (vasild)
  • Wallet:
  • #15710 Catch ios_base::failure specifically (Bushstar)
  • #16546 External signer support - Wallet Box edition (Sjors)
  • #17331 Use effective values throughout coin selection (achow101)
  • #18418 Increase OUTPUT_GROUP_MAX_ENTRIES to 100 (fjahr)
  • #18842 Mark replaced tx to not be in the mempool anymore (MarcoFalke)
  • #19136 Add parent_desc to getaddressinfo (achow101)
  • #19137 wallettool: Add dump and createfromdump commands (achow101)
  • #19651 importdescriptors update existing (S3RK)
  • #20040 Refactor OutputGroups to handle fees and spending eligibility on grouping (achow101)
  • #20202 Make BDB support optional (achow101)
  • #20226, bitcoin/bitcoin#21277, - #21063 Add listdescriptors command (S3RK)
  • #20267 Disable and fix tests for when BDB is not compiled (achow101)
  • #20275 List all wallets in non-SQLite and non-BDB builds (ryanofsky)
  • #20365 wallettool: Add parameter to create descriptors wallet (S3RK)
  • #20403 upgradewallet fixes, improvements, test coverage (jonatack)
  • #20448 unloadwallet: Allow specifying wallet_name param matching RPC endpoint wallet (luke-jr)
  • #20536 Error with “Transaction too large” if the funded tx will end up being too large after signing (achow101)
  • #20687 Add missing check for -descriptors wallet tool option (MarcoFalke)
  • #20952 Add BerkeleyDB version sanity check at init time (laanwj)
  • #21127 Load flags before everything else (Sjors)
  • #21141 Add new format string placeholders for walletnotify (maayank)
  • #21238 A few descriptor improvements to prepare for Taproot support (sipa)
  • #21302 createwallet examples for descriptor wallets (S3RK)
  • #21329 descriptor wallet: Cache last hardened xpub and use in normalized descriptors (achow101)
  • #21365 Basic Taproot signing support for descriptor wallets (sipa)
  • #21417 Misc external signer improvement and HWI 2 support (Sjors)
  • #21467 Move external signer out of wallet module (Sjors)
  • #21572 Fix wrong wallet RPC context set after #21366 (ryanofsky)
  • #21574 Drop JSONRPCRequest constructors after #21366 (ryanofsky)
  • #21666 Miscellaneous external signer changes (fanquake)
  • #21759 Document coin selection code (glozow)
  • #21786 Ensure sat/vB feerates are in range (mantissa of 3) (jonatack)
  • #21944 Fix issues when walletdir is root directory (prayank23)
  • #22042 Replace size/weight estimate tuple with struct for named fields (instagibbs)
  • #22051 Basic Taproot derivation support for descriptors (sipa)
  • #22154 Add OutputType::BECH32M and related wallet support for fetching bech32m addresses (achow101)
  • #22156 Allow tr() import only when Taproot is active (achow101)
  • #22166 Add support for inferring tr() descriptors (sipa)
  • #22173 Do not load external signers wallets when unsupported (achow101)
  • #22308 Add missing BlockUntilSyncedToCurrentChain (MarcoFalke)
  • #22334 Do not spam about non-existent spk managers (S3RK)
  • #22379 Erase spkmans rather than setting to nullptr (achow101)
  • #22421 Make IsSegWitOutput return true for taproot outputs (sipa)
  • #22461 Change ScriptPubKeyMan::Upgrade default to True (achow101)
  • #22492 Reorder locks in dumpwallet to avoid lock order assertion (achow101)
  • #22686 Use GetSelectionAmount in ApproximateBestSubset (achow101)
  • RPC and other APIs:
  • #18335, bitcoin/bitcoin#21484 cli: Print useful error if bitcoind rpc work queue exceeded (LarryRuane)
  • #18466 Fix invalid parameter error codes for {sign,verify}message RPCs (theStack)
  • #18772 Calculate fees in getblock using BlockUndo data (robot-visions)
  • #19033 http: Release work queue after event base finish (promag)
  • #19055 Add MuHash3072 implementation (fjahr)
  • #19145 Add hash_type MUHASH for gettxoutsetinfo (fjahr)
  • #19847 Avoid duplicate set lookup in gettxoutproof (promag)
  • #20286 Deprecate addresses and reqSigs from RPC outputs (mjdietzx)
  • #20459 Fail to return undocumented return values (MarcoFalke)
  • #20461 Validate -rpcauth arguments (promag)
  • #20556 Properly document return values (submitblock, gettxout, getblocktemplate, scantxoutset) (MarcoFalke)
  • #20755 Remove deprecated fields from getpeerinfo (amitiuttarwar)
  • #20832 Better error messages for invalid addresses (eilx2)
  • #20867 Support up to 20 keys for multisig under Segwit context (darosior)
  • #20877 cli: -netinfo user help and argument parsing improvements (jonatack)
  • #20891 Remove deprecated bumpfee behavior (achow101)
  • #20916 Return wtxid from testmempoolaccept (MarcoFalke)
  • #20917 Add missing signet mentions in network name lists (theStack)
  • #20941 Document RPC_TRANSACTION_ALREADY_IN_CHAIN exception (jarolrod)
  • #20944 Return total fee in getmempoolinfo (MarcoFalke)
  • #20964 Add specific error code for “wallet already loaded” (laanwj)
  • #21053 Document {previous,next}blockhash as optional (theStack)
  • #21056 Add a -rpcwaittimeout parameter to limit time spent waiting (cdecker)
  • #21192 cli: Treat high detail levels as maximum in -netinfo (laanwj)
  • #21311 Document optional fields for getchaintxstats result (theStack)
  • #21359 include_unsafe option for fundrawtransaction (t-bast)
  • #21426 Remove scantxoutset EXPERIMENTAL warning (jonatack)
  • #21544 Missing doc updates for bumpfee psbt update (MarcoFalke)
  • #21594 Add network field to getnodeaddresses (jonatack)
  • #21595, bitcoin/bitcoin#21753 cli: Create -addrinfo (jonatack)
  • #21602 Add additional ban time fields to listbanned (jarolrod)
  • #21679 Keep default argument value in correct type (promag)
  • #21718 Improve error message for getblock invalid datatype (klementtan)
  • #21913 RPCHelpMan fixes (kallewoof)
  • #22021 bumpfee/psbtbumpfee fixes and updates (jonatack)
  • #22043 addpeeraddress test coverage, code simplify/constness (jonatack)
  • #22327 cli: Avoid truncating -rpcwaittimeout (MarcoFalke)
  • GUI:
  • #18948 Call setParent() in the parent’s context (hebasto)
  • #20482 Add depends qt fix for ARM macs (jonasschnelli)
  • #21836 scripted-diff: Replace three dots with ellipsis in the ui strings (hebasto)
  • #21935 Enable external signer support for GUI builds (Sjors)
  • #22133 Make QWindowsVistaStylePlugin available again (regression) (hebasto)
  • gui#4 UI external signer support (e.g. hardware wallet) (Sjors)
  • gui#13 Hide peer detail view if multiple are selected (promag)
  • gui#18 Add peertablesortproxy module (hebasto)
  • gui#21 Improve pruning tooltip (fluffypony, BitcoinErrorLog)
  • gui#72 Log static plugins meta data and used style (hebasto)
  • gui#79 Embed monospaced font (hebasto)
  • gui#85 Remove unused “What’s This” button in dialogs on Windows OS (hebasto)
  • gui#115 Replace “Hide tray icon” option with positive “Show tray icon” one (hebasto)
  • gui#118 Remove BDB version from the Information tab (hebasto)
  • gui#121 Early subscribe core signals in transaction table model (promag)
  • gui#123 Do not accept command while executing another one (hebasto)
  • gui#125 Enable changing the autoprune block space size in intro dialog (luke-jr)
  • gui#138 Unlock encrypted wallet “OK” button bugfix (mjdietzx)
  • gui#139 doc: Improve gui/src/qt README.md (jarolrod)
  • gui#154 Support macOS Dark mode (goums, Uplab)
  • gui#162 Add network to peers window and peer details (jonatack)
  • gui#163, bitcoin-core/gui#180 Peer details: replace Direction with Connection Type (jonatack)
  • gui#164 Handle peer addition/removal in a right way (hebasto)
  • gui#165 Save QSplitter state in QSettings (hebasto)
  • gui#173 Follow Qt docs when implementing rowCount and columnCount (hebasto)
  • gui#179 Add Type column to peers window, update peer details name/tooltip (jonatack)
  • gui#186 Add information to “Confirm fee bump” window (prayank23)
  • gui#189 Drop workaround for QTBUG-42503 which was fixed in Qt 5.5.0 (prusnak)
  • gui#194 Save/restore RPCConsole geometry only for window (hebasto)
  • gui#202 Fix right panel toggle in peers tab (RandyMcMillan)
  • gui#203 Display plain “Inbound” in peer details (jonatack)
  • gui#204 Drop buggy TableViewLastColumnResizingFixer class (hebasto)
  • gui#205, bitcoin-core/gui#229 Save/restore TransactionView and recentRequestsView tables column sizes (hebasto)
  • gui#206 Display fRelayTxes and bip152_highbandwidth_{to, from} in peer details (jonatack)
  • gui#213 Add Copy Address Action to Payment Requests (jarolrod)
  • gui#214 Disable requests context menu actions when appropriate (jarolrod)
  • gui#217 Make warning label look clickable (jarolrod)
  • gui#219 Prevent the main window popup menu (hebasto)
  • gui#220 Do not translate file extensions (hebasto)
  • gui#221 RPCConsole translatable string fixes and improvements (jonatack)
  • gui#226 Add “Last Block” and “Last Tx” rows to peer details area (jonatack)
  • gui#233 qt test: Don’t bind to regtest port (achow101)
  • gui#243 Fix issue when disabling the auto-enabled blank wallet checkbox (jarolrod)
  • gui#246 Revert “qt: Use “fusion” style on macOS Big Sur with old Qt” (hebasto)
  • gui#248 For values of “Bytes transferred” and “Bytes/s” with 1000-based prefix names use 1000-based divisor instead of 1024-based (wodry)
  • gui#251 Improve URI/file handling message (hebasto)
  • gui#256 Save/restore column sizes of the tables in the Peers tab (hebasto)
  • gui#260 Handle exceptions isntead of crash (hebasto)
  • gui#263 Revamp context menus (hebasto)
  • gui#271 Don’t clear console prompt when font resizing (jarolrod)
  • gui#275 Support runtime appearance adjustment on macOS (hebasto)
  • gui#276 Elide long strings in their middle in the Peers tab (hebasto)
  • gui#281 Set shortcuts for console’s resize buttons (jarolrod)
  • gui#293 Enable wordWrap for Services (RandyMcMillan)
  • gui#296 Do not use QObject::tr plural syntax for numbers with a unit symbol (hebasto)
  • gui#297 Avoid unnecessary translations (hebasto)
  • gui#298 Peertableview alternating row colors (RandyMcMillan)
  • gui#300 Remove progress bar on modal overlay (brunoerg)
  • gui#309 Add access to the Peers tab from the network icon (hebasto)
  • gui#311 Peers Window rename ‘Peer id’ to ‘Peer’ (jarolrod)
  • gui#313 Optimize string concatenation by default (hebasto)
  • gui#325 Align numbers in the “Peer Id” column to the right (hebasto)
  • gui#329 Make console buttons look clickable (jarolrod)
  • gui#330 Allow prompt icon to be colorized (jarolrod)
  • gui#331 Make RPC console welcome message translation-friendly (hebasto)
  • gui#332 Replace disambiguation strings with translator comments (hebasto)
  • gui#335 test: Use QSignalSpy instead of QEventLoop (jarolrod)
  • gui#343 Improve the GUI responsiveness when progress dialogs are used (hebasto)
  • gui#361 Fix GUI segfault caused by bitcoin/bitcoin#22216 (ryanofsky)
  • gui#362 Add keyboard shortcuts to context menus (luke-jr)
  • gui#366 Dark Mode fixes/portability (luke-jr)
  • gui#375 Emit dataChanged signal to dynamically re-sort Peers table (hebasto)
  • gui#393 Fix regression in “Encrypt Wallet” menu item (hebasto)
  • gui#396 Ensure external signer option remains disabled without signers (achow101)
  • gui#406 Handle new added plurals in bitcoin_en.ts (hebasto)
  • Build system:
  • #17227 Add Android packaging support (icota)
  • #17920 guix: Build support for macOS (dongcarl)
  • #18298 Fix Qt processing of configure script for depends with DEBUG=1 (hebasto)
  • #19160 multiprocess: Add basic spawn and IPC support (ryanofsky)
  • #19504 Bump minimum python version to 3.6 (ajtowns)
  • #19522 fix building libconsensus with reduced exports for Darwin targets (fanquake)
  • #19683 Pin clang search paths for darwin host (dongcarl)
  • #19764 Split boost into build/host packages + bump + cleanup (dongcarl)
  • #19817 libtapi 1100.0.11 (fanquake)
  • #19846 enable unused member function diagnostic (Zero-1729)
  • #19867 Document and cleanup Qt hacks (fanquake)
  • #20046 Set CMAKE_INSTALL_RPATH for native packages (ryanofsky)
  • #20223 Drop the leading 0 from the version number (achow101)
  • #20333 Remove native_biplist dependency (fanquake)
  • #20353 configure: Support -fdebug-prefix-map and -fmacro-prefix-map (ajtowns)
  • #20359 Various config.site.in improvements and linting (dongcarl)
  • #20413 Require C++17 compiler (MarcoFalke)
  • #20419 Set minimum supported macOS to 10.14 (fanquake)
  • #20421 miniupnpc 2.2.2 (fanquake)
  • #20422 Mac deployment unification (fanquake)
  • #20424 Update univalue subtree (MarcoFalke)
  • #20449 Fix Windows installer build (achow101)
  • #20468 Warn when generating man pages for binaries built from a dirty branch (tylerchambers)
  • #20469 Avoid secp256k1.h include from system (dergoegge)
  • #20470 Replace genisoimage with xorriso (dongcarl)
  • #20471 Use C++17 in depends (fanquake)
  • #20496 Drop unneeded macOS framework dependencies (hebasto)
  • #20520 Do not force Precompiled Headers (PCH) for building Qt on Linux (hebasto)
  • #20549 Support make src/bitcoin-node and src/bitcoin-gui (promag)
  • #20565 Ensure PIC build for bdb on Android (BlockMechanic)
  • #20594 Fix getauxval calls in randomenv.cpp (jonasschnelli)
  • #20603 Update crc32c subtree (MarcoFalke)
  • #20609 configure: output notice that test binary is disabled by fuzzing (apoelstra)
  • #20619 guix: Quality of life improvements (dongcarl)
  • #20629 Improve id string robustness (dongcarl)
  • #20641 Use Qt top-level build facilities (hebasto)
  • #20650 Drop workaround for a fixed bug in Qt build system (hebasto)
  • #20673 Use more legible qmake commands in qt package (hebasto)
  • #20684 Define .INTERMEDIATE target once only (hebasto)
  • #20720 more robustly check for fcf-protection support (fanquake)
  • #20734 Make platform-specific targets available for proper platform builds only (hebasto)
  • #20936 build fuzz tests by default (danben)
  • #20937 guix: Make nsis reproducible by respecting SOURCE-DATE-EPOCH (dongcarl)
  • #20938 fix linking against -latomic when building for riscv (fanquake)
  • #20939 fix RELOC_SECTION security check for bitcoin-util (fanquake)
  • #20963 gitian-linux: Build binaries for 64-bit POWER (continued) (laanwj)
  • #21036 gitian: Bump descriptors to focal for 22.0 (fanquake)
  • #21045 Adds switch to enable/disable randomized base address in MSVC builds (EthanHeilman)
  • #21065 make macOS HOST in download-osx generic (fanquake)
  • #21078 guix: only download sources for hosts being built (fanquake)
  • #21116 Disable –disable-fuzz-binary for gitian/guix builds (hebasto)
  • #21182 remove mostly pointless BOOST_PROCESS macro (fanquake)
  • #21205 actually fail when Boost is missing (fanquake)
  • #21209 use newer source for libnatpmp (fanquake)
  • #21226 Fix fuzz binary compilation under windows (danben)
  • #21231 Add /opt/homebrew to path to look for boost libraries (fyquah)
  • #21239 guix: Add codesignature attachment support for osx+win (dongcarl)
  • #21250 Make HAVE_O_CLOEXEC available outside LevelDB (bugfix) (theStack)
  • #21272 guix: Passthrough SDK_PATH into container (dongcarl)
  • #21274 assumptions: Assume C++17 (fanquake)
  • #21286 Bump minimum Qt version to 5.9.5 (hebasto)
  • #21298 guix: Bump time-machine, glibc, and linux-headers (dongcarl)
  • #21304 guix: Add guix-clean script + establish gc-root for container profiles (dongcarl)
  • #21320 fix libnatpmp macos cross compile (fanquake)
  • #21321 guix: Add curl to required tool list (hebasto)
  • #21333 set Unicode true for NSIS installer (fanquake)
  • #21339 Make AM_CONDITIONAL([ENABLE_EXTERNAL_SIGNER]) unconditional (hebasto)
  • #21349 Fix fuzz-cuckoocache cross-compiling with DEBUG=1 (hebasto)
  • #21354 build, doc: Drop no longer required packages from macOS cross-compiling dependencies (hebasto)
  • #21363 build, qt: Improve Qt static plugins/libs check code (hebasto)
  • #21375 guix: Misc feedback-based fixes + hier restructuring (dongcarl)
  • #21376 Qt 5.12.10 (fanquake)
  • #21382 Clean remnants of QTBUG-34748 fix (hebasto)
  • #21400 Fix regression introduced in #21363 (hebasto)
  • #21403 set –build when configuring packages in depends (fanquake)
  • #21421 don’t try and use -fstack-clash-protection on Windows (fanquake)
  • #21423 Cleanups and follow ups after bumping Qt to 5.12.10 (hebasto)
  • #21427 Fix id_string invocations (dongcarl)
  • #21430 Add -Werror=implicit-fallthrough compile flag (hebasto)
  • #21457 Split libtapi and clang out of native_cctools (fanquake)
  • #21462 guix: Add guix-{attest,verify} scripts (dongcarl)
  • #21495 build, qt: Fix static builds on macOS Big Sur (hebasto)
  • #21497 Do not opt-in unused CoreWLAN stuff in depends for macOS (hebasto)
  • #21543 Enable safe warnings for msvc builds (hebasto)
  • #21565 Make bitcoin_qt.m4 more generic (fanquake)
  • #21610 remove -Wdeprecated-register from NOWARN flags (fanquake)
  • #21613 enable -Wdocumentation (fanquake)
  • #21629 Fix configuring when building depends with NO_BDB=1 (fanquake)
  • #21654 build, qt: Make Qt rcc output always deterministic (hebasto)
  • #21655 build, qt: No longer need to set QT_RCC_TEST=1 for determinism (hebasto)
  • #21658 fix make deploy for arm64-darwin (sgulls)
  • #21694 Use XLIFF file to provide more context to Transifex translators (hebasto)
  • #21708, bitcoin/bitcoin#21593 Drop pointless sed commands (hebasto)
  • #21731 Update msvc build to use Qt5.12.10 binaries (sipsorcery)
  • #21733 Re-add command to install vcpkg (dplusplus1024)
  • #21793 Use -isysroot over --sysroot on macOS (fanquake)
  • #21869 Add missing -D_LIBCPP_DEBUG=1 to debug flags (MarcoFalke)
  • #21889 macho: check for control flow instrumentation (fanquake)
  • #21920 Improve macro for testing -latomic requirement (MarcoFalke)
  • #21991 libevent 2.1.12-stable (fanquake)
  • #22054 Bump Qt version to 5.12.11 (hebasto)
  • #22063 Use Qt archive of the same version as the compiled binaries (hebasto)
  • #22070 Don’t use cf-protection when targeting arm-apple-darwin (fanquake)
  • #22071 Latest config.guess and config.sub (fanquake)
  • #22075 guix: Misc leftover usability improvements (dongcarl)
  • #22123 Fix qt.mk for mac arm64 (promag)
  • #22174 build, qt: Fix libraries linking order for Linux hosts (hebasto)
  • #22182 guix: Overhaul how guix-{attest,verify} works and hierarchy (dongcarl)
  • #22186 build, qt: Fix compiling qt package in depends with GCC 11 (hebasto)
  • #22199 macdeploy: minor fixups and simplifications (fanquake)
  • #22230 Fix MSVC linker /SubSystem option for bitcoin-qt.exe (hebasto)
  • #22234 Mark print-% target as phony (dgoncharov)
  • #22238 improve detection of eBPF support (fanquake)
  • #22258 Disable deprecated-copy warning only when external warnings are enabled (MarcoFalke)
  • #22320 set minimum required Boost to 1.64.0 (fanquake)
  • #22348 Fix cross build for Windows with Boost Process (hebasto)
  • #22365 guix: Avoid relying on newer symbols by rebasing our cross toolchains on older glibcs (dongcarl)
  • #22381 guix: Test security-check sanity before performing them (with macOS) (fanquake)
  • #22405 Remove –enable-glibc-back-compat from Guix build (fanquake)
  • #22406 Remove –enable-determinism configure option (fanquake)
  • #22410 Avoid GCC 7.1 ABI change warning in guix build (sipa)
  • #22436 use aarch64 Clang if cross-compiling for darwin on aarch64 (fanquake)
  • #22465 guix: Pin kernel-header version, time-machine to upstream 1.3.0 commit (dongcarl)
  • #22511 guix: Silence getent(1) invocation, doc fixups (dongcarl)
  • #22531 guix: Fixes to guix-{attest,verify} (achow101)
  • #22642 release: Release with separate sha256sums and sig files (dongcarl)
  • #22685 clientversion: No suffix #if CLIENT_VERSION_IS_RELEASE (dongcarl)
  • #22713 Fix build with Boost 1.77.0 (sizeofvoid)
  • Tests and QA
  • #14604 Add test and refactor feature_block.py (sanket1729)
  • #17556 Change feature_config_args.py not to rely on strange regtest=0 behavior (ryanofsky)
  • #18795 wallet issue with orphaned rewards (domob1812)
  • #18847 compressor: Use a prevector in CompressScript serialization (jb55)
  • #19259 fuzz: Add fuzzing harness for LoadMempool(…) and DumpMempool(…) (practicalswift)
  • #19315 Allow outbound & block-relay-only connections in functional tests. (amitiuttarwar)
  • #19698 Apply strict verification flags for transaction tests and assert backwards compatibility (glozow)
  • #19801 Check for all possible OP_CLTV fail reasons in feature_cltv.py (BIP 65) (theStack)
  • #19893 Remove or explain syncwithvalidationinterfacequeue (MarcoFalke)
  • #19972 fuzz: Add fuzzing harness for node eviction logic (practicalswift)
  • #19982 Fix inconsistent lock order in wallet_tests/CreateWallet (hebasto)
  • #20000 Fix creation of “std::string”s with s (vasild)
  • #20047 Use wait_for_{block,header} helpers in p2p_fingerprint.py (theStack)
  • #20171 Add functional test test_txid_inv_delay (ariard)
  • #20189 Switch to BIP341’s suggested scheme for outputs without script (sipa)
  • #20248 Fix length of R check in key_signature_tests (dgpv)
  • #20276, bitcoin/bitcoin#20385, bitcoin/bitcoin#20688, bitcoin/bitcoin#20692 Run various mempool tests even with wallet disabled (mjdietzx)
  • #20323 Create or use existing properly initialized NodeContexts (dongcarl)
  • #20354 Add feature_taproot.py --previous_release (MarcoFalke)
  • #20370 fuzz: Version handshake (MarcoFalke)
  • #20377 fuzz: Fill various small fuzzing gaps (practicalswift)
  • #20425 fuzz: Make CAddrMan fuzzing harness deterministic (practicalswift)
  • #20430 Sanitizers: Add suppression for unsigned-integer-overflow in libstdc++ (jonasschnelli)
  • #20437 fuzz: Avoid time-based “non-determinism” in fuzzing harnesses by using mocked GetTime() (practicalswift)
  • #20458 Add is_bdb_compiled helper (Sjors)
  • #20466 Fix intermittent p2p_fingerprint issue (MarcoFalke)
  • #20472 Add testing of ParseInt/ParseUInt edge cases with leading +/-/0:s (practicalswift)
  • #20507 sync: print proper lock order location when double lock is detected (vasild)
  • #20522 Fix sync issue in disconnect_p2ps (amitiuttarwar)
  • #20524 Move MIN_VERSION_SUPPORTED to p2p.py (jnewbery)
  • #20540 Fix wallet_multiwallet issue on windows (MarcoFalke)
  • #20560 fuzz: Link all targets once (MarcoFalke)
  • #20567 Add option to git-subtree-check to do full check, add help (laanwj)
  • #20569 Fix intermittent wallet_multiwallet issue with got_loading_error (MarcoFalke)
  • #20613 Use Popen.wait instead of RPC in assert_start_raises_init_error (MarcoFalke)
  • #20663 fuzz: Hide script_assets_test_minimizer (MarcoFalke)
  • #20674 fuzz: Call SendMessages after ProcessMessage to increase coverage (MarcoFalke)
  • #20683 Fix restart node race (MarcoFalke)
  • #20686 fuzz: replace CNode code with fuzz/util.h::ConsumeNode() (jonatack)
  • #20733 Inline non-member functions with body in fuzzing headers (pstratem)
  • #20737 Add missing assignment in mempool_resurrect.py (MarcoFalke)
  • #20745 Correct epoll_ctl data race suppression (hebasto)
  • #20748 Add race:SendZmqMessage tsan suppression (MarcoFalke)
  • #20760 Set correct nValue for multi-op-return policy check (MarcoFalke)
  • #20761 fuzz: Check that NULL_DATA is unspendable (MarcoFalke)
  • #20765 fuzz: Check that certain script TxoutType are nonstandard (mjdietzx)
  • #20772 fuzz: Bolster ExtractDestination(s) checks (mjdietzx)
  • #20789 fuzz: Rework strong and weak net enum fuzzing (MarcoFalke)
  • #20828 fuzz: Introduce CallOneOf helper to replace switch-case (MarcoFalke)
  • #20839 fuzz: Avoid extraneous copy of input data, using Span (MarcoFalke)
  • #20844 Add sanitizer suppressions for AMD EPYC CPUs (MarcoFalke)
  • #20857 Update documentation in feature_csv_activation.py (PiRK)
  • #20876 Replace getmempoolentry with testmempoolaccept in MiniWallet (MarcoFalke)
  • #20881 fuzz: net permission flags in net processing (MarcoFalke)
  • #20882 fuzz: Add missing muhash registration (MarcoFalke)
  • #20908 fuzz: Use mocktime in process_message* fuzz targets (MarcoFalke)
  • #20915 fuzz: Fail if message type is not fuzzed (MarcoFalke)
  • #20946 fuzz: Consolidate fuzzing TestingSetup initialization (dongcarl)
  • #20954 Declare nodes type in test_framework.py (kiminuo)
  • #20955 Fix get_previous_releases.py for aarch64 (MarcoFalke)
  • #20969 check that getblockfilter RPC fails without block filter index (theStack)
  • #20971 Work around libFuzzer deadlock (MarcoFalke)
  • #20993 Store subversion (user agent) as string in msg_version (theStack)
  • #20995 fuzz: Avoid initializing version to less than MIN_PEER_PROTO_VERSION (MarcoFalke)
  • #20998 Fix BlockToJsonVerbose benchmark (martinus)
  • #21003 Move MakeNoLogFileContext to libtest_util, and use it in bench (MarcoFalke)
  • #21008 Fix zmq test flakiness, improve speed (theStack)
  • #21023 fuzz: Disable shuffle when merge=1 (MarcoFalke)
  • #21037 fuzz: Avoid designated initialization (C++20) in fuzz tests (practicalswift)
  • #21042 doc, test: Improve setup_clean_chain documentation (fjahr)
  • #21080 fuzz: Configure check for main function (take 2) (MarcoFalke)
  • #21084 Fix timeout decrease in feature_assumevalid (brunoerg)
  • #21096 Re-add dead code detection (flack)
  • #21100 Remove unused function xor_bytes (theStack)
  • #21115 Fix Windows cross build (hebasto)
  • #21117 Remove assert_blockchain_height (MarcoFalke)
  • #21121 Small unit test improvements, including helper to make mempool transaction (amitiuttarwar)
  • #21124 Remove unnecessary assignment in bdb (brunoerg)
  • #21125 Change BOOST_CHECK to BOOST_CHECK_EQUAL for paths (kiminuo)
  • #21142, bitcoin/bitcoin#21512 fuzz: Add tx_pool fuzz target (MarcoFalke)
  • #21165 Use mocktime in test_seed_peers (dhruv)
  • #21169 fuzz: Add RPC interface fuzzing. Increase fuzzing coverage from 65% to 70% (practicalswift)
  • #21170 bench: Add benchmark to write json into a string (martinus)
  • #21178 Run mempool_reorg.py even with wallet disabled (DariusParvin)
  • #21185 fuzz: Remove expensive and redundant muhash from crypto fuzz target (MarcoFalke)
  • #21200 Speed up rpc_blockchain.py by removing miniwallet.generate() (MarcoFalke)
  • #21211 Move P2WSH_OP_TRUE to shared test library (MarcoFalke)
  • #21228 Avoid comparision of integers with different signs (jonasschnelli)
  • #21230 Fix NODE_NETWORK_LIMITED_MIN_BLOCKS disconnection (MarcoFalke)
  • #21252 Add missing wait for sync to feature_blockfilterindex_prune (MarcoFalke)
  • #21254 Avoid connecting to real network when running tests (MarcoFalke)
  • #21264 fuzz: Two scripted diff renames (MarcoFalke)
  • #21280 Bug fix in transaction_tests (glozow)
  • #21293 Replace accidentally placed bit-OR with logical-OR (hebasto)
  • #21297 feature_blockfilterindex_prune.py improvements (jonatack)
  • #21310 zmq test: fix sync-up by matching notification to generated block (theStack)
  • #21334 Additional BIP9 tests (Sjors)
  • #21338 Add functional test for anchors.dat (brunoerg)
  • #21345 Bring p2p_leak.py up to date (mzumsande)
  • #21357 Unconditionally check for fRelay field in test framework (jarolrod)
  • #21358 fuzz: Add missing include (test/util/setup_common.h) (MarcoFalke)
  • #21371 fuzz: fix gcc Woverloaded-virtual build warnings (jonatack)
  • #21373 Generate fewer blocks in feature_nulldummy to fix timeouts, speed up (jonatack)
  • #21390 Test improvements for UTXO set hash tests (fjahr)
  • #21410 increase rpc_timeout for fundrawtx test_transaction_too_large (jonatack)
  • #21411 add logging, reduce blocks, move sync_all in wallet_ groups (jonatack)
  • #21438 Add ParseUInt8() test coverage (jonatack)
  • #21443 fuzz: Implement fuzzed_dns_lookup_function as a lambda (practicalswift)
  • #21445 cirrus: Use SSD cluster for speedup (MarcoFalke)
  • #21477 Add test for CNetAddr::ToString IPv6 address formatting (RFC 5952) (practicalswift)
  • #21487 fuzz: Use ConsumeWeakEnum in addrman for service flags (MarcoFalke)
  • #21488 Add ParseUInt16() unit test and fuzz coverage (jonatack)
  • #21491 test: remove duplicate assertions in util_tests (jonatack)
  • #21522 fuzz: Use PickValue where possible (MarcoFalke)
  • #21531 remove qt byteswap compattests (fanquake)
  • #21557 small cleanup in RPCNestedTests tests (fanquake)
  • #21586 Add missing suppression for signed-integer-overflow:txmempool.cpp (MarcoFalke)
  • #21592 Remove option to make TestChain100Setup non-deterministic (MarcoFalke)
  • #21597 Document race:validation_chainstatemanager_tests suppression (MarcoFalke)
  • #21599 Replace file level integer overflow suppression with function level suppression (practicalswift)
  • #21604 Document why no symbol names can be used for suppressions (MarcoFalke)
  • #21606 fuzz: Extend psbt fuzz target a bit (MarcoFalke)
  • #21617 fuzz: Fix uninitialized read in i2p test (MarcoFalke)
  • #21630 fuzz: split FuzzedSock interface and implementation (vasild)
  • #21634 Skip SQLite fsyncs while testing (achow101)
  • #21669 Remove spurious double lock tsan suppressions by bumping to clang-12 (MarcoFalke)
  • #21676 Use mocktime to avoid intermittent failure in rpc_tests (MarcoFalke)
  • #21677 fuzz: Avoid use of low file descriptor ids (which may be in use) in FuzzedSock (practicalswift)
  • #21678 Fix TestPotentialDeadLockDetected suppression (hebasto)
  • #21689 Remove intermittently failing and not very meaningful BOOST_CHECK in cnetaddr_basic (practicalswift)
  • #21691 Check that no versionbits are re-used (MarcoFalke)
  • #21707 Extend functional tests for addr relay (mzumsande)
  • #21712 Test default include_mempool value of gettxout (promag)
  • #21738 Use clang-12 for ASAN, Add missing suppression (MarcoFalke)
  • #21740 add new python linter to check file names and permissions (windsok)
  • #21749 Bump shellcheck version (hebasto)
  • #21754 Run feature_cltv with MiniWallet (MarcoFalke)
  • #21762 Speed up mempool_spend_coinbase.py (MarcoFalke)
  • #21773 fuzz: Ensure prevout is consensus-valid (MarcoFalke)
  • #21777 Fix feature_notifications.py intermittent issue (MarcoFalke)
  • #21785 Fix intermittent issue in p2p_addr_relay.py (MarcoFalke)
  • #21787 Fix off-by-ones in rpc_fundrawtransaction assertions (jonatack)
  • #21792 Fix intermittent issue in p2p_segwit.py (MarcoFalke)
  • #21795 fuzz: Terminate immediately if a fuzzing harness tries to perform a DNS lookup (belt and suspenders) (practicalswift)
  • #21798 fuzz: Create a block template in tx_pool targets (MarcoFalke)
  • #21804 Speed up p2p_segwit.py (jnewbery)
  • #21810 fuzz: Various RPC fuzzer follow-ups (practicalswift)
  • #21814 Fix feature_config_args.py intermittent issue (MarcoFalke)
  • #21821 Add missing test for empty P2WSH redeem (MarcoFalke)
  • #21822 Resolve bug in interface_bitcoin_cli.py (klementtan)
  • #21846 fuzz: Add -fsanitize=integer suppression needed for RPC fuzzer (generateblock) (practicalswift)
  • #21849 fuzz: Limit toxic test globals to their respective scope (MarcoFalke)
  • #21867 use MiniWallet for p2p_blocksonly.py (theStack)
  • #21873 minor fixes & improvements for files linter test (windsok)
  • #21874 fuzz: Add WRITE_ALL_FUZZ_TARGETS_AND_ABORT (MarcoFalke)
  • #21884 fuzz: Remove unused –enable-danger-fuzz-link-all option (MarcoFalke)
  • #21890 fuzz: Limit ParseISO8601DateTime fuzzing to 32-bit (MarcoFalke)
  • #21891 fuzz: Remove strprintf test cases that are known to fail (MarcoFalke)
  • #21892 fuzz: Avoid excessively large min fee rate in tx_pool (MarcoFalke)
  • #21895 Add TSA annotations to the WorkQueue class members (hebasto)
  • #21900 use MiniWallet for feature_csv_activation.py (theStack)
  • #21909 fuzz: Limit max insertions in timedata fuzz test (MarcoFalke)
  • #21922 fuzz: Avoid timeout in EncodeBase58 (MarcoFalke)
  • #21927 fuzz: Run const CScript member functions only once (MarcoFalke)
  • #21929 fuzz: Remove incorrect float round-trip serialization test (MarcoFalke)
  • #21936 fuzz: Terminate immediately if a fuzzing harness tries to create a TCP socket (belt and suspenders) (practicalswift)
  • #21941 fuzz: Call const member functions in addrman fuzz test only once (MarcoFalke)
  • #21945 add P2PK support to MiniWallet (theStack)
  • #21948 Fix off-by-one in mockscheduler test RPC (MarcoFalke)
  • #21953 fuzz: Add utxo_snapshot target (MarcoFalke)
  • #21970 fuzz: Add missing CheckTransaction before CheckTxInputs (MarcoFalke)
  • #21989 Use COINBASE_MATURITY in functional tests (kiminuo)
  • #22003 Add thread safety annotations (ajtowns)
  • #22004 fuzz: Speed up transaction fuzz target (MarcoFalke)
  • #22005 fuzz: Speed up banman fuzz target (MarcoFalke)
  • #22029 [fuzz] Improve transport deserialization fuzz test coverage (dhruv)
  • #22048 MiniWallet: introduce enum type for output mode (theStack)
  • #22057 use MiniWallet (P2PK mode) for feature_dersig.py (theStack)
  • #22065 Mark CheckTxInputs [[nodiscard]]. Avoid UUM in fuzzing harness coins_view (practicalswift)
  • #22069 fuzz: don’t try and use fopencookie() when building for Android (fanquake)
  • #22082 update nanobench from release 4.0.0 to 4.3.4 (martinus)
  • #22086 remove BasicTestingSetup from unit tests that don’t need it (fanquake)
  • #22089 MiniWallet: fix fee calculation for P2PK and check tx vsize (theStack)
  • #21107, bitcoin/bitcoin#22092 Convert documentation into type annotations (fanquake)
  • #22095 Additional BIP32 test vector for hardened derivation with leading zeros (kristapsk)
  • #22103 Fix IPv6 check on BSD systems (n-thumann)
  • #22118 check anchors.dat when node starts for the first time (brunoerg)
  • #22120 p2p_invalid_block: Check that a block rejected due to too-new tim… (willcl-ark)
  • #22153 Fix p2p_leak.py intermittent failure (mzumsande)
  • #22169 p2p, rpc, fuzz: various tiny follow-ups (jonatack)
  • #22176 Correct outstanding -Werror=sign-compare errors (Empact)
  • #22180 fuzz: Increase branch coverage of the float fuzz target (MarcoFalke)
  • #22187 Add sync_blocks in wallet_orphanedreward.py (domob1812)
  • #22201 Fix TestShell to allow running in Jupyter Notebook (josibake)
  • #22202 Add temporary coinstats suppressions (MarcoFalke)
  • #22203 Use ConnmanTestMsg from test lib in denialofservice_tests (MarcoFalke)
  • #22210 Use MiniWallet in test_no_inherited_signaling RBF test (MarcoFalke)
  • #22224 Update msvc and appveyor builds to use Qt5.12.11 binaries (sipsorcery)
  • #22249 Kill process group to avoid dangling processes when using --failfast (S3RK)
  • #22267 fuzz: Speed up crypto fuzz target (MarcoFalke)
  • #22270 Add bitcoin-util tests (+refactors) (MarcoFalke)
  • #22271 fuzz: Assert roundtrip equality for CPubKey (theStack)
  • #22279 fuzz: add missing ECCVerifyHandle to base_encode_decode (apoelstra)
  • #22292 bench, doc: benchmarking updates and fixups (jonatack)
  • #22306 Improvements to p2p_addr_relay.py (amitiuttarwar)
  • #22310 Add functional test for replacement relay fee check (ariard)
  • #22311 Add missing syncwithvalidationinterfacequeue in p2p_blockfilters (MarcoFalke)
  • #22313 Add missing sync_all to feature_coinstatsindex (MarcoFalke)
  • #22322 fuzz: Check banman roundtrip (MarcoFalke)
  • #22363 Use script_util helpers for creating P2{PKH,SH,WPKH,WSH} scripts (theStack)
  • #22399 fuzz: Rework CTxDestination fuzzing (MarcoFalke)
  • #22408 add tests for bad-txns-prevout-null reject reason (theStack)
  • #22445 fuzz: Move implementations of non-template fuzz helpers from util.h to util.cpp (sriramdvt)
  • #22446 Fix wallet_listdescriptors.py if bdb is not compiled (hebasto)
  • #22447 Whitelist rpc_rawtransaction peers to speed up tests (jonatack)
  • #22742 Use proper target in do_fund_send (S3RK)
  • Miscellaneous
  • #19337 sync: Detect double lock from the same thread (vasild)
  • #19809 log: Prefix log messages with function name and source code location if -logsourcelocations is set (practicalswift)
  • #19866 eBPF Linux tracepoints (jb55)
  • #20024 init: Fix incorrect warning “Reducing -maxconnections from N to N-1, because of system limitations” (practicalswift)
  • #20145 contrib: Add getcoins.py script to get coins from (signet) faucet (kallewoof)
  • #20255 util: Add assume() identity function (MarcoFalke)
  • #20288 script, doc: Contrib/seeds updates (jonatack)
  • #20358 src/randomenv.cpp: Fix build on uclibc (ffontaine)
  • #20406 util: Avoid invalid integer negation in formatmoney and valuefromamount (practicalswift)
  • #20434 contrib: Parse elf directly for symbol and security checks (laanwj)
  • #20451 lint: Run mypy over contrib/devtools (fanquake)
  • #20476 contrib: Add test for elf symbol-check (laanwj)
  • #20530 lint: Update cppcheck linter to c++17 and improve explicit usage (fjahr)
  • #20589 log: Clarify that failure to read/write fee_estimates.dat is non-fatal (MarcoFalke)
  • #20602 util: Allow use of c++14 chrono literals (MarcoFalke)
  • #20605 init: Signal-safe instant shutdown (laanwj)
  • #20608 contrib: Add symbol check test for PE binaries (fanquake)
  • #20689 contrib: Replace binary verification script verify.sh with python rewrite (theStack)
  • #20715 util: Add argsmanager::getcommand() and use it in bitcoin-wallet (MarcoFalke)
  • #20735 script: Remove outdated extract-osx-sdk.sh (hebasto)
  • #20817 lint: Update list of spelling linter false positives, bump to codespell 2.0.0 (theStack)
  • #20884 script: Improve robustness of bitcoind.service on startup (hebasto)
  • #20906 contrib: Embed c++11 patch in install_db4.sh (gruve-p)
  • #21004 contrib: Fix docker args conditional in gitian-build (setpill)
  • #21007 bitcoind: Add -daemonwait option to wait for initialization (laanwj)
  • #21041 log: Move “Pre-allocating up to position 0x[…] in […].dat” log message to debug category (practicalswift)
  • #21059 Drop boost/preprocessor dependencies (hebasto)
  • #21087 guix: Passthrough BASE_CACHE into container (dongcarl)
  • #21088 guix: Jump forwards in time-machine and adapt (dongcarl)
  • #21089 guix: Add support for powerpc64{,le} (dongcarl)
  • #21110 util: Remove boost posix_time usage from gettime* (fanquake)
  • #21111 Improve OpenRC initscript (parazyd)
  • #21123 code style: Add EditorConfig file (kiminuo)
  • #21173 util: Faster hexstr => 13% faster blocktojson (martinus)
  • #21221 tools: Allow argument/parameter bin packing in clang-format (jnewbery)
  • #21244 Move GetDataDir to ArgsManager (kiminuo)
  • #21255 contrib: Run test-symbol-check for risc-v (fanquake)
  • #21271 guix: Explicitly set umask in build container (dongcarl)
  • #21300 script: Add explanatory comment to tc.sh (dscotese)
  • #21317 util: Make assume() usable as unary expression (MarcoFalke)
  • #21336 Make .gitignore ignore src/test/fuzz/fuzz.exe (hebasto)
  • #21337 guix: Update darwin native packages dependencies (hebasto)
  • #21405 compat: remove memcpy -> memmove backwards compatibility alias (fanquake)
  • #21418 contrib: Make systemd invoke dependencies only when ready (laanwj)
  • #21447 Always add -daemonwait to known command line arguments (hebasto)
  • #21471 bugfix: Fix bech32_encode calls in gen_key_io_test_vectors.py (sipa)
  • #21615 script: Add trusted key for hebasto (hebasto)
  • #21664 contrib: Use lief for macos and windows symbol & security checks (fanquake)
  • #21695 contrib: Remove no longer used contrib/bitcoin-qt.pro (hebasto)
  • #21711 guix: Add full installation and usage documentation (dongcarl)
  • #21799 guix: Use gcc-8 across the board (dongcarl)
  • #21802 Avoid UB in util/asmap (advance a dereferenceable iterator outside its valid range) (MarcoFalke)
  • #21823 script: Update reviewers (jonatack)
  • #21850 Remove GetDataDir(net_specific) function (kiminuo)
  • #21871 scripts: Add checks for minimum required os versions (fanquake)
  • #21966 Remove double serialization; use software encoder for fee estimation (sipa)
  • #22060 contrib: Add torv3 seed nodes for testnet, drop v2 ones (laanwj)
  • #22244 devtools: Correctly extract symbol versions in symbol-check (laanwj)
  • #22533 guix/build: Remove vestigial SKIPATTEST.TAG (dongcarl)
  • #22643 guix-verify: Non-zero exit code when anything fails (dongcarl)
  • #22654 guix: Don’t include directory name in SHA256SUMS (achow101)
  • Documentation
  • #15451 clarify getdata limit after #14897 (HashUnlimited)
  • #15545 Explain why CheckBlock() is called before AcceptBlock (Sjors)
  • #17350 Add developer documentation to isminetype (HAOYUatHZ)
  • #17934 Use CONFIG_SITE variable instead of –prefix option (hebasto)
  • #18030 Coin::IsSpent() can also mean never existed (Sjors)
  • #18096 IsFinalTx comment about nSequence & OP_CLTV (nothingmuch)
  • #18568 Clarify developer notes about constant naming (ryanofsky)
  • #19961 doc: tor.md updates (jonatack)
  • #19968 Clarify CRollingBloomFilter size estimate (robot-dreams)
  • #20200 Rename CODEOWNERS to REVIEWERS (adamjonas)
  • #20329 docs/descriptors.md: Remove hardened marker in the path after xpub (dgpv)
  • #20380 Add instructions on how to fuzz the P2P layer using Honggfuzz NetDriver (practicalswift)
  • #20414 Remove generated manual pages from master branch (laanwj)
  • #20473 Document current boost dependency as 1.71.0 (laanwj)
  • #20512 Add bash as an OpenBSD dependency (emilengler)
  • #20568 Use FeeModes doc helper in estimatesmartfee (MarcoFalke)
  • #20577 libconsensus: add missing error code description, fix NBitcoin link (theStack)
  • #20587 Tidy up Tor doc (more stringent) (wodry)
  • #20592 Update wtxidrelay documentation per BIP339 (jonatack)
  • #20601 Update for FreeBSD 12.2, add GUI Build Instructions (jarolrod)
  • #20635 fix misleading comment about call to non-existing function (pox)
  • #20646 Refer to BIPs 339/155 in feature negotiation (jonatack)
  • #20653 Move addr relay comment in net to correct place (MarcoFalke)
  • #20677 Remove shouty enums in net_processing comments (sdaftuar)
  • #20741 Update ‘Secure string handling’ (prayank23)
  • #20757 tor.md and -onlynet help updates (jonatack)
  • #20829 Add -netinfo help (jonatack)
  • #20830 Update developer notes with signet (jonatack)
  • #20890 Add explicit macdeployqtplus dependencies install step (hebasto)
  • #20913 Add manual page generation for bitcoin-util (laanwj)
  • #20985 Add xorriso to macOS depends packages (fanquake)
  • #20986 Update developer notes to discourage very long lines (jnewbery)
  • #20987 Add instructions for generating RPC docs (ben-kaufman)
  • #21026 Document use of make-tag script to make tags (laanwj)
  • #21028 doc/bips: Add BIPs 43, 44, 49, and 84 (luke-jr)
  • #21049 Add release notes for listdescriptors RPC (S3RK)
  • #21060 More precise -debug and -debugexclude doc (wodry)
  • #21077 Clarify -timeout and -peertimeout config options (glozow)
  • #21105 Correctly identify script type (niftynei)
  • #21163 Guix is shipped in Debian and Ubuntu (MarcoFalke)
  • #21210 Rework internal and external links (MarcoFalke)
  • #21246 Correction for VerifyTaprootCommitment comments (roconnor-blockstream)
  • #21263 Clarify that squashing should happen before review (MarcoFalke)
  • #21323 guix, doc: Update default HOSTS value (hebasto)
  • #21324 Update build instructions for Fedora (hebasto)
  • #21343 Revamp macOS build doc (jarolrod)
  • #21346 install qt5 when building on macOS (fanquake)
  • #21384 doc: add signet to bitcoin.conf documentation (jonatack)
  • #21394 Improve comment about protected peers (amitiuttarwar)
  • #21398 Update fuzzing docs for afl-clang-lto (MarcoFalke)
  • #21444 net, doc: Doxygen updates and fixes in netbase.{h,cpp} (jonatack)
  • #21481 Tell howto install clang-format on Debian/Ubuntu (wodry)
  • #21567 Fix various misleading comments (glozow)
  • #21661 Fix name of script guix-build (Emzy)
  • #21672 Remove boostrap info from GUIX_COMMON_FLAGS doc (fanquake)
  • #21688 Note on SDK for macOS depends cross-compile (jarolrod)
  • #21709 Update reduce-memory.md and bitcoin.conf -maxconnections info (jonatack)
  • #21710 update helps for addnode rpc and -addnode/-maxconnections config options (jonatack)
  • #21752 Clarify that feerates are per virtual size (MarcoFalke)
  • #21811 Remove Visual Studio 2017 reference from readme (sipsorcery)
  • #21818 Fixup -coinstatsindex help, update bitcoin.conf and files.md (jonatack)
  • #21856 add OSS-Fuzz section to fuzzing.md doc (adamjonas)
  • #21912 Remove mention of priority estimation (MarcoFalke)
  • #21925 Update bips.md for 0.21.1 (MarcoFalke)
  • #21942 improve make with parallel jobs description (klementtan)
  • #21947 Fix OSS-Fuzz links (MarcoFalke)
  • #21988 note that brew installed qt is not supported (jarolrod)
  • #22056 describe in fuzzing.md how to reproduce a CI crash (jonatack)
  • #22080 add maxuploadtarget to bitcoin.conf example (jarolrod)
  • #22088 Improve note on choosing posix mingw32 (jarolrod)
  • #22109 Fix external links (IRC, …) (MarcoFalke)
  • #22121 Various validation doc fixups (MarcoFalke)
  • #22172 Update tor.md, release notes with removal of tor v2 support (jonatack)
  • #22204 Remove obsolete okSafeMode RPC guideline from developer notes (theStack)
  • #22208 Update REVIEWERS (practicalswift)
  • #22250 add basic I2P documentation (vasild)
  • #22296 Final merge of release notes snippets, mv to wiki (MarcoFalke)
  • #22335 recommend --disable-external-signer in OpenBSD build guide (theStack)
  • #22339 Document minimum required libc++ version (hebasto)
  • #22349 Repository IRC updates (jonatack)
  • #22360 Remove unused section from release process (MarcoFalke)
  • #22369 Add steps for Transifex to release process (jonatack)
  • #22393 Added info to bitcoin.conf doc (bliotti)
  • #22402 Install Rosetta on M1-macOS for qt in depends (hebasto)
  • #22432 Fix incorrect testmempoolaccept doc (glozow)
  • #22648 doc, test: improve i2p/tor docs and i2p reachable unit tests (jonatack)

New in Bitcoin Core 0.21.1 (May 16, 2021)

  • Consensus:
  • #21377 Speedy trial support for versionbits (ajtowns)
  • #21686 Speedy trial activation parameters for Taproot (achow101)
  • P2P protocol and network code:
  • #20852 allow CSubNet of non-IP networks (vasild)
  • #21043 Avoid UBSan warning in ProcessMessage(…) (practicalswift)
  • Wallet:
  • #21166 Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it (achow101)
  • #21083 Avoid requesting fee rates multiple times during coin selection (achow101)
  • RPC and other APIs:
  • #21201 Disallow sendtoaddress and sendmany when private keys disabled (achow101)
  • Build system:
  • #21486 link against -lsocket if required for *ifaddrs (fanquake)
  • #20983 Fix MSVC build after gui#176 (hebasto)
  • Tests and QA:
  • #21380 Add fuzzing harness for versionbits (ajtowns)
  • #20812 fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
  • #20740 fuzz: Update FuzzedDataProvider.h from upstream (LLVM) (practicalswift)
  • #21446 Update vcpkg checkout commit (sipsorcery)
  • #21397 fuzz: Bump FuzzedDataProvider.h (MarcoFalke)
  • #21081 Fix the unreachable code at feature_taproot (brunoerg)
  • #20562 Test that a fully signed tx given to signrawtx is unchanged (achow101)
  • #21571 Make sure non-IP peers get discouraged and disconnected (vasild, MarcoFalke)
  • #21489 fuzz: cleanups for versionbits fuzzer (ajtowns)
  • Miscellaneous:
  • #20861 BIP 350: Implement Bech32m and use it for v1+ segwit addresses (sipa)
  • Documentation:
  • #21384 add signet to bitcoin.conf documentation (jonatack)
  • #21342 Remove outdated comment (hebasto)

New in Bitcoin Core 0.21.0 (Jan 17, 2021)

  • Consensus:
  • #18267 BIP-325: Signet (kallewoof)
  • #20016 uint256: 1 is a constant (ajtowns)
  • #20006 Fix misleading error message: Clean stack rule (sanket1729)
  • #19953 Implement BIP 340-342 validation (Schnorr/taproot/tapscript) (sipa)
  • #20169 Taproot follow-up: Make ComputeEntrySchnorr and ComputeEntryECDSA const to clarify contract (practicalswift)
  • Policy:
  • #18766 Disable fee estimation in blocksonly mode (darosior)
  • #19630 Cleanup fee estimation code (darosior)
  • #20165 Only relay Taproot spends if next block has it active (sipa)
  • Mining:
  • #17946 Fix GBT: Restore “!segwit” and “csv” to “rules” key (luke-jr)
  • Privacy:
  • #16432 Add privacy to the Overview page (hebasto)
  • #18861 Do not answer GETDATA for to-be-announced tx (sipa)
  • #18038 Mempool tracks locally submitted transactions to improve wallet privacy (amitiuttarwar)
  • #19109 Only allow getdata of recently announced invs (sipa)
  • Block and transaction handling:
  • #17737 Add ChainstateManager, remove BlockManager global (jamesob)
  • #18960 indexes: Add compact block filter headers cache (jnewbery)
  • #13204 Faster sigcache nonce (JeremyRubin)
  • #19088 Use std::chrono throughout some validation functions (fanquake)
  • #19142 Make VerifyDB level 4 interruptible (MarcoFalke)
  • #17994 Flush undo files after last block write (kallewoof)
  • #18990 log: Properly log txs rejected from mempool (MarcoFalke)
  • #18984 Remove unnecessary input blockfile SetPos (dgenr8)
  • #19526 log: Avoid treating remote misbehvior as local system error (MarcoFalke)
  • #18044 Use wtxid for transaction relay (sdaftuar)
  • #18637 coins: allow cache resize after init (jamesob)
  • #19854 Avoid locking CTxMemPool::cs recursively in simple cases (hebasto)
  • #19478 Remove CTxMempool::mapLinks data structure member (JeremyRubin)
  • #19927 Reduce direct g_chainman usage (dongcarl)
  • #19898 log: print unexpected version warning in validation log category (n-thumann)
  • #20036 signet: Add assumed values for default signet (MarcoFalke)
  • #20048 chainparams: do not log signet startup messages for other chains (jonatack)
  • #19339 re-delegate absurd fee checking from mempool to clients (glozow)
  • #20035 signet: Fix uninitialized read in validation (MarcoFalke)
  • #20157 Bugfix: chainparams: Add missing (always enabled) Taproot deployment for Signet (luke-jr)
  • #20263 Update assumed chain params (MarcoFalke)
  • #20372 Avoid signed integer overflow when loading a mempool.dat file with a malformed time field (practicalswift)
  • #18621 script: Disallow silent bool -> cscript conversion (MarcoFalke)
  • #18612, #18732 script: Remove undocumented and unused operator+ (MarcoFalke)
  • #19317 Add a left-justified width field to log2_work component for a uniform debug.log output (jamesgmorgan)
  • P2P protocol and network code:
  • #18544 Limit BIP37 filter lifespan (active between filterload..filterclear) (theStack)
  • #18806 Remove is{Empty,Full} flags from CBloomFilter, clarify CVE fix (theStack)
  • #18512 Improve asmap checks and add sanity check (sipa)
  • #18877 Serve cfcheckpt requests (jnewbery)
  • #18895 Unbroadcast followups: rpcs, nLastResend, mempool sanity check (gzhao408)
  • #19010 net processing: Add support for getcfheaders (jnewbery)
  • #16939 Delay querying DNS seeds (ajtowns)
  • #18807 Unbroadcast follow-ups (amitiuttarwar)
  • #19044 Add support for getcfilters (jnewbery)
  • #19084 improve code documentation for dns seed behaviour (ajtowns)
  • #19260 disconnect peers that send filterclear + update existing filter msg disconnect logic (gzhao408)
  • #19284 Add seed.bitcoin.wiz.biz to DNS seeds (wiz)
  • #19322 split PushInventory() (jnewbery)
  • #19204 Reduce inv traffic during IBD (MarcoFalke)
  • #19470 banlist: log post-swept banlist size at startup (fanquake)
  • #19191 Extract download permission from noban (MarcoFalke)
  • #14033 Drop CADDR_TIME_VERSION checks now that MIN_PEER_PROTO_VERSION is greater (Empact)
  • #19464 net, rpc: remove -banscore option, deprecate banscore in getpeerinfo (jonatack)
  • #19514 [net/net processing] check banman pointer before dereferencing (jnewbery)
  • #19512 banscore updates to gui, tests, release notes (jonatack)
  • #19360 improve encapsulation of CNetAddr (vasild)
  • #19217 disambiguate block-relay-only variable names from blocksonly variables (glowang)
  • #19473 Add -networkactive option (hebasto)
  • #19472 [net processing] Reduce cs_main scope in MaybeDiscourageAndDisconnect() (jnewbery)
  • #19583 clean up Misbehaving() (jnewbery)
  • #19534 save the network type explicitly in CNetAddr (vasild)
  • #19569 Enable fetching of orphan parents from wtxid peers (sipa)
  • #18991 Cache responses to GETADDR to prevent topology leaks (naumenkogs)
  • #19596 Deduplicate parent txid loop of requested transactions and missing parents of orphan transactions (sdaftuar)
  • #19316 Cleanup logic around connection types (amitiuttarwar)
  • #19070 Signal support for compact block filters with NODE_COMPACT_FILTERS (jnewbery)
  • #19705 Shrink CAddress from 48 to 40 bytes on x64 (vasild)
  • #19704 Move ProcessMessage() to PeerLogicValidation (jnewbery)
  • #19628 Change CNetAddr::ip to have flexible size (vasild)
  • #19797 Remove old check for 3-byte shifted IP addresses from pre-0.2.9 nodes (#19797)
  • #19607 Add Peer struct for per-peer data in net processing (jnewbery)
  • #19857 improve nLastBlockTime and nLastTXTime documentation (jonatack)
  • #19724 Cleanup connection types- followups (amitiuttarwar)
  • #19670 Protect localhost and block-relay-only peers from eviction (sdaftuar)
  • #19728 Increase the ip address relay branching factor for unreachable networks (sipa)
  • #19879 Miscellaneous wtxid followups (amitiuttarwar)
  • #19697 Improvements on ADDR caching (naumenkogs)
  • #17785 Unify Send and Receive protocol versions (hebasto)
  • #19845 CNetAddr: add support to (un)serialize as ADDRv2 (vasild)
  • #19107 Move all header verification into the network layer, extend logging (troygiorshev)
  • #20003 Exit with error message if -proxy is specified without arguments (instead of continuing without proxy server) (practicalswift)
  • #19991 Use alternative port for incoming Tor connections (hebasto)
  • #19723 Ignore unknown messages before VERACK (sdaftuar)
  • #19954 Complete the BIP155 implementation and upgrade to TORv3 (vasild)
  • #20119 BIP155 follow-ups (sipa)
  • #19988 Overhaul transaction request logic (sipa)
  • #17428 Try to preserve outbound block-relay-only connections during restart (hebasto)
  • #19911 Guard vRecvGetData with cs_vRecv and orphan_work_set with g_cs_orphans (narula)
  • #19753 Don’t add AlreadyHave transactions to recentRejects (troygiorshev)
  • #20187 Test-before-evict bugfix and improvements for block-relay-only peers (sdaftuar)
  • #20237 Hardcoded seeds update for 0.21 (laanwj)
  • #20212 Fix output of peer address in version message (vasild)
  • #20284 Ensure old versions don’t parse peers.dat (vasild)
  • #20405 Avoid calculating onion address checksum when version is not 3 (lontivero)
  • #20564 Don’t send ‘sendaddrv2’ to pre-70016 software, and send before ‘verack’ (sipa)
  • #20660 Move signet onion seed from v2 to v3 (Sjors)
  • Wallet:
  • #18262 Exit selection when best_waste is 0 (achow101)
  • #17824 Prefer full destination groups in coin selection (fjahr)
  • #17219 Allow transaction without change if keypool is empty (Sjors)
  • #15761 Replace -upgradewallet startup option with upgradewallet RPC (achow101)
  • #18671 Add BlockUntilSyncedToCurrentChain to dumpwallet (MarcoFalke)
  • #16528 Native Descriptor Wallets using DescriptorScriptPubKeyMan (achow101)
  • #18777 Recommend absolute path for dumpwallet (MarcoFalke)
  • #16426 Reverse cs_main, cs_wallet lock order and reduce cs_main locking (ariard)
  • #18699 Avoid translating RPC errors (MarcoFalke)
  • #18782 Make sure no DescriptorScriptPubKeyMan or WalletDescriptor members are left uninitialized after construction (practicalswift)
  • #9381 Remove CWalletTx merging logic from AddToWallet (ryanofsky)
  • #16946 Include a checksum of encrypted private keys (achow101)
  • #17681 Keep inactive seeds after sethdseed and derive keys from them as needed (achow101)
  • #18918 Move salvagewallet into wallettool (achow101)
  • #14988 Fix for confirmed column in csv export for payment to self transactions (benthecarman)
  • #18275 Error if an explicit fee rate was given but the needed fee rate differed (kallewoof)
  • #19054 Skip hdKeypath of ‘m’ when determining inactive hd seeds (achow101)
  • #17938 Disallow automatic conversion between disparate hash types (Empact)
  • #19237 Check size after unserializing a pubkey (elichai)
  • #11413 sendtoaddress/sendmany: Add explicit feerate option (kallewoof)
  • #18850 Fix ZapSelectTx to sync wallet spends (bvbfan)
  • #18923 Never schedule MaybeCompactWalletDB when -flushwallet is off (MarcoFalke)
  • #19441 walletdb: Don’t reinitialize desc cache with multiple cache entries (achow101)
  • #18907 walletdb: Don’t remove database transaction logs and instead error (achow101)
  • #19334 Introduce WalletDatabase abstract class (achow101)
  • #19335 Cleanup and separate BerkeleyDatabase and BerkeleyBatch (achow101)
  • #19102 Introduce and use DummyDatabase instead of dummy BerkeleyDatabase (achow101)
  • #19568 Wallet should not override signing errors (fjahr)
  • #17204 Do not turn OP_1NEGATE in scriptSig into 0x0181 in signing code (sipa) (meshcollider)
  • #19457 Cleanup wallettool salvage and walletdb extraneous declarations (achow101)
  • #15937 Add loadwallet and createwallet load_on_startup options (ryanofsky)
  • #16841 Replace GetScriptForWitness with GetScriptForDestination (meshcollider)
  • #14582 always do avoid partial spends if fees are within a specified range (kallewoof)
  • #19743 -maxapsfee follow-up (kallewoof)
  • #19289 GetWalletTx and IsMine require cs_wallet lock (promag)
  • #19671 Remove -zapwallettxes (achow101)
  • #19805 Avoid deserializing unused records when salvaging (achow101)
  • #19754 wallet, gui: Reload previously loaded wallets on startup (achow101)
  • #19738 Avoid multiple BerkeleyBatch in DelAddressBook (promag)
  • #19919 bugfix: make LoadWallet assigns status always (AkioNak)
  • #16378 The ultimate send RPC (Sjors)
  • #15454 Remove the automatic creation and loading of the default wallet (achow101)
  • #19501 send* RPCs in the wallet returns the “fee reason” (stackman27)
  • #20130 Remove db mode string (S3RK)
  • #19077 Add sqlite as an alternative wallet database and use it for new descriptor wallets (achow101)
  • #20125 Expose database format in getwalletinfo (promag)
  • #20198 Show name, format and if uses descriptors in bitcoin-wallet tool (jonasschnelli)
  • #20216 Fix buffer over-read in SQLite file magic check (theStack)
  • #20186 Make -wallet setting not create wallets (ryanofsky)
  • #20230 Fix bug when just created encrypted wallet cannot get address (hebasto)
  • #20282 Change upgradewallet return type to be an object (jnewbery)
  • #20220 Explicit fee rate follow-ups/fixes for 0.21 (jonatack)
  • #20199 Ignore (but warn) on duplicate -wallet parameters (jonasschnelli)
  • #20324 Set DatabaseStatus::SUCCESS in MakeSQLiteDatabase (MarcoFalke)
  • #20266 Fix change detection of imported internal descriptors (achow101)
  • #20153 Do not import a descriptor with hardened derivations into a watch-only wallet (S3RK)
  • #20344 Fix scanning progress calculation for single block range (theStack)
  • #19502 Bugfix: Wallet: Soft-fail exceptions within ListWalletDir file checks (luke-jr)
  • #20378 Fix potential division by 0 in WalletLogPrintf (jonasschnelli)
  • #18836 Upgradewallet fixes and additional tests (achow101)
  • #20139 Do not return warnings from UpgradeWallet() (stackman27)
  • #20305 Introduce fee_rate sat/vB param/option (jonatack)
  • #20426 Allow zero-fee fundrawtransaction/walletcreatefundedpsbt and other fixes (jonatack)
  • #20573 wallet, bugfix: allow send with string fee_rate amounts (jonatack)
  • RPC and other APIs:
  • #18574 cli: Call getbalances.ismine.trusted instead of getwalletinfo.balance (jonatack)
  • #17693 Add generateblock to mine a custom set of transactions (andrewtoth)
  • #18495 Remove deprecated migration code (vasild)
  • #18493 Remove deprecated “size” from mempool txs (vasild)
  • #18467 Improve documentation and return value of settxfee (fjahr)
  • #18607 Fix named arguments in documentation (MarcoFalke)
  • #17831 doc: Fix and extend getblockstats examples (asoltys)
  • #18785 Prevent valgrind false positive in rest_blockhash_by_height (ryanofsky)
  • #18999 log: Remove “No rpcpassword set” from logs (MarcoFalke)
  • #19006 Avoid crash when g_thread_http was never started (MarcoFalke)
  • #18594 cli: Display multiwallet balances in -getinfo (jonatack)
  • #19056 Make gettxoutsetinfo/GetUTXOStats interruptible (MarcoFalke)
  • #19112 Remove special case for unknown service flags (MarcoFalke)
  • #18826 Expose txinwitness for coinbase in JSON form from RPC (rvagg)
  • #19282 Rephrase generatetoaddress help, and use PACKAGE_NAME (luke-jr)
  • #16377 don’t automatically append inputs in walletcreatefundedpsbt (Sjors)
  • #19200 Remove deprecated getaddressinfo fields (jonatack)
  • #19133 rpc, cli, test: add bitcoin-cli -generate command (jonatack)
  • #19469 Deprecate banscore field in getpeerinfo (jonatack)
  • #16525 Dump transaction version as an unsigned integer in RPC/TxToUniv (TheBlueMatt)
  • #19555 Deduplicate WriteHDKeypath() used in decodepsbt (theStack)
  • #19589 Avoid useless mempool query in gettxoutproof (MarcoFalke)
  • #19585 RPCResult Type of MempoolEntryDescription should be OBJ (stylesuxx)
  • #19634 Document getwalletinfo’s unlocked_until field as optional (justinmoon)
  • #19658 Allow RPC to fetch all addrman records and add records to addrman (jnewbery)
  • #19696 Fix addnode remove command error (fjahr)
  • #18654 Separate bumpfee’s psbt creation function into psbtbumpfee (achow101)
  • #19655 Catch listsinceblock target_confirmations exceeding block count (adaminsky)
  • #19644 Document returned error fields as optional if applicable (theStack)
  • #19455 rpc generate: print useful help and error message (jonatack)
  • #19550 Add listindices RPC (fjahr)
  • #19169 Validate provided keys for query_options parameter in listunspent (PastaPastaPasta)
  • #18244 fundrawtransaction and walletcreatefundedpsbt also lock manually selected coins (Sjors)
  • #14687 zmq: Enable TCP keepalive (mruddy)
  • #19405 Add network in/out connections to getnetworkinfo and -getinfo (jonatack)
  • #19878 rawtransaction: Fix argument in combinerawtransaction help message (pinheadmz)
  • #19940 Return fee and vsize from testmempoolaccept (gzhao408)
  • #13686 zmq: Small cleanups in the ZMQ code (domob1812)
  • #19386, #19528, #19717, #19849, #19994 Assert that RPCArg names are equal to CRPCCommand ones (MarcoFalke)
  • #19725 Add connection type to getpeerinfo, improve logs (amitiuttarwar)
  • #19969 Send RPC bug fix and touch-ups (Sjors)
  • #18309 zmq: Add support to listen on multiple interfaces (n-thumann)
  • #20055 Set HTTP Content-Type in bitcoin-cli (laanwj)
  • #19956 Improve invalid vout value rpc error message (n1rna)
  • #20101 Change no wallet loaded message to be clearer (achow101)
  • #19998 Add via_tor to getpeerinfo output (hebasto)
  • #19770 getpeerinfo: Deprecate “whitelisted” field (replaced by “permissions”) (luke-jr)
  • #20120 net, rpc, test, bugfix: update GetNetworkName, GetNetworksInfo, regression tests (jonatack)
  • #20595 Improve heuristic hex transaction decoding (sipa)
  • #20731 Add missing description of vout in getrawtransaction help text (benthecarman)
  • #19328 Add gettxoutsetinfo hash_type option (fjahr)
  • #19731 Expose nLastBlockTime/nLastTXTime as last block/last_transaction in getpeerinfo (jonatack)
  • #19572 zmq: Create “sequence” notifier, enabling client-side mempool tracking (instagibbs)
  • #20002 Expose peer network in getpeerinfo; simplify/improve -netinfo (jonatack)
  • GUI:
  • #17905 Avoid redundant tx status updates (ryanofsky)
  • #18646 Use PACKAGE_NAME in exception message (fanquake)
  • #17509 Save and load PSBT (Sjors)
  • #18769 Remove bug fix for Qt < 5.5 (10xcryptodev)
  • #15768 Add close window shortcut (IPGlider)
  • #16224 Bilingual GUI error messages (hebasto)
  • #18922 Do not translate InitWarning messages in debug.log (hebasto)
  • #18152 Use NotificationStatus enum for signals to GUI (hebasto)
  • #18587 Avoid wallet tryGetBalances calls in WalletModel::pollBalanceChanged (ryanofsky)
  • #17597 Fix height of QR-less ReceiveRequestDialog (hebasto)
  • #17918 Hide non PKHash-Addresses in signing address book (emilengler)
  • #17956 Disable unavailable context menu items in transactions tab (kristapsk)
  • #17968 Ensure that ModalOverlay is resized properly (hebasto)
  • #17993 Balance/TxStatus polling update based on last block hash (furszy)
  • #18424 Use parent-child relation to manage lifetime of OptionsModel object (hebasto)
  • #18452 Fix shutdown when waitfor* cmds are called from RPC console (hebasto)
  • #15202 Add Close All Wallets action (promag)
  • #19132 lock cs_main, m_cached_tip_mutex in that order (vasild)
  • #18898 Display warnings as rich text (hebasto)
  • #19231 add missing translation.h include to fix build (fanquake)
  • #18027 “PSBT Operations” dialog (gwillen)
  • #19256 Change combiner for signals to optional_last_value (fanquake)
  • #18896 Reset toolbar after all wallets are closed (hebasto)
  • #18993 increase console command max length (10xcryptodev)
  • #19323 Fix regression in txoutset in GUI console (hebasto)
  • #19210 Get rid of cursor in out-of-focus labels (hebasto)
  • #19011 Reduce cs_main lock accumulation during GUI startup (jonasschnelli)
  • #19844 Remove usage of boost::bind (fanquake)
  • #20479 Fix QPainter non-determinism on macOS (0.21 backport) (laanwj)
  • gui#6 Do not truncate node flag strings in debugwindow peers details tab (Saibato)
  • gui#8 Fix regression in TransactionTableModel (hebasto)
  • gui#17 doc: Remove outdated comment in TransactionTablePriv (MarcoFalke)
  • gui#20 Wrap tooltips in the intro window (hebasto)
  • gui#30 Disable the main window toolbar when the modal overlay is shown (hebasto)
  • gui#34 Show permissions instead of whitelisted (laanwj)
  • gui#35 Parse params directly instead of through node (ryanofsky)
  • gui#39 Add visual accenting for the ‘Create new receiving address’ button (hebasto)
  • gui#40 Clarify block height label (hebasto)
  • gui#43 bugfix: Call setWalletActionsEnabled(true) only for the first wallet (hebasto)
  • gui#97 Relax GUI freezes during IBD (jonasschnelli)
  • gui#71 Fix visual quality of text in QR image (hebasto)
  • gui#96 Slight improve create wallet dialog (Sjors)
  • gui#102 Fix SplashScreen crash when run with -disablewallet (hebasto)
  • gui#116 Fix unreasonable default size of the main window without loaded wallets (hebasto)
  • gui#120 Fix multiwallet transaction notifications (promag)
  • Build system:
  • #18504 Drop bitcoin-tx and bitcoin-wallet dependencies on libevent (ryanofsky)
  • #18586 Bump gitian descriptors to 0.21 (laanwj)
  • #17595 guix: Enable building for x86_64-w64-mingw32 target (dongcarl)
  • #17929 add linker optimisation flags to gitian & guix (Linux) (fanquake)
  • #18556 Drop make dist in gitian builds (hebasto)
  • #18088 ensure we aren’t using GNU extensions (fanquake)
  • #18741 guix: Make source tarball using git-archive (dongcarl)
  • #18843 warn on potentially uninitialized reads (vasild)
  • #17874 make linker checks more robust (fanquake)
  • #18535 remove -Qunused-arguments workaround for clang + ccache (fanquake)
  • #18743 Add –sysroot option to mac os native compile flags (ryanofsky)
  • #18216 test, build: Enable -Werror=sign-compare (Empact)
  • #18928 don’t pass -w when building for Windows (fanquake)
  • #16710 Enable -Wsuggest-override if available (hebasto)
  • #18738 Suppress -Wdeprecated-copy warnings (hebasto)
  • #18862 Remove fdelt_chk back-compat code and sanity check (fanquake)
  • #18887 enable -Werror=gnu (vasild)
  • #18956 enforce minimum required Windows version (7) (fanquake)
  • #18958 guix: Make V=1 more powerful for debugging (dongcarl)
  • #18677 Multiprocess build support (ryanofsky)
  • #19094 Only allow ASCII identifiers (laanwj)
  • #18820 Propagate well-known vars into depends (dongcarl)
  • #19173 turn on –enable-c++17 by –enable-fuzz (vasild)
  • #18297 Use pkg-config in BITCOIN_QT_CONFIGURE for all hosts including Windows (hebasto)
  • #19301 don’t warn when doxygen isn’t found (fanquake)
  • #19240 macOS toolchain simplification and bump (dongcarl)
  • #19356 Fix search for brew-installed BDB 4 on OS X (gwillen)
  • #19394 Remove unused RES_IMAGES (Bushstar)
  • #19403 improve __builtin_clz* detection (fanquake)
  • #19375 target Windows 7 when building libevent and fix ipv6 usage (fanquake)
  • #19331 Do not include server symbols in wallet (MarcoFalke)
  • #19257 remove BIP70 configure option (fanquake)
  • #18288 Add MemorySanitizer (MSan) in Travis to detect use of uninitialized memory (practicalswift)
  • #18307 Require pkg-config for all of the hosts (hebasto)
  • #19445 Update msvc build to use ISO standard C++17 (sipsorcery)
  • #18882 fix -Wformat-security check when compiling with GCC (fanquake)
  • #17919 Allow building with system clang (dongcarl)
  • #19553 pass -fcommon when building genisoimage (fanquake)
  • #19565 call AC_PATH_TOOL for dsymutil in macOS cross-compile (fanquake)
  • #19530 build LTO support into Apple’s ld64 (theuni)
  • #19525 add -Wl,-z,separate-code to hardening flags (fanquake)
  • #19667 set minimum required Boost to 1.58.0 (fanquake)
  • #19672 make clean removes .gcda and .gcno files from fuzz directory (Crypt-iQ)
  • #19622 Drop ancient hack in gitian-linux descriptor (hebasto)
  • #19688 Add support for llvm-cov (hebasto)
  • #19718 Add missed gcov files to ‘make clean’ (hebasto)
  • #19719 Add Werror=range-loop-analysis (MarcoFalke)
  • #19015 Enable some commonly enabled compiler diagnostics (practicalswift)
  • #19689 build, qt: Add Qt version checking (hebasto)
  • #17396 modest Android improvements (icota)
  • #18405 Drop all of the ZeroMQ patches (hebasto)
  • #15704 Move Win32 defines to configure.ac to ensure they are globally defined (luke-jr)
  • #19761 improve sed robustness by not using sed (fanquake)
  • #19758 Drop deprecated and unused GUARDED_VAR and PT_GUARDED_VAR annotations (hebasto)
  • #18921 add stack-clash and control-flow protection options to hardening flags (fanquake)
  • #19803 Bugfix: Define and use HAVE_FDATASYNC correctly outside LevelDB (luke-jr)
  • #19685 CMake invocation cleanup (dongcarl)
  • #19861 add /usr/local/ to LCOV_FILTER_PATTERN for macOS builds (Crypt-iQ)
  • #19916 allow user to specify DIR_FUZZ_SEED_CORPUS for cov_fuzz (Crypt-iQ)
  • #19944 Update secp256k1 subtree (including BIP340 support) (sipa)
  • #19558 Split pthread flags out of ldflags and dont use when building libconsensus (fanquake)
  • #19959 patch qt libpng to fix powerpc build (fanquake)
  • #19868 Fix target name (hebasto)
  • #19960 The vcpkg tool has introduced a proper way to use manifests (sipsorcery)
  • #20065 fuzz: Configure check for main function (MarcoFalke)
  • #18750 Optionally skip external warnings (vasild)
  • #20147 Update libsecp256k1 (endomorphism, test improvements) (sipa)
  • #20156 Make sqlite support optional (compile-time) (luke-jr)
  • #20318 Ensure source tarball has leading directory name (MarcoFalke)
  • #20447 Patch qt_intersect_spans to avoid non-deterministic behavior in LLVM 8 (achow101)
  • #20505 Avoid secp256k1.h include from system (dergoegge)
  • #20527 Do not ignore Homebrew’s SQLite on macOS (hebasto)
  • #20478 Don’t set BDB flags when configuring without (jonasschnelli)
  • #20563 Check that Homebrew’s berkeley-db4 package is actually installed (hebasto)
  • #19493 Fix clang build on Mac (bvbfan)
  • Tests and QA:
  • #18593 Complete impl. of msg_merkleblock and wait_for_merkleblock (theStack)
  • #18609 Remove REJECT message code (hebasto)
  • #18584 Check that the version message does not leak the local address (MarcoFalke)
  • #18597 Extend wallet_dump test to cover comments (MarcoFalke)
  • #18596 Try once more when RPC connection fails on Windows (MarcoFalke)
  • #18451 shift coverage from getunconfirmedbalance to getbalances (jonatack)
  • #18631 appveyor: Disable functional tests for now (MarcoFalke)
  • #18628 Add various low-level p2p tests (MarcoFalke)
  • #18615 Avoid accessing free’d memory in validation_chainstatemanager_tests (MarcoFalke)
  • #18571 fuzz: Disable debug log file (MarcoFalke)
  • #18653 add coverage for bitcoin-cli -rpcwait (jonatack)
  • #18660 Verify findCommonAncestor always initializes outputs (ryanofsky)
  • #17669 Have coins simulation test also use CCoinsViewDB (jamesob)
  • #18662 Replace gArgs with local argsman in bench (MarcoFalke)
  • #18641 Create cached blocks not in the future (MarcoFalke)
  • #18682 fuzz: http_request workaround for libevent < 2.1.1 (theStack)
  • #18692 Bump timeout in wallet_import_rescan (MarcoFalke)
  • #18695 Replace boost::mutex with std::mutex (hebasto)
  • #18633 Properly raise FailedToStartError when rpc shutdown before warmup finished (MarcoFalke)
  • #18675 Don’t initialize PrecomputedTransactionData in txvalidationcache tests (jnewbery)
  • #18691 Add wait_for_cookie_credentials() to framework for rpcwait tests (jonatack)
  • #18672 Add further BIP37 size limit checks to p2p_filter.py (theStack)
  • #18721 Fix linter issue (hebasto)
  • #18384 More specific feature_segwit test error messages and fixing incorrect comments (gzhao408)
  • #18575 bench: Remove requirement that all benches use same testing setup (MarcoFalke)
  • #18690 Check object hashes in wait_for_getdata (robot-visions)
  • #18712 display command line options passed to send_cli() in debug log (jonatack)
  • #18745 Check submitblock return values (MarcoFalke)
  • #18756 Use wait_for_getdata() in p2p_compactblocks.py (theStack)
  • #18724 Add coverage for -rpcwallet cli option (jonatack)
  • #18754 bench: Add caddrman benchmarks (vasild)
  • #18585 Use zero-argument super() shortcut (Python 3.0+) (theStack)
  • #18688 fuzz: Run in parallel (MarcoFalke)
  • #18770 Remove raw-tx byte juggling in mempool_reorg (MarcoFalke)
  • #18805 Add missing sync_all to wallet_importdescriptors.py (achow101)
  • #18759 bench: Start nodes with -nodebuglogfile (MarcoFalke)
  • #18774 Added test for upgradewallet RPC (brakmic)
  • #18485 Add mempool_updatefromblock.py (hebasto)
  • #18727 Add CreateWalletFromFile test (ryanofsky)
  • #18726 Check misbehavior more independently in p2p_filter.py (robot-visions)
  • #18825 Fix message for ECC_InitSanityCheck test (fanquake)
  • #18576 Use unittest for test_framework unit testing (gzhao408)
  • #18828 Strip down previous releases boilerplate (MarcoFalke)
  • #18617 Add factor option to adjust test timeouts (brakmic)
  • #18855 feature_backwards_compatibility.py test downgrade after upgrade (achow101)
  • #18864 Add v0.16.3 backwards compatibility test, bump v0.19.0.1 to v0.19.1 (Sjors)
  • #18917 fuzz: Fix vector size problem in system fuzzer (brakmic)
  • #18901 fuzz: use std::optional for sep_pos_opt variable (brakmic)
  • #18888 Remove RPCOverloadWrapper boilerplate (MarcoFalke)
  • #18952 Avoid os-dependent path (fametrano)
  • #18938 Fill fuzzing coverage gaps for functions in consensus/validation.h, primitives/block.h and util/translation.h (practicalswift)
  • #18986 Add capability to disable RPC timeout in functional tests (rajarshimaitra)
  • #18530 Add test for -blocksonly and -whitelistforcerelay param interaction (glowang)
  • #19014 Replace TEST_PREVIOUS_RELEASES env var with test_framework option (MarcoFalke)
  • #19052 Don’t limit fuzzing inputs to 1 MB for afl-fuzz (now: ∞ ∀ fuzzers) (practicalswift)
  • #19060 Remove global wait_until from p2p_getdata (MarcoFalke)
  • #18926 Pass ArgsManager into getarg_tests (glowang)
  • #19110 Explain that a bug should be filed when the tests fail (MarcoFalke)
  • #18965 Implement base58_decode (10xcryptodev)
  • #16564 Always define the raii_event_tests test suite (candrews)
  • #19122 Add missing sync_blocks to wallet_hd (MarcoFalke)
  • #18875 fuzz: Stop nodes in process_message* fuzzers (MarcoFalke)
  • #18974 Check that invalid witness destinations can not be imported (MarcoFalke)
  • #18210 Type hints in Python tests (kiminuo)
  • #19159 Make valgrind.supp work on aarch64 (MarcoFalke)
  • #19082 Moved the CScriptNum asserts into the unit test in script.py (gillichu)
  • #19172 Do not swallow flake8 exit code (hebasto)
  • #19188 Avoid overwriting the NodeContext member of the testing setup [-Wshadow-field] (MarcoFalke)
  • #18890 disconnect_nodes should warn if nodes were already disconnected (robot-visions)
  • #19227 change blacklist to blocklist (TrentZ)
  • #19230 Move base58 to own module to break circular dependency (sipa)
  • #19083 msg_mempool, fRelay, and other bloomfilter tests (gzhao408)
  • #16756 Connection eviction logic tests (mzumsande)
  • #19177 Fix and clean p2p_invalid_messages functional tests (troygiorshev)
  • #19264 Don’t import asyncio to test magic bytes (jnewbery)
  • #19178 Make mininode_lock non-reentrant (jnewbery)
  • #19153 Mempool compatibility test (S3RK)
  • #18434 Add a test-security target and run it in CI (fanquake)
  • #19252 Wait for disconnect in disconnect_p2ps + bloomfilter test followups (gzhao408)
  • #19298 Add missing sync_blocks (MarcoFalke)
  • #19304 Check that message sends successfully when header is split across two buffers (troygiorshev)
  • #19208 move sync_blocks and sync_mempool functions to test_framework.py (ycshao)
  • #19198 Check that peers with forcerelay permission are not asked to feefilter (MarcoFalke)
  • #19351 add two edge case tests for CSubNet (vasild)
  • #19272 net, test: invalid p2p messages and test framework improvements (jonatack)
  • #19348 Bump linter versions (duncandean)
  • #19366 Provide main(…) function in fuzzer. Allow building uninstrumented harnesses with –enable-fuzz (practicalswift)
  • #19412 move TEST_RUNNER_EXTRA into native tsan setup (fanquake)
  • #19368 Improve functional tests compatibility with BSD/macOS (S3RK)
  • #19028 Set -logthreadnames in unit tests (MarcoFalke)
  • #18649 Add std::locale::global to list of locale dependent functions (practicalswift)
  • #19140 Avoid fuzzer-specific nullptr dereference in libevent when handling PROXY requests (practicalswift)
  • #19214 Auto-detect SHA256 implementation in benchmarks (sipa)
  • #19353 Fix mistakenly swapped “previous” and “current” lock orders (hebasto)
  • #19533 Remove unnecessary cs_mains in denialofservice_tests (jnewbery)
  • #19423 add functional test for txrelay during and after IBD (gzhao408)
  • #16878 Fix non-deterministic coverage of test DoS_mapOrphans (davereikher)
  • #19548 fuzz: add missing overrides to signature_checker (jonatack)
  • #19562 Fix fuzzer compilation on macOS (freenancial)
  • #19370 Static asserts for consistency of fee defaults (domob1812)
  • #19599 clean message_count and last_message (troygiorshev)
  • #19597 test decodepsbt fee calculation (count input value only once per UTXO) (theStack)
  • #18011 Replace current benchmarking framework with nanobench (martinus)
  • #19489 Fail wait_until early if connection is lost (MarcoFalke)
  • #19340 Preserve the LockData initial state if “potential deadlock detected” exception thrown (hebasto)
  • #19632 Catch decimal.InvalidOperation from TestNodeCLI#send_cli (Empact)
  • #19098 Remove duplicate NodeContext hacks (ryanofsky)
  • #19649 Restore test case for p2p transaction blinding (instagibbs)
  • #19657 Wait until is_connected in add_p2p_connection (MarcoFalke)
  • #19631 Wait for ‘cmpctblock’ in p2p_compactblocks when it is expected (Empact)
  • #19674 use throwaway _ variable for unused loop counters (theStack)
  • #19709 Fix ‘make cov’ with clang (hebasto)
  • #19564 p2p_feefilter improvements (logging, refactoring, speedup) (theStack)
  • #19756 add sync_all to fix race condition in wallet groups test (kallewoof)
  • #19727 Removing unused classes from p2p_leak.py (dhruv)
  • #19722 Add test for getblockheader verboseness (torhte)
  • #19659 Add a seed corpus generation option to the fuzzing test_runner (darosior)
  • #19775 Activate segwit in TestChain100Setup (MarcoFalke)
  • #19760 Remove confusing mininode terminology (jnewbery)
  • #19752 Update wait_until usage in tests not to use the one from utils (slmtpz)
  • #19839 Set appveyor VM version to previous Visual Studio 2019 release (sipsorcery)
  • #19830 Add tsan supp for leveldb::DBImpl::DeleteObsoleteFiles (MarcoFalke)
  • #19710 bench: Prevent thread oversubscription and decreases the variance of result values (hebasto)
  • #19842 Update the vcpkg checkout commit ID in appveyor config (sipsorcery)
  • #19507 Expand functional zmq transaction tests (instagibbs)
  • #19816 Rename wait until helper to wait_until_helper (MarcoFalke)
  • #19859 Fixes failing functional test by changing version (n-thumann)
  • #19887 Fix flaky wallet_basic test (fjahr)
  • #19897 Change FILE_CHAR_BLOCKLIST to FILE_CHARS_DISALLOWED (verretor)
  • #19800 Mockwallet (MarcoFalke)
  • #19922 Run rpc_txoutproof.py even with wallet disabled (MarcoFalke)
  • #19936 batch rpc with params (instagibbs)
  • #19971 create default wallet in extended tests (Sjors)
  • #19781 add parameterized constructor for msg_sendcmpct() (theStack)
  • #19963 Clarify blocksonly whitelistforcerelay test (t-bast)
  • #20022 Use explicit p2p objects where available (guggero)
  • #20028 Check that invalid peer traffic is accounted for (MarcoFalke)
  • #20004 Add signet witness commitment section parse tests (MarcoFalke)
  • #20034 Get rid of default wallet hacks (ryanofsky)
  • #20069 Mention commit id in scripted diff error (laanwj)
  • #19947 Cover change_type option of “walletcreatefundedpsbt” RPC (guggero)
  • #20126 p2p_leak_tx.py improvements (use MiniWallet, add p2p_lock acquires) (theStack)
  • #20129 Don’t export in6addr_loopback (vasild)
  • #20131 Remove unused nVersion=1 in p2p tests (MarcoFalke)
  • #20161 Minor Taproot follow-ups (sipa)
  • #19401 Use GBT to get block versions correct (luke-jr)
  • #20159 mining_getblocktemplate_longpoll.py improvements (use MiniWallet, add logging) (theStack)
  • #20039 Convert amounts from float to decimal (prayank23)
  • #20112 Speed up wallet_resendwallettransactions with mockscheduler RPC (MarcoFalke)
  • #20247 fuzz: Check for addrv1 compatibility before using addrv1 serializer. Fuzz addrv2 serialization (practicalswift)
  • #20167 Add test for -blockversion (MarcoFalke)
  • #19877 Clarify rpc_net & p2p_disconnect_ban functional tests (amitiuttarwar)
  • #20258 Remove getnettotals/getpeerinfo consistency test (jnewbery)
  • #20242 fuzz: Properly initialize PrecomputedTransactionData (MarcoFalke)
  • #20262 Skip –descriptor tests if sqlite is not compiled (achow101)
  • #18788 Update more tests to work with descriptor wallets (achow101)
  • #20289 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CService (practicalswift)
  • #20290 fuzz: Fix DecodeHexTx fuzzing harness issue (practicalswift)
  • #20245 Run script_assets_test even if built –with-libs=no (MarcoFalke)
  • #20300 fuzz: Add missing ECC_Start to descriptor_parse test (S3RK)
  • #20283 Only try witness deser when checking for witness deser failure (MarcoFalke)
  • #20303 fuzz: Assert expected DecodeHexTx behaviour when using legacy decoding (practicalswift)
  • #20316 Fix wallet_multiwallet test issue on Windows (MarcoFalke)
  • #20326 Fix ecdsa_verify in test framework (stepansnigirev)
  • #20328 cirrus: Skip tasks on the gui repo main branch (MarcoFalke)
  • #20355 fuzz: Check for addrv1 compatibility before using addrv1 serializer/deserializer on CSubNet (practicalswift)
  • #20332 Mock IBD in net_processing fuzzers (MarcoFalke)
  • #20218 Suppress epoll_ctl data race (MarcoFalke)
  • #20375 fuzz: Improve coverage for CPartialMerkleTree fuzzing harness (practicalswift)
  • #19669 contrib: Fixup valgrind suppressions file (MarcoFalke)
  • #18879 valgrind: remove outdated suppressions (fanquake)
  • #19226 Add BerkeleyDatabase tsan suppression (MarcoFalke)
  • #20379 Remove no longer needed UBSan suppression (float divide-by-zero in validation.cpp) (practicalswift)
  • #18190, #18736, #18744, #18775, #18783, #18867, #18994, #19065, #19067, #19143, #19222, #19247, #19286, #19296, #19379, #19934, #20188, #20395 Add fuzzing harnessses (practicalswift)
  • #18638 Use mockable time for ping/pong, add tests (MarcoFalke)
  • #19951 CNetAddr scoped ipv6 test coverage, rename scopeId to m_scope_id (jonatack)
  • #20027 Use mockable time everywhere in net_processing (sipa)
  • #19105 Add Muhash3072 implementation in Python (fjahr)
  • #18704, #18752, #18753, #18765, #18839, #18866, #18873, #19022, #19023, #19429, #19552, #19778, #20176, #20179, #20214, #20292, #20299, #20322 Fix intermittent test issues (MarcoFalke)
  • #20390 CI/Cirrus: Skip merge_base step for non-PRs (luke-jr)
  • #18634 ci: Add fuzzbuzz integration configuration file (practicalswift)
  • #18591 Add C++17 build to Travis (sipa)
  • #18581, #18667, #18798, #19495, #19519, #19538 CI improvements (hebasto)
  • #18683, #18705, #18735, #18778, #18799, #18829, #18912, #18929, #19008, #19041, #19164, #19201, #19267, #19276, #19321, #19371, #19427, #19730, #19746, #19881, #20294, #20339, #20368 CI improvements (MarcoFalke)
  • #20489, #20506 MSVC CI improvements (sipsorcery)
  • Miscellaneous:
  • #18713 scripts: Add macho stack canary check to security-check.py (fanquake)
  • #18629 scripts: Add pe .reloc section check to security-check.py (fanquake)
  • #18437 util: Detect posix_fallocate() instead of assuming (vasild)
  • #18413 script: Prevent ub when computing abs value for num opcode serialize (pierreN)
  • #18443 lockedpool: avoid sensitive data in core files (FreeBSD) (vasild)
  • #18885 contrib: Move optimize-pngs.py script to the maintainer repo (MarcoFalke)
  • #18317 Serialization improvements step 6 (all except wallet/gui) (sipa)
  • #16127 More thread safety annotation coverage (ajtowns)
  • #19228 Update libsecp256k1 subtree (sipa)
  • #19277 util: Add assert identity function (MarcoFalke)
  • #19491 util: Make assert work with any value (MarcoFalke)
  • #19205 script: previous_release.sh rewritten in python (bliotti)
  • #15935 Add /settings.json persistent settings storage (ryanofsky)
  • #19439 script: Linter to check commit message formatting (Ghorbanian)
  • #19654 lint: Improve commit message linter in travis (fjahr)
  • #15382 util: Add runcommandparsejson (Sjors)
  • #19614 util: Use have_fdatasync to determine fdatasync() use (fanquake)
  • #19813 util, ci: Hard code previous release tarball checksums (hebasto)
  • #19841 Implement Keccak and SHA3_256 (sipa)
  • #19643 Add -netinfo peer connections dashboard (jonatack)
  • #15367 feature: Added ability for users to add a startup command (benthecarman)
  • #19984 log: Remove static log message “Initializing chainstate Chainstate [ibd] @ height -1 (null)” (practicalswift)
  • #20092 util: Do not use gargs global in argsmanager member functions (hebasto)
  • #20168 contrib: Fix gen_key_io_test_vectors.py imports (MarcoFalke)
  • #19624 Warn on unknown rw_settings (MarcoFalke)
  • #20257 Update secp256k1 subtree to latest master (sipa)
  • #20346 script: Modify security-check.py to use “==” instead of “is” for literal comparison (tylerchambers)
  • #18881 Prevent UB in DeleteLock() function (hebasto)
  • #19180, #19189, #19190, #19220, #19399 Replace RecursiveMutex with Mutex (hebasto)
  • #19347 Make cs_inventory nonrecursive (jnewbery)
  • #19773 Avoid recursive lock in IsTrusted (promag)
  • #18790 Improve thread naming (hebasto)
  • #20140 Restore compatibility with old CSubNet serialization (sipa)
  • #17775 DecodeHexTx: Try case where txn has inputs first (instagibbs)
  • Documentation:
  • #18502 Update docs for getbalance (default minconf should be 0) (uzyn)
  • #18632 Fix macos comments in release-notes (MarcoFalke)
  • #18645 Update thread information in developer docs (jnewbery)
  • #18709 Note why we can’t use thread_local with glibc back compat (fanquake)
  • #18410 Improve commenting for coins.cpp|h (jnewbery)
  • #18157 fixing init.md documentation to not require rpcpassword (jkcd)
  • #18739 Document how to fuzz Bitcoin Core using Honggfuzz (practicalswift)
  • #18779 Better explain GNU ld’s dislike of ld64’s options (fanquake)
  • #18663 Mention build docs in README.md (saahilshangle)
  • #18810 Update rest info on block size and json (chrisabrams)
  • #18939 Add c++17-enable flag to fuzzing instructions (mzumsande)
  • #18957 Add a link from ZMQ doc to ZMQ example in contrib/ (meeDamian)
  • #19058 Drop protobuf stuff (hebasto)
  • #19061 Add link to Visual Studio build readme (maitrebitcoin)
  • #19072 Expand section on Getting Started (MarcoFalke)
  • #18968 noban precludes maxuploadtarget disconnects (MarcoFalke)
  • #19005 Add documentation for ‘checklevel’ argument in ‘verifychain’ RPC… (kcalvinalvin)
  • #19192 Extract net permissions doc (MarcoFalke)
  • #19071 Separate repository for the gui (MarcoFalke)
  • #19018 fixing description of the field sequence in walletcreatefundedpsbt RPC method (limpbrains)
  • #19367 Span pitfalls (sipa)
  • #19408 Windows WSL build recommendation to temporarily disable Win32 PE support (sipsorcery)
  • #19407 explain why passing -mlinker-version is required when cross-compiling (fanquake)
  • #19452 afl fuzzing comment about afl-gcc and afl-g++ (Crypt-iQ)
  • #19258 improve subtree check instructions (Sjors)
  • #19474 Use precise permission flags where possible (MarcoFalke)
  • #19494 CONTRIBUTING.md improvements (jonatack)
  • #19268 Add non-thread-safe note to FeeFilterRounder::round() (hebasto)
  • #19547 Update macOS cross compilation dependencies for Focal (hebasto)
  • #19617 Clang 8 or later is required with FORCE_USE_SYSTEM_CLANG (fanquake)
  • #19639 Remove Reference Links #19582 (RobertHosking)
  • #19605 Set CC_FOR_BUILD when building on OpenBSD (fanquake)
  • #19765 Fix getmempoolancestors RPC result doc (MarcoFalke)
  • #19786 Remove label from good first issue template (MarcoFalke)
  • #19646 Updated outdated help command for getblocktemplate (jakeleventhal)
  • #18817 Document differences in bitcoind and bitcoin-qt locale handling (practicalswift)
  • #19870 update PyZMQ install instructions, fix zmq_sub.py file permissions (jonatack)
  • #19903 Update build-openbsd.md with GUI support (grubles)
  • #19241 help: Generate checkpoint height from chainparams (luke-jr)
  • #18949 Add CODEOWNERS file to automatically nominate PR reviewers (adamjonas)
  • #20014 Mention signet in -help output (hebasto)
  • #20015 Added default signet config for linearize script (gr0kchain)
  • #19958 Better document features of feelers (naumenkogs)
  • #19871 Clarify scope of eviction protection of outbound block-relay peers (ariard)
  • #20076 Update and improve files.md (hebasto)
  • #20107 Collect release-notes snippets (MarcoFalke)
  • #20109 Release notes and followups from 19339 (glozow)
  • #20090 Tiny followups to new getpeerinfo connection type field (amitiuttarwar)
  • #20152 Update wallet files in files.md (hebasto)
  • #19124 Document ALLOW_HOST_PACKAGES dependency option (skmcontrib)
  • #20271 Document that wallet salvage is experimental (MarcoFalke)
  • #20281 Correct getblockstats documentation for (sw)total_weight (shesek)
  • #20279 release process updates/fixups (jonatack)
  • #20238 Missing comments for signet parameters (decryp2kanon)
  • #20756 Add missing field (permissions) to the getpeerinfo help (amitiuttarwar)
  • #20668 warn that incoming conns are unlikely when not using default ports (adamjonas)
  • #19961 tor.md updates (jonatack)
  • #19050 Add warning for rest interface limitation (fjahr)
  • #19390 doc/REST-interface: Remove stale info (luke-jr)
  • #19344 docs: update testgen usage example (Bushstar)

New in Bitcoin Core 0.20.1 (Dec 21, 2020)

  • Mining:
  • #19019 Fix GBT: Restore “!segwit” and “csv” to “rules” key (luke-jr)
  • P2P protocol and network code:
  • #19219 Replace automatic bans with discouragement filter (sipa)
  • Wallet:
  • #19300 Handle concurrent wallet loading (promag)
  • #18982 Minimal fix to restore conflicted transaction notifications (ryanofsky)
  • RPC and other APIs:
  • #19524 Increment input value sum only once per UTXO in decodepsbt (fanquake)
  • #19517 psbt: Increment input value sum only once per UTXO in decodepsbt (achow101)
  • #19215 psbt: Include and allow both non_witness_utxo and witness_utxo for segwit inputs (achow101)
  • GUI:
  • #19097 Add missing QPainterPath include (achow101)
  • #19059 update Qt base translations for macOS release (fanquake)
  • Build system:
  • #19152 improve build OS configure output (skmcontrib)
  • #19536 qt, build: Fix QFileDialog for static builds (hebasto)
  • Tests and QA:
  • #19444 Remove cached directories and associated script blocks from appveyor config (sipsorcery)
  • #18640 appveyor: Remove clcache (MarcoFalke)
  • Miscellaneous:
  • #19194 util: Don’t reference errno when pthread fails (miztake)
  • #18700 Fix locking on WSL using flock instead of fcntl (meshcollider)

New in Bitcoin Core 0.20.0 (Dec 21, 2020)

  • Mining:
  • #18742 miner: Avoid stack-use-after-return in validationinterface (MarcoFalke)
  • Block and transaction handling:
  • #15283 log: Fix UB with bench on genesis block (instagibbs)
  • #16507 feefilter: Compute the absolute fee rather than stored rate (instagibbs)
  • #16688 log: Add validation interface logging (jkczyz)
  • #16805 log: Add timing information to FlushStateToDisk() (jamesob)
  • #16902 O(1) OP_IF/NOTIF/ELSE/ENDIF script implementation (sipa)
  • #16945 introduce CChainState::GetCoinsCacheSizeState (jamesob)
  • #16974 Walk pindexBestHeader back to ChainActive().Tip() if it is invalid (TheBlueMatt)
  • #17004 Remove REJECT code from CValidationState (jnewbery)
  • #17080 Explain why fCheckDuplicateInputs can not be skipped and remove it (MarcoFalke)
  • #17328 GuessVerificationProgress: cap the ratio to 1 (darosior)
  • #17399 Templatize ValidationState instead of subclassing (jkczyz)
  • #17407 node: Add reference to mempool in NodeContext (MarcoFalke)
  • #17708 prevector: Avoid misaligned member accesses (ajtowns)
  • #17850,#17896,#17957,#18021,#18021,#18112 Serialization improvements (sipa)
  • #17925 Improve UpdateTransactionsFromBlock with Epochs (JeremyRubin)
  • #18002 Abstract out script execution out of VerifyWitnessProgram() (sipa)
  • #18388 Make VerifyWitnessProgram use a Span stack (sipa)
  • #18433 serialization: prevent int overflow for big Coin::nHeight (pierreN)
  • #18500 chainparams: Bump assumed valid hash (MarcoFalke)
  • #18551 Do not clear validationinterface entries being executed (sipa)
  • P2P protocol and network code:
  • #15437 Remove BIP61 reject messages (MarcoFalke)
  • #16702 Supply and use asmap to improve IP bucketing in addrman (naumenkogs)
  • #16851 Continue relaying transactions after they expire from mapRelay (ajtowns)
  • #17164 Avoid allocating memory for addrKnown where we don’t need it (naumenkogs)
  • #17243 tools: add PoissonNextSend method that returns mockable time (amitiuttarwar)
  • #17251 SocketHandler logs peer id for close and disconnect (Sjors)
  • #17573 Seed RNG with precision timestamps on receipt of net messages (TheBlueMatt)
  • #17624 Fix an uninitialized read in ProcessMessage(…, “tx”, …) when receiving a transaction we already have (practicalswift)
  • #17754 Don’t allow resolving of std::string with embedded NUL characters. Add tests (practicalswift)
  • #17758 Fix CNetAddr::IsRFC2544 comment + tests (tynes)
  • #17812 config, net, test: Asmap feature refinements and functional tests (jonatack)
  • #17951 Use rolling bloom filter of recent block txs for AlreadyHave() check (sdaftuar)
  • #17985 Remove forcerelay of rejected txs (MarcoFalke)
  • #18023 Fix some asmap issues (sipa)
  • #18054 Reference instead of copy in BlockConnected range loop (jonatack)
  • #18376 Fix use-after-free in tests (vasild)
  • #18454 Make addr relay mockable, add test (MarcoFalke)
  • #18458 Add missing cs_vNodes lock (MarcoFalke)
  • #18506 Hardcoded seeds update for 0.20 (laanwj)
  • #18808 Drop unknown types in getdata (jnewbery)
  • #18962 Only send a getheaders for one block in an INV (jnewbery)
  • Wallet:
  • #13339 Replace %w by wallet name in -walletnotify script (promag)
  • #15931 Remove GetDepthInMainChain dependency on locked chain interface (ariard)
  • #16373 bumpfee: Return PSBT when wallet has privkeys disabled (instagibbs)
  • #16524 Disable -fallbackfee by default (jtimon)
  • #16766 Make IsTrusted scan parents recursively (JeremyRubin)
  • #16884 Change default address type to bech32 (instagibbs)
  • #16911 Only check the hash of transactions loaded from disk (achow101)
  • #16923 Handle duplicate fileid exception (promag)
  • #17056 descriptors: Introduce sortedmulti descriptor (achow101)
  • #17070 Avoid showing GUI popups on RPC errors (MarcoFalke)
  • #17138 Remove wallet access to some node arguments (jnewbery)
  • #17237 LearnRelatedScripts only if KeepDestination (promag)
  • #17260 Split some CWallet functions into new LegacyScriptPubKeyMan (achow101)
  • #17261 Make ScriptPubKeyMan an actual interface and the wallet to have multiple (achow101)
  • #17290 Enable BnB coin selection for preset inputs and subtract fee from outputs (achow101)
  • #17373 Various fixes and cleanup to keypool handling in LegacyScriptPubKeyMan and CWallet (achow101)
  • #17410 Rename db log category to walletdb (like coindb) (laanwj)
  • #17444 Avoid showing GUI popups on RPC errors (take 2) (MarcoFalke)
  • #17447 Make -walletdir network only (promag)
  • #17537 Cleanup and move opportunistic and superfluous TopUp()s (achow101)
  • #17553 Remove out of date comments for CalculateMaximumSignedTxSize (instagibbs)
  • #17568 Fix when sufficient preset inputs and subtractFeeFromOutputs (achow101)
  • #17677 Activate watchonly wallet behavior for LegacySPKM only (instagibbs)
  • #17719 Document better -keypool as a look-ahead safety mechanism (ariard)
  • #17843 Reset reused transactions cache (fjahr)
  • #17889 Improve CWallet:MarkDestinationsDirty (promag)
  • #18034 Get the OutputType for a descriptor (achow101)
  • #18067 Improve LegacyScriptPubKeyMan::CanProvide script recognition (ryanofsky)
  • #18115 Pass in transactions and messages for signing instead of exporting the private keys (achow101)
  • #18192,#18546 Bugfix: Wallet: Safely deal with change in the address book (luke-jr)
  • #18204 descriptors: Improve descriptor cache and cache xpubs (achow101)
  • #18274 rpc/wallet: Initialize nFeeRequired to avoid using garbage value on failure (kallewoof)
  • #18312 Remove deprecated fee bumping by totalFee (jonatack)
  • #18338 Fix wallet unload race condition (promag)
  • RPC and other APIs:
  • #12763 Add RPC Whitelist Feature from #12248 (JeremyRubin)
  • #13716 cli: -stdinwalletpassphrase and non-echo stdin passwords (kallewoof)
  • #16689 Add missing fields to wallet rpc help output (ariard)
  • #16821 Fix bug where duplicate PSBT keys are accepted (erasmospunk)
  • #16899 UTXO snapshot creation (dumptxoutset)
  • #17156 psbt: Check that various indexes and amounts are within bounds (achow101)
  • #17264 Set default bip32derivs to true for psbt methods (Sjors)
  • #17283 improve getaddressinfo test coverage, help, code docs (jonatack)
  • #17302 cli: Add “headers” and “verificationprogress” to -getinfo (laanwj)
  • #17318 replace asserts in RPC code with CHECK_NONFATAL and add linter (adamjonas)
  • #17437 Expose block height of wallet transactions (promag)
  • #17519 Remove unused COINBASE_FLAGS (narula)
  • #17578 Simplify getaddressinfo labels, deprecate previous behavior (jonatack)
  • #17585 deprecate getaddressinfo label (jonatack)
  • #17746 Remove vector copy from listtransactions (promag)
  • #17809 Auto-format RPCResult (MarcoFalke)
  • #18032 Output a descriptor in createmultisig and addmultisigaddress (achow101)
  • #18122 Update validateaddress RPCExamples to bech32 (theStack)
  • #18208 Change RPCExamples to bech32 (yusufsahinhamza)
  • #18268 Remove redundant types from descriptions (docallag)
  • #18346 Document an RPCResult for all calls; Enforce at compile time (MarcoFalke)
  • #18396 Add missing HelpExampleRpc for getblockfilter (theStack)
  • #18398 Fix broken RPCExamples for waitforblock(height) (theStack)
  • #18444 Remove final comma for last entry of fixed-size arrays/objects in RPCResult (luke-jr)
  • #18459 Remove unused getbalances() code (jonatack)
  • #18484 Correctly compute redeemScript from witnessScript for signrawtransaction (achow101)
  • #18487 Fix rpcRunLater race in walletpassphrase (promag)
  • #18499 Make rpc documentation not depend on call-time rpc args (MarcoFalke)
  • #18532 Avoid initialization-order-fiasco on static CRPCCommand tables (MarcoFalke)
  • #18541 Make verifychain default values static, not depend on global args (MarcoFalke)
  • #18809 Do not advertise dumptxoutset as a way to flush the chainstate (MarcoFalke)
  • #18814 Relock wallet only if most recent callback (promag)
  • GUI:
  • #15023 Restore RPC Console to non-wallet tray icon menu (luke-jr)
  • #15084 Don’t disable the sync overlay when wallet is disabled (benthecarman)
  • #15098 Show addresses for “SendToSelf” transactions (hebasto)
  • #15756 Add shortcuts for tab tools (promag)
  • #16944 create PSBT with watch-only wallet (Sjors)
  • #16964 Change sendcoins dialogue Yes to Send (instagibbs)
  • #17068 Always generate bitcoinstrings.cpp on make translate (D4nte)
  • #17096 Rename debug window (Zero-1729)
  • #17105 Make RPCConsole::TabTypes an enum class (promag)
  • #17125 Add toolTip and placeholderText to sign message fields (dannmat)
  • #17165 Remove BIP70 support (fanquake)
  • #17180 Improved tooltip for send amount field (JeremyCrookshank)
  • #17186 Add placeholder text to the sign message field (Danny-Scott)
  • #17195 Send amount placeholder value (JeremyCrookshank)
  • #17226 Fix payAmount tooltip in SendCoinsEntry (promag)
  • #17360 Cleaning up hide button tool tip (Danny-Scott)
  • #17446 Changed tooltip for ‘Label’ & ‘Message’ text fields to be more clear (dannmat)
  • #17453 Fix intro dialog labels when the prune button is toggled (hebasto)
  • #17474 Bugfix: GUI: Recognise NETWORK_LIMITED in formatServicesStr (luke-jr)
  • #17492 Bump fee returns PSBT on clipboard for watchonly-only wallets (instagibbs)
  • #17567 Remove macOS start on login code (fanquake)
  • #17587 Show watch-only balance in send screen (Sjors)
  • #17694 Disable 3rd-party tx-urls when wallet disabled (brakmic)
  • #17696 Force set nPruneSize in QSettings after the intro dialog (hebasto)
  • #17702 Move static placeholder texts to forms (laanwj)
  • #17826 Log Qt related info (hebasto)
  • #17886 Restore English translation option (achow101)
  • #17906 Set CConnman byte counters earlier to avoid uninitialized reads (ryanofsky)
  • #17935 Hide HD & encryption icons when no wallet loaded (brakmic)
  • #17998 Shortcut to close ModalOverlay (emilengler)
  • #18007 Bugfix: GUI: Hide the HD/encrypt icons earlier so they get re-shown if another wallet is open (luke-jr)
  • #18060 Drop PeerTableModel dependency to ClientModel (promag)
  • #18062 Fix unintialized WalletView::progressDialog (promag)
  • #18091 Pass clientmodel changes from walletframe to walletviews (jonasschnelli)
  • #18101 Fix deprecated QCharRef usage (hebasto)
  • #18121 Throttle GUI update pace when -reindex (hebasto)
  • #18123 Fix race in WalletModel::pollBalanceChanged (ryanofsky)
  • #18160 Avoid Wallet::GetBalance in WalletModel::pollBalanceChanged (promag)
  • #18360 Bump transifex slug and update English translations for 0.20 (laanwj)
  • #18402 Display mapped AS in peers info window (jonatack)
  • #18492 Translations update pre-branch (laanwj)
  • #18549 Fix Window -> Minimize menu item (hebasto)
  • #18578 Fix leak in CoinControlDialog::updateView (promag)
  • #18894 Fix manual coin control with multiple wallets loaded (promag)
  • Build system:
  • #16667 Remove mingw linker workaround from win gitian descriptor (fanquake)
  • #16669 Use new fork of osslsigncode for windows gitian signing (fanquake)
  • #16949 Only pass –disable-dependency-tracking to packages that understand it (fanquake)
  • #17008 Bump libevent to 2.1.11 in depends (stefanwouldgo)
  • #17029 gitian: Various improvements for windows descriptor (dongcarl)
  • #17033 Disable _FORTIFY_SOURCE when enable-debug (achow101)
  • #17057 Switch to upstream libdmg-hfsplus (fanquake)
  • #17066 Remove workaround for ancient libtool (hebasto)
  • #17074 Added double quotes (mztriz)
  • #17087 Add variable printing target to Makefiles (dongcarl)
  • #17118 depends macOS: point –sysroot to SDK (Sjors)
  • #17231 Fix boost mac cross build with clang 9+ (theuni)
  • #17265 Remove OpenSSL (fanquake)
  • #17284 Update retry to current version (RandyMcMillan)
  • #17308 nsis: Write to correct filename in first place (dongcarl)
  • #17324,#18099 Update univalue subtree (MarcoFalke)
  • #17398 Update leveldb to 1.22+ (laanwj)
  • #17409 Avoid hardcoded libfaketime dir in gitian (MarcoFalke)
  • #17466 Fix C{,XX} pickup (dongcarl)
  • #17483 Set gitian arch back to amd64 (MarcoFalke)
  • #17486 Make Travis catch unused variables (Sjors)
  • #17538 Bump minimum libc to 2.17 for release binaries (fanquake)
  • #17542 Create test utility library from src/test/util/ (brakmic)
  • #17545 Remove libanl.so.1 from ALLOWED_LIBRARIES (fanquake)
  • #17547 Fix configure report about qr (hebasto)
  • #17569 Allow export of environ symbols and work around rv64 toolchain issue (laanwj)
  • #17647 lcov: filter depends from coverage reports (nijynot)
  • #17658 Add ability to skip building qrencode (fanquake)
  • #17678 Support for S390X and POWER targets (MarcoFalke)
  • #17682 util: Update tinyformat to upstream (laanwj)
  • #17698 Don’t configure xcb_proto (fanquake)
  • #17730 Remove Qt networking features (fanquake)
  • #17738 Remove linking librt for backwards compatibility (fanquake)
  • #17740 Remove configure checks for win libraries we don’t link against (fanquake)
  • #17741 Included test_bitcoin-qt in msvc build (sipsorcery)
  • #17756 Remove WINDOWS_BITS from build system (fanquake)
  • #17769 Set AC_PREREQ to 2.69 (fanquake)
  • #17880 Add -Wdate-time to Werror flags (fanquake)
  • #17910 Remove double LIBBITCOIN_SERVER linking (fanquake)
  • #17928 Consistent use of package variable (Bushstar)
  • #17933 guix: Pin Guix using guix time-machine (dongcarl)
  • #17948 pass -fno-ident in Windows gitian descriptor (fanquake)
  • #18003 Remove –large-address-aware linker flag (fanquake)
  • #18004 Don’t embed a build-id when building libdmg-hfsplus (fanquake)
  • #18051 Fix behavior when ALLOW_HOST_PACKAGES unset (hebasto)
  • #18059 Add missing attributes to Win installer (fanquake)
  • #18104 Skip i686 build by default in guix and gitian (MarcoFalke)
  • #18107 Add cov_fuzz target (MarcoFalke)
  • #18135 Add –enable-determinism configure flag (fanquake)
  • #18145 Add Wreturn-type to Werror flags, check on more Travis machines (Sjors)
  • #18264 Remove Boost Chrono (fanquake)
  • #18290 Set minimum Automake version to 1.13 (hebasto)
  • #18320 guix: Remove now-unnecessary gcc make flag (dongcarl)
  • #18331 Use git archive as source tarball (hebasto)
  • #18397 Fix libevent linking for bench_bitcoin binary (hebasto)
  • #18426 scripts: Previous_release: improve behaviour on failed download (theStack)
  • #18429 Remove double LIBBITCOIN_SERVER from bench-Makefile (brakmic)
  • #18528 Create test_fuzz library from src/test/fuzz/fuzz.cpp (brakmic)
  • #18558 Fix boost detection for arch armv7l (hebasto)
  • #18598 gitian: Add missing automake package to gitian-win-signer.yml (achow101)
  • #18676 Check libevent minimum version in configure script (hebasto)
  • #18945 Ensure source tarball has leading directory name (laanwj)
  • Platform support:
  • #16110 Add Android NDK support (icota)
  • #16392 macOS toolchain update (fanquake)
  • #16569 Increase init file stop timeout (setpill)
  • #17151 Remove OpenSSL PRNG seeding (Windows, Qt only) (fanquake)
  • #17365 Update README.md with working Android targets and API levels (icota)
  • #17521 Only use D-Bus with Qt on linux (fanquake)
  • #17550 Set minimum supported macOS to 10.12 (fanquake)
  • #17592 Appveyor install libevent[thread] vcpkg (sipsorcery)
  • #17660 Remove deprecated key from macOS Info.plist (fanquake)
  • #17663 Pass -dead_strip_dylibs to ld on macOS (fanquake)
  • #17676 Don’t use OpenGL in Qt on macOS (fanquake)
  • #17686 Add -bind_at_load to macOS hardened LDFLAGS (fanquake)
  • #17787 scripts: Add macho pie check to security-check.py (fanquake)
  • #17800 random: don’t special case clock usage on macOS (fanquake)
  • #17863 scripts: Add macho dylib checks to symbol-check.py (fanquake)
  • #17899 msvc: Ignore msvc linker warning and update to msvc build instructions (sipsorcery)
  • #17916 windows: Enable heap terminate-on-corruption (fanquake)
  • #18082 logging: Enable thread_local usage on macos (fanquake)
  • #18108 Fix .gitignore policy in build_msvc directory (hebasto)
  • #18295 scripts: Add macho lazy bindings check to security-check.py (fanquake)
  • #18358 util: Fix compilation with mingw-w64 7.0.0 (fanquake)
  • #18359 Fix sysctl() detection on macOS (fanquake)
  • #18364 random: remove getentropy() fallback for macOS < 10.12 (fanquake)
  • #18395 scripts: Add pe dylib checking to symbol-check.py (fanquake)
  • #18415 scripts: Add macho tests to test-security-check.py (fanquake)
  • #18425 releases: Update with new Windows code signing certificate (achow101)
  • #18702 Fix ASLR for bitcoin-cli on Windows (fanquake)
  • Tests and QA:
  • #12134 Build previous releases and run functional tests (Sjors)
  • #13693 Add coverage to estimaterawfee and estimatesmartfee (Empact)
  • #13728 lint: Run the ci lint stage on mac (Empact)
  • #15443 Add getdescriptorinfo functional test (promag)
  • #15888 Add wallet_implicitsegwit to test the ability to transform keys between address types (luke-jr)
  • #16540 Add ASSERT_DEBUG_LOG to unit test framework (MarcoFalke)
  • #16597 travis: Run full test suite on native macos (Sjors)
  • #16681 Use self.chain instead of ‘regtest’ in all current tests (jtimon)
  • #16786 add unit test for wallet watch-only methods involving PubKeys (theStack)
  • #16943 Add generatetodescriptor RPC (MarcoFalke)
  • #16973 Fix combine_logs.py for AppVeyor build (mzumsande)
  • #16975 Show debug log on unit test failure (MarcoFalke)
  • #16978 Seed test RNG context for each test case, print seed (MarcoFalke)
  • #17009, #17018, #17050, #17051, #17071, #17076, #17083, #17093, #17109, #17113, #17136, #17229, #17291, #17357, #17771, #17777, #17917, #17926, #17972, #17989, #17996, #18009, #18029, #18047, #18126, #18176, #18206, #18353, #18363, #18407, #18417, #18423, #18445, #18455, #18565 Add fuzzing harnesses (practicalswift)
  • #17011 ci: Use busybox utils for one build (MarcoFalke)
  • #17030 Fix Python Docstring to include all Args (jbampton)
  • #17041 ci: Run tests on arm (MarcoFalke)
  • #17069 Pass fuzzing inputs as constant references (practicalswift)
  • #17091 Add test for loadblock option and linearize scripts (fjahr)
  • #17108 fix “tx-size-small” errors after default address change (theStack)
  • #17121 Speed up wallet_backup by whitelisting peers (immediate tx relay) (theStack)
  • #17124 Speed up wallet_address_types by whitelisting peers (immediate tx relay) (theStack)
  • #17140 Fix bug in blockfilter_index_tests (jimpo)
  • #17199 use default address type (bech32) for wallet_bumpfee tests (theStack)
  • #17205 ci: Enable address sanitizer (asan) stack-use-after-return checking (practicalswift)
  • #17206 Add testcase to simulate bitcoin schema in leveldb (adamjonas)
  • #17209 Remove no longer needed UBSan suppressions (issues fixed). Add documentation (practicalswift)
  • #17220 Add unit testing for the CompressScript function (adamjonas)
  • #17225 Test serialisation as part of deserialisation fuzzing. Test round-trip equality where possible (practicalswift)
  • #17228 Add RegTestingSetup to setup_common (MarcoFalke)
  • #17233 travis: Run unit and functional tests on native arm (MarcoFalke)
  • #17235 Skip unnecessary fuzzer initialisation. Hold ECCVerifyHandle only when needed (practicalswift)
  • #17240 ci: Disable functional tests on mac host (MarcoFalke)
  • #17254 Fix script_p2sh_tests OP_PUSHBACK2/4 missing (adamjonas)
  • #17267 bench: Fix negative values and zero for -evals flag (nijynot)
  • #17275 pubkey: Assert CPubKey’s ECCVerifyHandle precondition (practicalswift)
  • #17288 Added TestWrapper class for interactive Python environments (jachiang)
  • #17292 Add new mempool benchmarks for a complex pool (JeremyRubin)
  • #17299 add reason checks for non-standard txs in test_IsStandard (theStack)
  • #17322 Fix input size assertion in wallet_bumpfee.py (instagibbs)
  • #17327 Add rpc_fundrawtransaction logging (jonatack)
  • #17330 Add shrinkdebugfile=0 to regtest bitcoin.conf (sdaftuar)
  • #17340 Speed up fundrawtransaction test (jnewbery)
  • #17345 Do not instantiate CAddrDB for static call CAddrDB::Read() (hebasto)
  • #17362 Speed up wallet_avoidreuse, add logging (jonatack)
  • #17363 add “diamond” unit test to MempoolAncestryTests (theStack)
  • #17366 Reset global args between test suites (MarcoFalke)
  • #17367 ci: Run non-cross-compile builds natively (MarcoFalke)
  • #17378 TestShell: Fix typos & implement cleanups (jachiang)
  • #17384 Create new test library (MarcoFalke)
  • #17387 wallet_importmulti: use addresses of the same type as being imported (achow101)
  • #17388 Add missing newline in util_ChainMerge test (ryanofsky)
  • #17390 Add util_ArgParsing test (ryanofsky)
  • #17420 travis: Rework cache_err_msg (MarcoFalke)
  • #17423 ci: Make ci system read-only on the git work tree (MarcoFalke)
  • #17435 check custom ancestor limit in mempool_packages.py (theStack)
  • #17455 Update valgrind suppressions (practicalswift)
  • #17461 Check custom descendant limit in mempool_packages.py (theStack)
  • #17469 Remove fragile assert_memory_usage_stable (MarcoFalke)
  • #17470 ci: Use clang-8 for fuzzing to run on aarch64 ci systems (MarcoFalke)
  • #17480 Add unit test for non-standard txs with too large scriptSig (theStack)
  • #17497 Skip tests when utils haven’t been compiled (fanquake)
  • #17502 Add unit test for non-standard bare multisig txs (theStack)
  • #17511 Add bounds checks before base58 decoding (sipa)
  • #17517 ci: Bump to clang-8 for asan build to avoid segfaults on ppc64le (MarcoFalke)
  • #17522 Wait until mempool is loaded in wallet_abandonconflict (MarcoFalke)
  • #17532 Add functional test for non-standard txs with too large scriptSig (theStack)
  • #17541 Add functional test for non-standard bare multisig txs (theStack)
  • #17555 Add unit test for non-standard txs with wrong nVersion (dspicher)
  • #17571 Add libtest_util library to msvc build configuration (sipsorcery)
  • #17591 ci: Add big endian platform - s390x (elichai)
  • #17593 Move more utility functions into test utility library (mzumsande)
  • #17633 Add option –valgrind to run the functional tests under Valgrind (practicalswift)
  • #17635 ci: Add centos 7 build (hebasto)
  • #17641 Add unit test for leveldb creation with unicode path (sipsorcery)
  • #17674 Add initialization order fiasco detection in Travis (practicalswift)
  • #17675 Enable tests which are incorrectly skipped when running test_runner.py --usecli (practicalswift)
  • #17685 Fix bug in the descriptor parsing fuzzing harness (descriptor_parse) (practicalswift)
  • #17705 re-enable CLI test support by using EncodeDecimal in json.dumps() (fanquake)
  • #17720 add unit test for non-standard “scriptsig-not-pushonly” txs (theStack)
  • #17767 ci: Fix qemu issues (MarcoFalke)
  • #17793 ci: Update github actions ci vcpkg cache on msbuild update (hebasto)
  • #17806 Change filemode of rpc_whitelist.py (emilengler)
  • #17849 ci: Fix brew python link (hebasto)
  • #17851 Add std::to_string to list of locale dependent functions (practicalswift)
  • #17893 Fix double-negative arg test (hebasto)
  • #17900 ci: Combine 32-bit build with centos 7 build (theStack)
  • #17921 Test OP_CSV empty stack fail in feature_csv_activation.py (theStack)
  • #17931 Fix p2p_invalid_messages failing in Python 3.8 because of warning (elichai)
  • #17947 add unit test for non-standard txs with too large tx size (theStack)
  • #17959 Check specific reject reasons in feature_csv_activation.py (theStack)
  • #17984 Add p2p test for forcerelay permission (MarcoFalke)
  • #18001 Updated appveyor job to checkout a specific vcpkg commit ID (sipsorcery)
  • #18008 fix fuzzing using libFuzzer on macOS (fanquake)
  • #18013 bench: Fix benchmarks filters (elichai)
  • #18018 reset fIsBareMultisigStd after bare-multisig tests (fanquake)
  • #18022 Fix appveyor test_bitcoin build of *.raw (MarcoFalke)
  • #18037 util: Allow scheduler to be mocked (amitiuttarwar)
  • #18056 ci: Check for submodules (emilengler)
  • #18069 Replace ‘regtest’ leftovers by self.chain (theStack)
  • #18081 Set a name for CI Docker containers (fanquake)
  • #18109 Avoid hitting some known minor tinyformat issues when fuzzing strprintf(…) (practicalswift)
  • #18155 Add harness which fuzzes EvalScript and VerifyScript using a fuzzed signature checker (practicalswift)
  • #18159 Add –valgrind option to test/fuzz/test_runner.py for running fuzzing test cases under valgrind (practicalswift)
  • #18166 ci: Run fuzz testing test cases (bitcoin-core/qa-assets) under valgrind to catch memory errors (practicalswift)
  • #18172 Transaction expiry from mempool (0xB10C)
  • #18181 Remove incorrect assumptions in validation_flush_tests (MarcoFalke)
  • #18183 Set catch_system_errors=no on boost unit tests (MarcoFalke)
  • #18195 Add cost_of_change parameter assertions to bnb_search_test (yancyribbens)
  • #18209 Reduce unneeded whitelist permissions in tests (MarcoFalke)
  • #18211 Disable mockforward scheduler unit test for now (MarcoFalke)
  • #18213 Fix race in p2p_segwit (MarcoFalke)
  • #18224 Make AnalyzePSBT next role calculation simple, correct (instagibbs)
  • #18228 Add missing syncwithvalidationinterfacequeue (MarcoFalke)
  • #18247 Wait for both veracks in add_p2p_connection (MarcoFalke)
  • #18249 Bump timeouts to accomodate really slow disks (MarcoFalke)
  • #18255 Add bad-txns-*-toolarge test cases to invalid_txs (MarcoFalke)
  • #18263 rpc: change setmocktime check to use IsMockableChain (gzhao408)
  • #18285 Check that wait_until returns if time point is in the past (MarcoFalke)
  • #18286 Add locale fuzzer to FUZZERS_MISSING_CORPORA (practicalswift)
  • #18292 fuzz: Add assert(script == decompressed_script) (MarcoFalke)
  • #18299 Update FUZZERS_MISSING_CORPORA to enable regression fuzzing for all harnesses in master (practicalswift)
  • #18300 fuzz: Add option to merge input dir to test runner (MarcoFalke)
  • #18305 Explain why test logging should be used (MarcoFalke)
  • #18306 Add logging to wallet_listsinceblock.py (jonatack)
  • #18311 Bumpfee test fix (instagibbs)
  • #18314 Add deserialization fuzzing of SnapshotMetadata (utxo_snapshot) (practicalswift)
  • #18319 fuzz: Add missing ECC_Start to key_io test (MarcoFalke)
  • #18334 Add basic test for BIP 37 (MarcoFalke)
  • #18350 Fix mining to an invalid target + ensure that a new block has the correct hash internally (TheQuantumPhysicist)
  • #18378 Bugfix & simplify bn2vch using int.to_bytes (sipa)
  • #18393 Don’t assume presence of __builtin_mul_overflow(…) in MultiplicationOverflow(…) fuzzing harness (practicalswift)
  • #18406 add executable flag for rpc_estimatefee.py (theStack)
  • #18420 listsinceblock block height checks (jonatack)
  • #18430 ci: Only clone bitcoin-core/qa-assets when fuzzing (MarcoFalke)
  • #18438 ci: Use homebrew addon on native macos (hebasto)
  • #18447 Add coverage for script parse error in ParseScript (pierreN)
  • #18472 Remove unsafe BOOST_TEST_MESSAGE (MarcoFalke)
  • #18474 check that peer is connected when calling sync_* (MarcoFalke)
  • #18477 ci: Use focal for fuzzers (MarcoFalke)
  • #18481 add BIP37 ‘filterclear’ test to p2p_filter.py (theStack)
  • #18496 Remove redundant sync_with_ping after add_p2p_connection (jonatack)
  • #18509 fuzz: Avoid running over all inputs after merging them (MarcoFalke)
  • #18510 fuzz: Add CScriptNum::getint coverage (MarcoFalke)
  • #18514 remove rapidcheck integration and tests (fanquake)
  • #18515 Add BIP37 remote crash bug [CVE-2013-5700] test to p2p_filter.py (theStack)
  • #18516 relax bumpfee dust_to_fee txsize an extra vbyte (jonatack)
  • #18518 fuzz: Extend descriptor fuzz test (MarcoFalke)
  • #18519 fuzz: Extend script fuzz test (MarcoFalke)
  • #18521 fuzz: Add process_messages harness (MarcoFalke)
  • #18529 Add fuzzer version of randomized prevector test (sipa)
  • #18534 skip backwards compat tests if not compiled with wallet (fanquake)
  • #18540 wallet_bumpfee assertion fixup (jonatack)
  • #18543 Use one node to avoid a race due to missing sync in rpc_signrawtransaction (MarcoFalke)
  • #18561 Properly raise FailedToStartError when rpc shutdown before warmup finished (MarcoFalke)
  • #18562 ci: Run unit tests sequential once (MarcoFalke)
  • #18563 Fix unregister_all_during_call cleanup (ryanofsky)
  • #18566 Set -use_value_profile=1 when merging fuzz inputs (MarcoFalke)
  • #18757 Remove enumeration of expected deserialization exceptions in ProcessMessage(…) fuzzer (practicalswift)
  • #18878 Add test for conflicted wallet tx notifications (ryanofsky)
  • #18975 Remove const to work around compiler error on xenial (laanwj)
  • Documentation:
  • #16947 Doxygen-friendly script/descriptor.h comments (ch4ot1c)
  • #16983 Add detailed info about Bitcoin Core files (hebasto)
  • #16986 Doxygen-friendly CuckooCache comments (ch4ot1c)
  • #17022 move-only: Steps for “before major release branch-off” (MarcoFalke)
  • #17026 Update bips.md for default bech32 addresses in 0.20.0 (MarcoFalke)
  • #17081 Fix Makefile target in benchmarking.md (theStack)
  • #17102 Add missing indexes/blockfilter/basic to doc/files.md (MarcoFalke)
  • #17119 Fix broken bitcoin-cli examples (andrewtoth)
  • #17134 Add switch on enum example to developer notes (hebasto)
  • #17142 Update macdeploy README to include all files produced by make deploy (za-kk)
  • #17146 github: Add warning for bug reports (laanwj)
  • #17157 Added instructions for how to add an upsteam to forked repo (dannmat)
  • #17159 Add a note about backporting (carnhofdaki)
  • #17169 Correct function name in ReportHardwareRand() (fanquake)
  • #17177 Describe log files + consistent paths in test READMEs (fjahr)
  • #17239 Changed miniupnp links to https (sandakersmann)
  • #17281 Add developer note on c_str() (laanwj)
  • #17285 Bip70 removal follow-up (fjahr)
  • #17286 Fix help-debug -checkpoints (ariard)
  • #17309 update MSVC instructions to remove Qt OpenSSL linking (fanquake)
  • #17339 Add template for good first issues (michaelfolkson)
  • #17351 Fix some misspellings (RandyMcMillan)
  • #17353 Add ShellCheck to lint tests dependencies (hebasto)
  • #17370 Update doc/bips.md with recent changes in master (MarcoFalke)
  • #17393 Added regtest config for linearize script (gr0kchain)
  • #17411 Add some better examples for scripted diff (laanwj)
  • #17503 Remove bitness from bitcoin-qt help message and manpage (laanwj)
  • #17539 Update and improve Developer Notes (hebasto)
  • #17561 Changed MiniUPnPc link to https in dependencies.md (sandakersmann)
  • #17596 Change doxygen URL to doxygen.bitcoincore.org (laanwj)
  • #17598 Update release process with latest changes (MarcoFalke)
  • #17617 Unify unix epoch time descriptions (jonatack)
  • #17637 script: Add keyserver to verify-commits readme (emilengler)
  • #17648 Rename wallet-tool references to bitcoin-wallet (hel-o)
  • #17688 Add “ci” prefix to CONTRIBUTING.md (hebasto)
  • #17751 Use recommended shebang approach in documentation code block (hackerrdave)
  • #17752 Fix directory path for secp256k1 subtree in developer-notes (hackerrdave)
  • #17772 Mention PR Club in CONTRIBUTING.md (emilengler)
  • #17804 Misc RPC help fixes (MarcoFalke)
  • #17819 Developer notes guideline on RPCExamples addresses (jonatack)
  • #17825 Update dependencies.md (hebasto)
  • #17873 Add to Doxygen documentation guidelines (jonatack)
  • #17907 Fix improper Doxygen inline comments (Empact)
  • #17942 Improve fuzzing docs for macOS users (fjahr)
  • #17945 Fix doxygen errors (Empact)
  • #18025 Add missing supported rpcs to doc/descriptors.md (andrewtoth)
  • #18070 Add note about brew doctor (givanse)
  • #18125 Remove PPA note from release-process.md (fanquake)
  • #18170 Minor grammatical changes and flow improvements (travinkeith)
  • #18212 Add missing step in win deployment instructions (dangershony)
  • #18219 Add warning against wallet.dat re-use (corollari)
  • #18253 Correct spelling errors in comments (Empact)
  • #18278 interfaces: Describe and follow some code conventions (ryanofsky)
  • #18283 Explain rebase policy in CONTRIBUTING.md (MarcoFalke)
  • #18340 Mention MAKE=gmake workaround when building on a BSD (fanquake)
  • #18341 Replace remaining literal BTC with CURRENCY_UNIT (domob1812)
  • #18342 Add fuzzing quickstart guides for libFuzzer and afl-fuzz (practicalswift)
  • #18344 Fix nit in getblockchaininfo (stevenroose)
  • #18379 Comment fix merkle.cpp (4d55397500)
  • #18382 note the costs of fetching all pull requests (vasild)
  • #18391 Update init and reduce-traffic docs for -blocksonly (glowang)
  • #18464 Block-relay-only vs blocksonly (MarcoFalke)
  • #18486 Explain new test logging (MarcoFalke)
  • #18505 Update webchat URLs in README.md (SuriyaaKudoIsc)
  • #18513 Fix git add argument (HashUnlimited)
  • #18577 Correct scripted-diff example link (yahiheb)
  • #18589 Fix naming of macOS SDK and clarify version (achow101)
  • Miscellaneous:
  • #15600 lockedpool: When possible, use madvise to avoid including sensitive information in core dumps (luke-jr)
  • #15934 Merge settings one place instead of five places (ryanofsky)
  • #16115 On bitcoind startup, write config args to debug.log (LarryRuane)
  • #16117 util: Replace boost sleep with std sleep (MarcoFalke)
  • #16161 util: Fix compilation errors in support/lockedpool.cpp (jkczyz)
  • #16802 scripts: In linearize, search for next position of magic bytes rather than fail (takinbo)
  • #16889 Add some general std::vector utility functions (sipa)
  • #17049 contrib: Bump gitian descriptors for 0.20 (MarcoFalke)
  • #17052 scripts: Update copyright_header script to include additional files (GChuf)
  • #17059 util: Simplify path argument for cblocktreedb ctor (hebasto)
  • #17191 random: Remove call to RAND_screen() (Windows only) (fanquake)
  • #17192 util: Add check_nonfatal and use it in src/rpc (MarcoFalke)
  • #17218 Replace the LogPrint function with a macro (jkczyz)
  • #17266 util: Rename decodedumptime to parseiso8601datetime (elichai)
  • #17270 Feed environment data into RNG initializers (sipa)
  • #17282 contrib: Remove accounts from bash completion (fanquake)
  • #17293 Add assertion to randrange that input is not 0 (JeremyRubin)
  • #17325 log: Fix log message for -par=1 (hebasto)
  • #17329 linter: Strip trailing / in path for git-subtree-check (jnewbery)
  • #17336 scripts: Search for first block file for linearize-data with some block files pruned (Rjected)
  • #17361 scripts: Lint gitian descriptors with shellcheck (hebasto)
  • #17482 util: Disallow network-qualified command line options (ryanofsky)
  • #17507 random: mark RandAddPeriodic and SeedPeriodic as noexcept (fanquake)
  • #17527 Fix CPUID subleaf iteration (sipa)
  • #17604 util: Make schedulebatchpriority advisory only (fanquake)
  • #17650 util: Remove unwanted fields from bitcoin-cli -getinfo (malevolent)
  • #17671 script: Fixed wget call in gitian-build.py (willyko)
  • #17699 Make env data logging optional (sipa)
  • #17721 util: Don’t allow base58 decoding of non-base58 strings. add base58 tests (practicalswift)
  • #17750 util: Change getwarnings parameter to bool (jnewbery)
  • #17753 util: Don’t allow base32/64-decoding or parsemoney(…) on strings with embedded nul characters. add tests (practicalswift)
  • #17823 scripts: Read suspicious hosts from a file instead of hardcoding (sanjaykdragon)
  • #18162 util: Avoid potential uninitialized read in formatiso8601datetime(int64_t) by checking gmtime_s/gmtime_r return value (practicalswift)
  • #18167 Fix a violation of C++ standard rules where unions are used for type-punning (TheQuantumPhysicist)
  • #18225 util: Fail to parse empty string in parsemoney (MarcoFalke)
  • #18270 util: Fail to parse whitespace-only strings in parsemoney(…) (instead of parsing as zero) (practicalswift)
  • #18316 util: Helpexamplerpc formatting (jonatack)
  • #18357 Fix missing header in sync.h (promag)
  • #18412 script: Fix script_err_sig_pushonly error string (theStack)
  • #18416 util: Limit decimal range of numbers parsescript accepts (pierreN)
  • #18503 init: Replace URL_WEBSITE with PACKAGE_URL (MarcoFalke)
  • #18526 Remove PID file at the very end (hebasto)
  • #18553 Avoid non-trivial global constants in SHA-NI code (sipa)
  • #18665 Do not expose and consider -logthreadnames when it does not work (hebasto)

New in Bitcoin Core 0.19.1 (Dec 21, 2020)

  • Wallet:
  • #17643 Fix origfee return for bumpfee with feerate arg (instagibbs)
  • #16963 Fix unique_ptr usage in boost::signals2 (promag)
  • #17258 Fix issue with conflicted mempool tx in listsinceblock (adamjonas, mchrostowski)
  • #17924 Bug: IsUsedDestination shouldn’t use key id as script id for ScriptHash (instagibbs)
  • #17621 IsUsedDestination should count any known single-key address (instagibbs)
  • #17843 Reset reused transactions cache (fjahr)
  • RPC and other APIs:
  • #17687 cli: Fix fatal leveldb error when specifying -blockfilterindex=basic twice (brakmic)
  • #17728 require second argument only for scantxoutset start action (achow101)
  • #17445 zmq: Fix due to invalid argument and multiple notifiers (promag)
  • #17524 psbt: handle unspendable psbts (achow101)
  • #17156 psbt: check that various indexes and amounts are within bounds (achow101)
  • GUI:
  • #17427 Fix missing qRegisterMetaType for size_t (hebasto)
  • #17695 disable File->CreateWallet during startup (fanquake)
  • #17634 Fix comparison function signature (hebasto)
  • #18062 Fix unintialized WalletView::progressDialog (promag)
  • Tests and QA:
  • #17416 Appveyor improvement - text file for vcpkg package list (sipsorcery)
  • #17488 fix “bitcoind already running” warnings on macOS (fanquake)
  • #17980 add missing #include to fix compiler errors (kallewoof)
  • Platform support:
  • #17736 Update msvc build for Visual Studio 2019 v16.4 (sipsorcery)
  • #17364 Updates to appveyor config for VS2019 and Qt5.9.8 + msvc project fixes (sipsorcery)
  • #17887 bug-fix macos: give free bytes to F_PREALLOCATE (kallewoof)
  • Miscellaneous:
  • #17897 init: Stop indexes on shutdown after ChainStateFlushed callback (jimpo)
  • #17450 util: Add missing headers to util/fees.cpp (hebasto)
  • #17654 Unbreak build with Boost 1.72.0 (jbeich)
  • #17857 scripts: Fix symbol-check & security-check argument passing (fanquake)
  • #17762 Log to net category for exceptions in ProcessMessages (laanwj)
  • #18100 Update univalue subtree (MarcoFalke)

New in Bitcoin Core 0.19.0.1 (Dec 21, 2020)

  • Consensus:
  • #16128 Delete error-prone CScript constructor only used with FindAndDelete (instagibbs)
  • #16060 Bury bip9 deployments (jnewbery)
  • Policy:
  • #15557 Enhance bumpfee to include inputs when targeting a feerate (instagibbs)
  • #15846 Make sending to future native witness outputs standard (sipa)
  • Block and transaction handling:
  • #15632 Remove ResendWalletTransactions from the Validation Interface (jnewbery)
  • #14121 Index for BIP 157 block filters (jimpo)
  • #15141 Rewrite DoS interface between validation and net_processing (sdaftuar)
  • #15880 utils and libraries: Replace deprecated Boost Filesystem functions (hebasto)
  • #15971 validation: Add compile-time checking for negative locking requirement in LimitValidationInterfaceQueue (practicalswift)
  • #15999 init: Remove dead code in LoadChainTip (MarcoFalke)
  • #16015 validation: Hold cs_main when reading chainActive in RewindBlockIndex (practicalswift)
  • #16056 remove unused magic number from consistency check (instagibbs)
  • #16171 Remove -mempoolreplacement to prevent needless block prop slowness (TheBlueMatt)
  • #15894 Remove duplicated “Error: “ prefix in logs (hebasto)
  • #14193 validation: Add missing mempool locks (MarcoFalke)
  • #15681 Allow one extra single-ancestor transaction per package (TheBlueMatt)
  • #15305 [validation] Crash if disconnecting a block fails (sdaftuar)
  • #16471 log correct messages when CPFP fails (jnewbery)
  • #16433 txmempool: Remove unused default value MemPoolRemovalReason::UNKNOWN (MarcoFalke)
  • #13868 Remove unused fScriptChecks parameter from CheckInputs (Empact)
  • #16421 Conservatively accept RBF bumps bumping one tx at the package limits (TheBlueMatt)
  • #16854 Prevent UpdateTip log message from being broken up (stevenroose)
  • #16956 validation: Make GetWitnessCommitmentIndex public (MarcoFalke)
  • #16713 Ignore old versionbit activations to avoid ‘unknown softforks’ warning (jnewbery)
  • #17002 chainparams: Bump assumed chain params (MarcoFalke)
  • #16849 Fix block index inconsistency in InvalidateBlock() (sdaftuar)
  • P2P protocol and network code:
  • #15597 Generate log entry when blocks messages are received unexpectedly (pstratem)
  • #15654 Remove unused unsanitized user agent string CNode::strSubVer (MarcoFalke)
  • #15689 netaddress: Update CNetAddr for ORCHIDv2 (dongcarl)
  • #15834 Fix transaction relay bugs introduced in #14897 and expire transactions from peer in-flight map (sdaftuar)
  • #15651 torcontrol: Use the default/standard network port for Tor hidden services, even if the internal port is set differently (luke-jr)
  • #16188 Document what happens to getdata of unknown type (MarcoFalke)
  • #15649 Add ChaCha20Poly1305@Bitcoin AEAD (jonasschnelli)
  • #16152 Disable bloom filtering by default (TheBlueMatt)
  • #15993 Drop support of the insecure miniUPnPc versions (hebasto)
  • #16197 Use mockable time for tx download (MarcoFalke)
  • #16248 Make whitebind/whitelist permissions more flexible (NicolasDorier)
  • #16618 [Fix] Allow connection of a noban banned peer (NicolasDorier)
  • #16631 Restore default whitelistrelay to true (NicolasDorier)
  • #15759 Add 2 outbound block-relay-only connections (sdaftuar)
  • #15558 Don’t query all DNS seeds at once (sipa)
  • #16999 0.19 seeds update (laanwj)
  • Wallet:
  • #15288 Remove wallet -> node global function calls (ryanofsky)
  • #15491 Improve log output for errors during load (gwillen)
  • #13541 wallet/rpc: sendrawtransaction maxfeerate (kallewoof)
  • #15680 Remove resendwallettransactions RPC method (jnewbery)
  • #15508 Refactor analyzepsbt for use outside RPC code (gwillen)
  • #15747 Remove plethora of Get*Balance (MarcoFalke)
  • #15728 Refactor relay transactions (jnewbery)
  • #15639 bitcoin-wallet tool: Drop libbitcoin_server.a dependency (ryanofsky)
  • #15853 Remove unused import checkpoints.h (MarcoFalke)
  • #15780 add cachable amounts for caching credit/debit values (kallewoof)
  • #15778 Move maxtxfee from node to wallet (jnewbery)
  • #15901 log on rescan completion (andrewtoth)
  • #15917 Avoid logging no_such_file_or_directory error (promag)
  • #15452 Replace CScriptID and CKeyID in CTxDestination with dedicated types (instagibbs)
  • #15870 Only fail rescan when blocks have actually been pruned (MarcoFalke)
  • #15006 Add option to create an encrypted wallet (achow101)
  • #16001 Give WalletModel::UnlockContext move semantics (sipa)
  • #15741 Batch write imported stuff in importmulti (achow101)
  • #16144 do not encrypt wallets with disabled private keys (mrwhythat)
  • #15024 Allow specific private keys to be derived from descriptor (meshcollider)
  • #13756 “avoid_reuse” wallet flag for improved privacy (kallewoof)
  • #16226 Move ismine to the wallet module (achow101)
  • #16239 wallet/rpc: follow-up clean-up/fixes to avoid_reuse (kallewoof)
  • #16286 refactoring: wallet: Fix GCC 7.4.0 warning (hebasto)
  • #16257 abort when attempting to fund a transaction above -maxtxfee (Sjors)
  • #16237 Have the wallet give out destinations instead of keys (achow101)
  • #16322 Fix -maxtxfee check by moving it to CWallet::CreateTransaction (promag)
  • #16361 Remove redundant pre-TopUpKeypool check (instagibbs)
  • #16244 Move wallet creation out of the createwallet rpc into its own function (achow101)
  • #16227 Refactor CWallet’s inheritance chain (achow101)
  • #16208 Consume ReserveDestination on successful CreateTransaction (instagibbs)
  • #16301 Use CWallet::Import* functions in all import* RPCs (achow101)
  • #16402 Remove wallet settings from chainparams (MarcoFalke)
  • #16415 Get rid of PendingWalletTx class (ryanofsky)
  • #15588 Log the actual wallet file version and no longer publicly expose the “version” record (achow101)
  • #16399 Improve wallet creation (fjahr)
  • #16475 Enumerate walletdb keys (MarcoFalke)
  • #15709 Do not add “setting” key as unknown (Bushstar)
  • #16451 Remove CMerkleTx (jnewbery)
  • #15906 Move min_depth and max_depth to coin control (amitiuttarwar)
  • #16502 Drop unused OldKey (promag)
  • #16394 Allow createwallet to take empty passwords to make unencrypted wallets (achow101)
  • #15911 Use wallet RBF default for walletcreatefundedpsbt (Sjors)
  • #16503 Remove p2pEnabled from Chain interface (ariard)
  • #16557 restore coinbase and confirmed/conflicted checks in SubmitMemoryPoolAndRelay() (jnewbery)
  • #14934 Descriptor expansion cache clarifications (Sjors)
  • #16383 rpcwallet: default include_watchonly to true for watchonly wallets (jb55)
  • #16542 Return more specific errors about invalid descriptors (achow101)
  • #16572 Fix Char as Bool in Wallet (JeremyRubin)
  • #16753 extract PubKey from P2PK script with Solver (theStack)
  • #16716 Use wallet name instead of pointer on unload/release (promag)
  • #16185 gettransaction: add an argument to decode the transaction (darosior)
  • #16745 Translate all initErrors in CreateWalletFromFile (MarcoFalke)
  • #16792 Assert that the HRP is lowercase in Bech32::Encode (meshcollider)
  • #16624 encapsulate transactions state (ariard)
  • #16830 Cleanup walletinitinterface.h (hebasto)
  • #16796 Fix segfault in CreateWalletFromFile (MarcoFalke)
  • #16866 Rename ‘decode’ argument in gettransaction method to ‘verbose’ (jnewbery)
  • #16727 Explicit feerate for bumpfee (instagibbs)
  • #16609 descriptor: fix missed m_script_arg arg renaming in #14934 (fanquake)
  • RPC and other APIs:
  • #15492 remove deprecated generate method (Sjors)
  • #15566 cli: Replace testnet with chain and return network name as per bip70 (fanquake)
  • #15564 cli: Remove duplicate wallet fields from -getinfo (fanquake)
  • #15642 Remove deprecated rpc warnings (jnewbery)
  • #15637 Rename size to vsize in mempool related calls (fanquake)
  • #15620 Uncouple non-wallet rpcs from maxTxFee global (MarcoFalke)
  • #15616 Clarify decodescript RPCResult doc (MarcoFalke)
  • #15669 Fix help text for signtransactionwithXXX (torkelrogstad)
  • #15596 Ignore sendmany::minconf as dummy value (MarcoFalke)
  • #15755 remove unused var in rawtransaction.cpp (Bushstar)
  • #15746 RPCHelpMan: Always name dictionary keys (MarcoFalke)
  • #15748 remove dead mining code (jnewbery)
  • #15751 Speed up deriveaddresses for large ranges (sipa)
  • #15770 Validate maxfeerate with AmountFromValue (promag)
  • #15474 rest/rpc: Make mempoolinfo atomic (promag)
  • #15463 Speedup getaddressesbylabel (promag)
  • #15784 Remove dependency on interfaces::Chain in SignTransaction (ariard)
  • #15323 Expose g_is_mempool_loaded via getmempoolinfo (Empact)
  • #15932 Serialize in getblock without cs_main (MarcoFalke)
  • #15930 Add balances RPC (MarcoFalke)
  • #15730 Show scanning details in getwalletinfo (promag)
  • #14802 faster getblockstats using BlockUndo data (FelixWeis)
  • #14984 Speedup getrawmempool when verbose=true (promag)
  • #16071 Hint for importmulti in help output of importpubkey and importaddress (kristapsk)
  • #16063 Mention getwalletinfo where a rescan is triggered (promag)
  • #16024 deriveaddresses: Correction of descriptor checksum in RPC example (ccapo)
  • #16217 getrawtransaction: inform about blockhash argument when lookup fails (darosior)
  • #15427 Add support for descriptors to utxoupdatepsbt (sipa)
  • #16262 Allow shutdown while in generateblocks (pstratem)
  • #15483 Adding a ‘logpath’ entry to getrpcinfo (darosior)
  • #16325 Clarify that block count means height excl genesis (MarcoFalke)
  • #16326 add new utxoupdatepsbt arguments to the CRPCCommand and CPRCCvertParam tables (jnewbery)
  • #16332 Add logpath description for getrpcinfo (instagibbs)
  • #16240 JSONRPCRequest-aware RPCHelpMan (kallewoof)
  • #15996 Deprecate totalfee argument in bumpfee (instagibbs)
  • #16467 sendrawtransaction help privacy note (jonatack)
  • #16596 Fix getblocktemplate CLI example (emilengler)
  • #15986 Add checksum to getdescriptorinfo (sipa)
  • #16647 add weight to getmempoolentry output (fanquake)
  • #16695 Add window final block height to getchaintxstats (leto)
  • #16798 Refactor rawtransaction_util’s SignTransaction to separate prevtx parsing (achow101)
  • #16285 Improve scantxoutset response and help message (promag)
  • #16725 Don’t show addresses or P2PK in decoderawtransaction (NicolasDorier)
  • #16787 Human readable network services (darosior)
  • #16251 Improve signrawtransaction error reporting (ajtowns)
  • #16873 fix regression in gettransaction (jonatack)
  • #16512 Shuffle inputs and outputs after joining psbts (achow101)
  • #16521 Use the default maxfeerate value as BTC/kB (Remagpie)
  • #16817 Fix casing in getblockchaininfo to be inline with other fields (dangershony)
  • #17131 fix -rpcclienttimeout 0 option (fjahr)
  • #17249 Add missing deque include to fix build (jbeich)
  • #17368 cli: fix -getinfo output when compiled with no wallet (fanquake)
  • GUI:
  • #15464 Drop unused return values in WalletFrame (promag)
  • #15614 Defer removeAndDeleteWallet when no modal widget is active (promag)
  • #15711 Generate bech32 addresses by default (MarcoFalke)
  • #15829 update request payment button text and tab description (fanquake)
  • #15874 Resolve the qt/guiutil qt/optionsmodel CD (251Labs)
  • #15371 Uppercase bech32 addresses in qr codes (benthecarman)
  • #15928 Move QRImageWidget to its own file-pair (luke-jr)
  • #16113 move coin control “OK” to the right hand side of the dialog (fanquake)
  • #16090 Add vertical spacer to peer detail widget (JosuGZ)
  • #15886 qt, wallet: Revamp SendConfirmationDialog (hebasto)
  • #16263 Use qInfo() if no error occurs (hebasto)
  • #16153 Add antialiasing to traffic graph widget (JosuGZ)
  • #16350 Remove unused guard (hebasto)
  • #16106 Sort wallets in open wallet menu (promag)
  • #16291 Stop translating PACKAGE_NAME (MarcoFalke)
  • #16380 Remove unused bits from the service flags enum (MarcoFalke)
  • #16379 Fix autostart filenames on Linux for testnet/regtest (hebasto)
  • #16366 init: Use InitError for all errors in bitcoind/qt (MarcoFalke)
  • #16436 Do not create payment server if -disablewallet option provided (hebasto)
  • #16514 Remove unused RPCConsole::tabFocus (promag)
  • #16497 Generate bech32 addresses by default (take 2, fixup) (MarcoFalke)
  • #16349 Remove redundant WalletController::addWallet slot (hebasto)
  • #16578 Do not pass in command line arguments to QApplication (achow101)
  • #16612 Remove menu icons (laanwj)
  • #16677 remove unused PlatformStyle::TextColorIcon (fanquake)
  • #16694 Ensure transaction send error is always visible (fanquake)
  • #14879 Add warning messages to the debug window (hebasto)
  • #16708 Replace obsolete functions of QSslSocket (hebasto)
  • #16701 Replace functions deprecated in Qt 5.13 (hebasto)
  • #16706 Replace deprecated QSignalMapper by lambda expressions (hebasto)
  • #16707 Remove obsolete QModelIndex::child() (hebasto)
  • #16758 Replace QFontMetrics::width() with TextWidth() (hebasto)
  • #16760 Change uninstall icon on Windows (GChuf)
  • #16720 Replace objc_msgSend() function calls with the native Objective-C syntax (hebasto)
  • #16788 Update transifex slug for 0.19 (laanwj)
  • #15450 Create wallet menu option (achow101)
  • #16735 Remove unused menu items for Windows and Linux (GChuf)
  • #16826 Do additional character escaping for wallet names and address labels (achow101)
  • #15529 Add Qt programs to msvc build (updated, no code changes) (sipsorcery)
  • #16714 add prune to intro screen with smart default (Sjors)
  • #16858 advise users not to switch wallets when opening a BIP70 URI (jameshilliard)
  • #16822 Create wallet menu option follow-ups (jonatack)
  • #16882 Re-generate translations before 0.19.0 (MarcoFalke)
  • #16928 Rename address checkbox back to bech32 (MarcoFalke)
  • #16837 Fix {C{,XX},LD}FLAGS pickup (dongcarl)
  • #16971 Change default size of intro frame (emilengler)
  • #16988 Periodic translations update (laanwj)
  • #16852 When BIP70 is disabled, get PaymentRequest merchant using string search (achow101)
  • #16952 make sure to update the UI when deleting a transaction (jonasschnelli)
  • #17031 Prevent processing duplicate payment requests (promag)
  • #17135 Make polling in ClientModel asynchronous (promag)
  • #17120 Fix start timer from non QThread (promag)
  • #17257 disable font antialiasing for QR image address (fanquake)
  • Build system:
  • #14954 Require python 3.5 (MarcoFalke)
  • #15580 native_protobuf: avoid system zlib (dongcarl)
  • #15601 Switch to python3 (take 3) (MarcoFalke)
  • #15581 Make less assumptions about build env (dongcarl)
  • #14853 latest RapidCheck (fanquake)
  • #15446 Improve depends debuggability (dongcarl)
  • #13788 Fix –disable-asm for newer assembly checks/code (luke-jr)
  • #12051 add missing debian contrib file to tarball (puchu)
  • #15919 Remove unused OpenSSL includes to make it more clear where OpenSSL is used (practicalswift)
  • #15978 .gitignore: Don’t ignore depends patches (dongcarl)
  • #15939 gitian: Remove windows 32 bit build (MarcoFalke)
  • #15239 scripts and tools: Move non-linux build source tarballs to “bitcoin-binaries/version” directory (hebasto)
  • #14047 Add HKDF_HMAC256_L32 and method to negate a private key (jonasschnelli)
  • #16051 add patch to common dependencies (fanquake)
  • #16049 switch to secure download of all dependencies (Kemu)
  • #16059 configure: Fix thread_local detection (dongcarl)
  • #16089 add ability to skip building zeromq (fanquake)
  • #15844 Purge libtool archives (dongcarl)
  • #15461 update to Boost 1.70 (Sjors)
  • #16141 remove GZIP export from gitian descriptors (fanquake)
  • #16235 Cleaned up and consolidated msbuild files (no code changes) (sipsorcery)
  • #16246 MSVC: Fix error in debug mode (Fix #16245) (NicolasDorier)
  • #16183 xtrans: Configure flags cleanup (dongcarl)
  • #16258 [MSVC]: Create the config.ini as part of bitcoind build (NicolasDorier)
  • #16271 remove -Wall from rapidcheck build flags (fanquake)
  • #16309 [MSVC] allow user level project customization (NicolasDorier)
  • #16308 [MSVC] Copy build output to src/ automatically after build (NicolasDorier)
  • #15457 Check std::system for -[alert block wallet]notify (Sjors)
  • #16344 use #if HAVE_SYSTEM instead of defined(HAVE_SYSTEM) (Sjors)
  • #16352 prune dbus from depends (fanquake)
  • #16270 expat 2.2.7 (fanquake)
  • #16408 Prune X packages (dongcarl)
  • #16386 disable unused Qt features (fanquake)
  • #16424 Treat -Wswitch as error when –enable-werror (MarcoFalke)
  • #16441 remove qt libjpeg check from bitcoin_qt.m4 (fanquake)
  • #16434 Specify AM_CPPFLAGS for ZMQ (domob1812)
  • #16534 add Qt Creator Makefile.am.user to .gitignore (Bushstar)
  • #16573 disable building libsecp256k1 benchmarks (fanquake)
  • #16533 disable libxcb extensions (fanquake)
  • #16589 Remove unused src/obj-test folder (MarcoFalke)
  • #16435 autoconf: Sane --enable-debug defaults (dongcarl)
  • #16622 echo property tests status during build (jonatack)
  • #16611 Remove src/obj directory from repository (laanwj)
  • #16371 ignore macOS make deploy artefacts & add them to clean-local (fanquake)
  • #16654 build: update RapidCheck Makefile (jonatack)
  • #16370 cleanup package configure flags (fanquake)
  • #16746 msbuild: Ignore linker warning (sipsorcery)
  • #16750 msbuild: adds bench_bitcoin to auto generated project files (sipsorcery)
  • #16810 guix: Remove ssp spec file hack (dongcarl)
  • #16477 skip deploying plugins we dont use in macdeployqtplus (fanquake)
  • #16413 Bump QT to LTS release 5.9.8 (THETCR)
  • #15584 disable BIP70 support by default (fanquake)
  • #16871 make building protobuf optional in depends (fanquake)
  • #16879 remove redundant sed patching (fanquake)
  • #16809 zlib: Move toolchain options to configure (dongcarl)
  • #15146 Solve SmartOS FD_ZERO build issue (Empact)
  • #16870 update boost macros to latest upstream for improved error reporting (fanquake)
  • #16982 Factor out qt translations from build system (laanwj)
  • #16926 Add OpenSSL termios fix for musl libc (nmarley)
  • #16927 Refresh ZeroMQ 4.3.1 patch (nmarley)
  • #17005 Qt version appears only if GUI is being built (ch4ot1c)
  • #16468 Exclude depends/Makefile in .gitignore (promag)
  • Tests and QA:
  • #15296 Add script checking for deterministic line coverage in unit tests (practicalswift)
  • #15338 ci: Build and run tests once on freebsd (MarcoFalke)
  • #15479 Add .style.yapf (MarcoFalke)
  • #15534 lint-format-strings: open files sequentially (fix for OS X) (gwillen)
  • #15504 fuzz: Link BasicTestingSetup (shared with unit tests) (MarcoFalke)
  • #15473 bench: Benchmark mempooltojson (MarcoFalke)
  • #15466 Print remaining jobs in test_runner.py (stevenroose)
  • #15631 mininode: Clearer error message on invalid magic bytes (MarcoFalke)
  • #15255 Remove travis_wait from lint script (gkrizek)
  • #15686 make pruning test faster (jnewbery)
  • #15533 .style.yapf: Set column_limit=160 (MarcoFalke)
  • #15660 Overhaul p2p_compactblocks.py (sdaftuar)
  • #15495 Add regtests for HTTP status codes (domob1812)
  • #15772 Properly log named args in authproxy (MarcoFalke)
  • #15771 Prevent concurrency issues reading .cookie file (promag)
  • #15693 travis: Switch to ubuntu keyserver to avoid timeouts (MarcoFalke)
  • #15629 init: Throw error when network specific config is ignored (MarcoFalke)
  • #15773 Add BitcoinTestFramework::sync_* methods (MarcoFalke)
  • #15797 travis: Bump second timeout to 33 minutes, add rationale (MarcoFalke)
  • #15788 Unify testing setups for fuzz, bench, and unit tests (MarcoFalke)
  • #15352 Reduce noise level in test_bitcoin output (practicalswift)
  • #15779 Add wallet_balance benchmark (MarcoFalke)
  • #15843 fix outdated include in blockfilter_index_tests (jamesob)
  • #15866 Add missing syncwithvalidationinterfacequeue to wallet_import_rescan (MarcoFalke)
  • #15697 Make swap_magic_bytes in p2p_invalid_messages atomic (MarcoFalke)
  • #15895 Avoid re-reading config.ini unnecessarily (luke-jr)
  • #15896 feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME in messages rather than hardcoding Bitcoin Core (luke-jr)
  • #15897 QA/mininode: Send all headers upfront in send_blocks_and_test to avoid sending an unconnected one (luke-jr)
  • #15696 test_runner: Move feature_pruning to base tests (MarcoFalke)
  • #15869 Add settings merge test to prevent regresssions (ryanofsky)
  • #15758 Add further tests to wallet_balance (MarcoFalke)
  • #15841 combine_logs: append node stderr and stdout if it exists (MarcoFalke)
  • #15949 test_runner: Move pruning back to extended (MarcoFalke)
  • #15927 log thread names by default in functional tests (jnewbery)
  • #15664 change default Python block serialization to witness (instagibbs)
  • #15988 Add test for ArgsManager::GetChainName (ryanofsky)
  • #15963 Make random seed logged and settable (jnewbery)
  • #15943 Fail if RPC has been added without tests (MarcoFalke)
  • #16036 travis: Run all lint scripts even if one fails (scravy)
  • #13555 parameterize adjustment period in versionbits_computeblockversion (JBaczuk)
  • #16079 wallet_balance.py: Prevent edge cases (stevenroose)
  • #16078 replace tx hash with txid in rawtransaction test (LongShao007)
  • #16042 Bump MAX_NODES to 12 (MarcoFalke)
  • #16124 Limit Python linting to files in the repo (practicalswift)
  • #16143 Mark unit test blockfilter_index_initial_sync as non-deterministic (practicalswift)
  • #16214 travis: Fix caching issues (MarcoFalke)
  • #15982 Make msg_block a witness block (MarcoFalke)
  • #16225 Make coins_tests/updatecoins_simulation_test deterministic (practicalswift)
  • #16236 fuzz: Log output even if fuzzer failed (MarcoFalke)
  • #15520 cirrus: Run extended test feature_pruning (MarcoFalke)
  • #16234 Add test for unknown args (MarcoFalke)
  • #16207 stop generating lcov coverage when functional tests fail (asood123)
  • #16252 Log to debug.log in all unit tests (MarcoFalke)
  • #16289 Add missing ECC_Stop() in GUI rpcnestedtests.cpp (jonasschnelli)
  • #16278 Remove unused includes (practicalswift)
  • #16302 Add missing syncwithvalidationinterfacequeue to wallet_balance test (MarcoFalke)
  • #15538 wallet_bumpfee.py: Make sure coin selection produces change (instagibbs)
  • #16294 Create at most one testing setup (MarcoFalke)
  • #16299 bench: Move generated data to a dedicated translation unit (promag)
  • #16329 Add tests for getblockchaininfo.softforks (MarcoFalke)
  • #15687 tool wallet test coverage for unexpected writes to wallet (jonatack)
  • #16267 bench: Benchmark blocktojson (fanatid)
  • #14505 Add linter to make sure single parameter constructors are marked explicit (practicalswift)
  • #16338 Disable other targets when enable-fuzz is set (qmma70)
  • #16334 rpc_users: Also test rpcauth.py with password (dongcarl)
  • #15282 Replace hard-coded hex tx with class in test framework (stevenroose)
  • #16390 Add –filter option to test_runner.py (promag)
  • #15891 Require standard txs in regtest by default (MarcoFalke)
  • #16374 Enable passing wildcard test names to test runner from root (jonatack)
  • #16420 Fix race condition in wallet_encryption test (jonasschnelli)
  • #16422 remove redundant setup in addrman_tests (zenosage)
  • #16438 travis: Print memory and number of cpus (MarcoFalke)
  • #16445 Skip flaky p2p_invalid_messages test on macOS (fjahr)
  • #16459 Fix race condition in example_test.py (sdaftuar)
  • #16464 Ensure we don’t generate a too-big block in p2sh sigops test (sdaftuar)
  • #16491 fix deprecated log.warn in feature_dbcrash test (jonatack)
  • #15134 Switch one of the Travis jobs to an unsigned char environment (-funsigned-char) (practicalswift)
  • #16505 Changes verbosity of msbuild from quiet to normal in the appveyor script (sipsorcery)
  • #16293 Make test cases separate functions (MarcoFalke)
  • #16470 Fail early on disconnect in mininode.wait_for_* (MarcoFalke)
  • #16277 Suppress output in test_bitcoin for expected errors (gertjaap)
  • #16493 Fix test failures (MarcoFalke)
  • #16538 Add missing sync_blocks to feature_pruning (MarcoFalke)
  • #16509 Adapt test framework for chains other than “regtest” (MarcoFalke)
  • #16363 Add test for BIP30 duplicate tx (MarcoFalke)
  • #16535 Explain why -whitelist is used in feature_fee_estimation (MarcoFalke)
  • #16554 only include and use OpenSSL where it’s actually needed (BIP70) (fanquake)
  • #16598 Remove confusing hash256 function in util (elichai)
  • #16595 travis: Use extended 90 minute timeout when available (MarcoFalke)
  • #16563 Add unit test for AddTimeData (mzumsande)
  • #16561 Use colors and dots in test_runner.py output only if standard output is a terminal (practicalswift)
  • #16465 Test p2sh-witness and bech32 in wallet_import_rescan (MarcoFalke)
  • #16582 Rework ci (Use travis only as fallback env) (MarcoFalke)
  • #16633 travis: Fix test_runner.py timeouts (MarcoFalke)
  • #16646 Run tests with UPnP disabled (fanquake)
  • #16623 ci: Add environment files for all settings (MarcoFalke)
  • #16656 fix rpc_setban.py race (jonasschnelli)
  • #16570 Make descriptor tests deterministic (davereikher)
  • #16404 Test ZMQ notification after chain reorg (promag)
  • #16726 Avoid common Python default parameter gotcha when mutable dict/list:s are used as default parameter values (practicalswift)
  • #16739 ci: Pass down $makejobs to test_runner.py, other improvements (MarcoFalke)
  • #16767 Check for codespell in lint-spelling.sh (kristapsk)
  • #16768 Make lint-includes.sh work from any directory (kristapsk)
  • #15257 Scripts and tools: Bump flake8 to 3.7.8 (Empact)
  • #16804 Remove unused try-block in assert_debug_log (MarcoFalke)
  • #16850 servicesnames field in getpeerinfo and getnetworkinfo (darosior)
  • #16551 Test that low difficulty chain fork is rejected (MarcoFalke)
  • #16737 Establish only one connection between nodes in rpc_invalidateblock (MarcoFalke)
  • #16845 Add notes on how to generate data/wallets/high_minversion (MarcoFalke)
  • #16888 Bump timeouts in slow running tests (MarcoFalke)
  • #16864 Add python bech32 impl round-trip test (instagibbs)
  • #16865 add some unit tests for merkle.cpp (soroosh-sdi)
  • #14696 Add explicit references to related CVE’s in p2p_invalid_block test (lucash-dev)
  • #16907 lint: Add DisabledOpcodeTemplates to whitelist (MarcoFalke)
  • #16898 Remove connect_nodes_bi (MarcoFalke)
  • #16917 Move common function assert_approx() into util.py (fridokus)
  • #16921 Add information on how to add Vulture suppressions (practicalswift)
  • #16920 Fix extra_args in wallet_import_rescan.py (MarcoFalke)
  • #16918 Make PORT_MIN in test runner configurable (MarcoFalke)
  • #16941 travis: Disable feature_block in tsan run due to oom (MarcoFalke)
  • #16929 follow-up to rpc: default maxfeerate value as BTC/kB (jonatack)
  • #16959 ci: Set $host before setting fallback values (MarcoFalke)
  • #16961 Remove python dead code linter (laanwj)
  • #16931 add unittests for CheckProofOfWork (soroosh-sdi)
  • #16991 Fix service flag comparison check in rpc_net test (luke-jr) (laanwj)
  • #16987 Correct docstring param name (jbampton)
  • #17015 Explain QT_QPA_PLATFORM for gui tests (MarcoFalke)
  • #17006 Enable UBSan for Travis fuzzing job (practicalswift)
  • #17086 Fix fs_tests for unknown locales (carnhofdaki)
  • #15903 appveyor: Write @PACKAGE_NAME@ to config (MarcoFalke)
  • #16742 test: add executable flag for wallet_watchonly.py (theStack)
  • #16740 qa: Relax so that the subscriber is ready before publishing zmq messages (#16740)
  • Miscellaneous:
  • #15335 Fix lack of warning of unrecognized section names (AkioNak)
  • #15528 contrib: Bump gitian descriptors for 0.19 (MarcoFalke)
  • #15609 scripts and tools: Set ‘distro’ explicitly (hebasto)
  • #15519 Add Poly1305 implementation (jonasschnelli)
  • #15643 contrib: Gh-merge: include acks in merge commit (MarcoFalke)
  • #15838 scripts and tools: Fetch missing review comments in github-merge.py (nkostoulas)
  • #15920 lint: Check that all wallet args are hidden (MarcoFalke)
  • #15849 Thread names in logs and deadlock debug tools (jamesob)
  • #15650 Handle the result of posix_fallocate system call (lucayepa)
  • #15766 scripts and tools: Upgrade gitian image before signing (hebasto)
  • #15512 Add ChaCha20 encryption option (XOR) (jonasschnelli)
  • #15968 Fix portability issue with pthreads (grim-trigger)
  • #15970 Utils and libraries: fix static_assert for macro HAVE_THREAD_LOCAL (orientye)
  • #15863 scripts and tools: Ensure repos are up-to-date in gitian-build.py (hebasto)
  • #15224 Add RNG strengthening (10ms once every minute) (sipa)
  • #15840 Contrib scripts: Filter IPv6 by ASN (abitfan)
  • #13998 Scripts and tools: gitian-build.py improvements and corrections (hebasto)
  • #15236 scripts and tools: Make –setup command independent (hebasto)
  • #16114 contrib: Add curl as a required program in gitian-build.py (fanquake)
  • #16046 util: Add type safe gettime (MarcoFalke)
  • #15703 Update secp256k1 subtree to latest upstream (sipa)
  • #16086 contrib: Use newer config.guess & config.sub in install_db4.sh (fanquake)
  • #16130 Don’t GPG sign intermediate commits with github-merge tool (stevenroose)
  • #16162 scripts: Add key for michael ford (fanquake) to trusted keys list (fanquake)
  • #16201 devtools: Always use unabbreviated commit IDs in github-merge.py (laanwj)
  • #16112 util: Log early messages (MarcoFalke)
  • #16223 devtools: Fetch and display ACKs at sign-off time in github-merge (laanwj)
  • #16300 util: Explain why the path is cached (MarcoFalke)
  • #16314 scripts and tools: Update copyright_header.py script (hebasto)
  • #16158 Fix logic of memory_cleanse() on MSVC and clean up docs (real-or-random)
  • #14734 fix an undefined behavior in uint::SetHex (kazcw)
  • #16327 scripts and tools: Update ShellCheck linter (hebasto)
  • #15277 contrib: Enable building in guix containers (dongcarl)
  • #16362 Add bilingual_str type (hebasto)
  • #16481 logs: add missing space (harding)
  • #16581 sipsorcery gitian key (sipsorcery)
  • #16566 util: Refactor upper/lowercase functions (kallewoof)
  • #16620 util: Move resolveerrmsg to util/error (MarcoFalke)
  • #16625 scripts: Remove github-merge.py (fanquake)
  • #15864 Fix datadir handling (hebasto)
  • #16670 util: Add join helper to join a list of strings (MarcoFalke)
  • #16665 scripts: Move update-translations.py to maintainer-tools repo (fanquake)
  • #16730 Support serialization of std::vector (sipa)
  • #16556 Fix systemd service file configuration directory setup (setpill)
  • #15615 Add log output during initial header sync (jonasschnelli)
  • #16774 Avoid unnecessary “Synchronizing blockheaders” log messages (jonasschnelli)
  • #16489 log: harmonize bitcoind logging (jonatack)
  • #16577 util: Cbufferedfile fixes and unit test (LarryRuane)
  • #16984 util: Make thread names shorter (hebasto)
  • #17038 Don’t rename main thread at process level (laanwj)
  • #17184 util: Filter out macos process serial number (hebasto)
  • #17095 util: Filter control characters out of log messages (laanwj)
  • #17085 init: Change fallback locale to C.UTF-8 (laanwj)
  • #16957 9% less memory: make SaltedOutpointHasher noexcept (martinus)
  • #17449 fix uninitialized variable nMinerConfirmationWindow (bitcoinVBR)
  • Documentation:
  • #15514 Update Transifex links (fanquake)
  • #15513 add “sections” info to example bitcoin.conf (fanquake)
  • #15530 Move wallet lock annotations to header (MarcoFalke)
  • #15562 remove duplicate clone step in build-windows.md (fanquake)
  • #15565 remove release note fragments (fanquake)
  • #15444 Additional productivity tips (Sjors)
  • #15577 Enable TLS in link to chris.beams.io (JeremyRand)
  • #15604 release note for disabling reject messages by default (jnewbery)
  • #15611 Add Gitian key for droark (droark)
  • #15626 Update ACK description in CONTRIBUTING.md (jonatack)
  • #15603 Add more tips to productivity.md (gwillen)
  • #15683 Comment for seemingly duplicate LIBBITCOIN_SERVER (Bushstar)
  • #15685 rpc-mining: Clarify error messages (MarcoFalke)
  • #15760 Clarify sendrawtransaction::maxfeerate==0 help (MarcoFalke)
  • #15659 fix findFork comment (r8921039)
  • #15718 Improve netaddress comments (dongcarl)
  • #15833 remove out-of-date comment on pay-to-witness support (r8921039)
  • #15821 Remove upgrade note in release notes from EOL versions (MarcoFalke)
  • #15267 explain AcceptToMemoryPoolWorker’s coins_to_uncache (jamesob)
  • #15887 Align code example style with clang-format (hebasto)
  • #15877 Fix -dustrelayfee= argument docs grammar (keepkeyjon)
  • #15908 Align MSVC build options with Linux build ones (hebasto)
  • #15941 Add historical release notes for 0.18.0 (laanwj)
  • #15794 Clarify PR guidelines w/re documentation (dongcarl)
  • #15607 Release process updates (jonatack)
  • #14364 Clarify -blocksdir usage (sangaman)
  • #15777 Add doxygen comments for keypool classes (jnewbery)
  • #15820 Add productivity notes for dummy rebases (dongcarl)
  • #15922 Explain how to pass in non-fundamental types into functions (MarcoFalke)
  • #16080 build/doc: update bitcoin_config.h packages, release process (jonatack)
  • #16047 analyzepsbt description in doc/psbt.md (jonatack)
  • #16039 add release note for 14954 (fanquake)
  • #16139 Add riscv64 to outputs list in release-process.md (JeremyRand)
  • #16140 create security policy (narula)
  • #16164 update release process for SECURITY.md (jonatack)
  • #16213 Remove explicit mention of versions from SECURITY.md (MarcoFalke)
  • #16186 doc/lint: Fix spelling errors identified by codespell 1.15.0 (Empact)
  • #16149 Rework section on ACK in CONTRIBUTING.md (MarcoFalke)
  • #16196 Add release notes for 14897 & 15834 (MarcoFalke)
  • #16241 add rapidcheck to vcpkg install list (fanquake)
  • #16243 Remove travis badge from readme (MarcoFalke)
  • #16256 remove orphaned header in developer notes (jonatack)
  • #15964 Improve build-osx document formatting (giulio92)
  • #16313 Fix broken link in doc/build-osx.md (jonatack)
  • #16330 Use placeholder instead of key expiration date (hebasto)
  • #16339 add reduce-memory.md (fanquake)
  • #16347 Include static members in Doxygen (dongcarl)
  • #15824 Improve netbase comments (dongcarl)
  • #16430 Update bips 35, 37 and 111 status (MarcoFalke)
  • #16455 Remove downgrading warning in release notes, per 0.18 branch (MarcoFalke)
  • #16484 update labels in CONTRIBUTING.md (MarcoFalke)
  • #16483 update Python command in msvc readme (sipsorcery)
  • #16504 Add release note for the deprecated totalFee option of bumpfee (promag)
  • #16448 add note on precedence of options in bitcoin.conf (fanquake)
  • #16536 Update and extend benchmarking.md (ariard)
  • #16530 Fix grammar and punctuation in developer notes (Tech1k)
  • #16574 Add historical release notes for 0.18.1 (laanwj)
  • #16585 Update Markdown syntax for bdb packages (emilengler)
  • #16586 Mention other ways to conserve memory on compilation (MarcoFalke)
  • #16605 Add missing contributor to 0.18.1 release notes (meshcollider)
  • #16615 Fix typos in COPYRIGHT (gapeman)
  • #16626 Fix spelling error chache -> cache (nilswloewen)
  • #16587 Improve versionbits.h documentation (ariard)
  • #16643 Add ZMQ dependencies to the Fedora build instructions (hebasto)
  • #16634 Refer in rpcbind doc to the manpage (MarcoFalke)
  • #16555 mention whitelist is inbound, and applies to blocksonly (Sjors)
  • #16645 initial RapidCheck property-based testing documentation (jonatack)
  • #16691 improve depends prefix documentation (fanquake)
  • #16629 Add documentation for the new whitelist permissions (NicolasDorier)
  • #16723 Update labels in CONTRIBUTING.md (hebasto)
  • #16461 Tidy up shadowing section (promag)
  • #16621 add default bitcoin.conf locations (GChuf)
  • #16752 Delete stale URL in test README (michaelfolkson)
  • #14862 Declare BLOCK_VALID_HEADER reserved (MarcoFalke)
  • #16806 Add issue templates for bug and feature request (MarcoFalke)
  • #16857 Elaborate need to re-login on Debian-based after usermod for Tor group (clashicly)
  • #16863 Add a missing closing parenthesis in the bitcoin-wallet’s help (darosior)
  • #16757 CChainState return values (MarcoFalke)
  • #16847 add comments clarifying how local services are advertised (jamesob)
  • #16812 Fix whitespace errs in .md files, bitcoin.conf, and Info.plist.in (ch4ot1c)
  • #16885 Update tx-size-small comment with relevant CVE disclosure (instagibbs)
  • #16900 Fix doxygen comment for SignTransaction in rpc/rawtransaction_util (MarcoFalke)
  • #16914 Update homebrew instruction for doxygen (Sjors)
  • #16912 Remove Doxygen intro from src/bitcoind.cpp (ch4ot1c)
  • #16960 replace outdated OpenSSL comment in test README (fanquake)
  • #16968 Remove MSVC update step from translation process (laanwj)
  • #16953 Improve test READMEs (fjahr)
  • #16962 Put PR template in comments (laanwj)
  • #16397 Clarify includeWatching for fundrawtransaction (stevenroose)
  • #15459 add how to calculate blockchain and chainstate size variables to release process (marcoagner)
  • #16997 Update bips.md for 0.19 (laanwj)
  • #17001 Remove mention of renamed mapBlocksUnlinked (MarcoFalke)
  • #17014 Consolidate release notes before 0.19.0 (move-only) (MarcoFalke)
  • #17111 update bips.md with buried BIP9 deployments (MarcoFalke)

New in Bitcoin Core 0.18.1 (Dec 21, 2020)

  • P2P protocol and network code:
  • #15990 Add tests and documentation for blocksonly (MarcoFalke)
  • #16021 Avoid logging transaction decode errors to stderr (MarcoFalke)
  • #16405 fix: tor: Call event_base_loopbreak from the event’s callback (promag)
  • #16412 Make poll in InterruptibleRecv only filter for POLLIN events (tecnovert)
  • Wallet:
  • #15913 Add -ignorepartialspends to list of ignored wallet options (luke-jr)
  • RPC and other APIs:
  • #15991 Bugfix: fix pruneblockchain returned prune height (jonasschnelli)
  • #15899 Document iswitness flag and fix bug in converttopsbt (MarcoFalke)
  • #16026 Ensure that uncompressed public keys in a multisig always returns a legacy address (achow101)
  • #14039 Disallow extended encoding for non-witness transactions (sipa)
  • #16210 add 2nd arg to signrawtransactionwithkey examples (dooglus)
  • #16250 signrawtransactionwithkey: report error when missing redeemScript/witnessScript (ajtowns)
  • GUI:
  • #16044 fix the bug of OPEN CONFIGURATION FILE on Mac (shannon1916)
  • #15957 Show “No wallets available” in open menu instead of nothing (meshcollider)
  • #16118 Enable open wallet menu on setWalletController (promag)
  • #16135 Set progressDialog to nullptr (promag)
  • #16231 Fix open wallet menu initialization order (promag)
  • #16254 Set AA_EnableHighDpiScaling attribute early (hebasto)
  • #16122 Enable console line edit on setClientModel (promag)
  • #16348 Assert QMetaObject::invokeMethod result (promag)
  • Build system:
  • #15985 Add test for GCC bug 90348 (sipa)
  • #15947 Install bitcoin-wallet manpage (domob1812)
  • #15983 build with -fstack-reuse=none (MarcoFalke)
  • Tests and QA:
  • #15826 Pure python EC (sipa)
  • #15893 Add test for superfluous witness record in deserialization (instagibbs)
  • #14818 Bugfix: test/functional/rpc_psbt: Remove check for specific error message that depends on uncertain assumptions (luke-jr)
  • #15831 Add test that addmultisigaddress fails for watchonly addresses (MarcoFalke)
  • Documentation:
  • #15890 Remove text about txes always relayed from -whitelist (harding)
  • Miscellaneous:
  • #16095 Catch by reference not value in wallettool (kristapsk)
  • #16205 Replace fprintf with tfm::format (MarcoFalke)

New in Bitcoin Core 0.18.0 (Dec 21, 2020)

  • Consensus:
  • #14247 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt)
  • Mining:
  • #14811 Mining: Enforce that segwit option must be set in GBT (jnewbery)
  • Block and transaction handling:
  • #13310 Report progress in ReplayBlocks while rolling forward (promag)
  • #13783 validation: Pass tx pool reference into CheckSequenceLocks (MarcoFalke)
  • #14834 validation: Assert that pindexPrev is non-null when required (kallewoof)
  • #14085 index: Fix for indexers skipping genesis block (jimpo)
  • #14963 mempool, validation: Explain cs_main locking semantics (MarcoFalke)
  • #15193 Default -whitelistforcerelay to off (sdaftuar)
  • #15429 Update assumevalid, minimumchainwork, and getchaintxstats to height 563378 (gmaxwell)
  • #15552 Granular invalidateblock and RewindBlockIndex (MarcoFalke)
  • #14841 Move CheckBlock() call to critical section (hebasto)
  • P2P protocol and network code:
  • #14025 Remove dead code for nVersion=10300 (MarcoFalke)
  • #12254 BIP 158: Compact Block Filters for Light Clients (jimpo)
  • #14073 blockfilter: Avoid out-of-bounds script access (jimpo)
  • #14140 Switch nPrevNodeCount to vNodesSize (pstratem)
  • #14027 Skip stale tip checking if outbound connections are off or if reindexing (gmaxwell)
  • #14532 Never bind INADDR_ANY by default, and warn when doing so explicitly (luke-jr)
  • #14733 Make peer timeout configurable, speed up very slow test and ensure correct code path tested (zallarak)
  • #14336 Implement poll (pstratem)
  • #15051 IsReachable is the inverse of IsLimited (DRY). Includes unit tests (mmachicao)
  • #15138 Drop IsLimited in favor of IsReachable (Empact)
  • #14605 Return of the Banman (dongcarl)
  • #14970 Add dnsseed.emzy.de to DNS seeds (Emzy)
  • #14929 Allow connections from misbehavior banned peers (gmaxwell)
  • #15345 Correct comparison of addr count (dongcarl)
  • #15201 Add missing locking annotation for vNodes. vNodes is guarded by cs_vNodes (practicalswift)
  • #14626 Select orphan transaction uniformly for eviction (sipa)
  • #15486 Ensure tried collisions resolve, and allow feeler connections to existing outbound netgroups (sdaftuar)
  • Wallet:
  • #13962 Remove unused dummy_tx variable from FillPSBT (dongcarl)
  • #13967 Don’t report minversion wallet entry as unknown (instagibbs)
  • #13988 Add checks for settxfee reasonableness (ajtowns)
  • #12559 Avoid locking cs_main in some wallet RPC (promag)
  • #13631 Add CMerkleTx::IsImmatureCoinBase method (Empact)
  • #14023 Remove accounts RPCs (jnewbery)
  • #13825 Kill accounts (jnewbery)
  • #10605 Add AssertLockHeld assertions in CWallet::ListCoins (ryanofsky)
  • #12490 Remove deprecated wallet rpc features from bitcoin_server (jnewbery)
  • #14138 Set encrypted_batch to nullptr after delete. Avoid double free in the case of NDEBUG (practicalswift)
  • #14168 Remove ENABLE_WALLET from libbitcoin_server.a (jnewbery)
  • #12493 Reopen CDBEnv after encryption instead of shutting down (achow101)
  • #14282 Remove -usehd option (jnewbery)
  • #14146 Remove trailing separators from -walletdir arg (PierreRochard)
  • #14291 Add ListWalletDir utility function (promag)
  • #14468 Deprecate generate RPC method (jnewbery)
  • #11634 Add missing cs_wallet/cs_KeyStore locks to wallet (practicalswift)
  • #14296 Remove addwitnessaddress (jnewbery)
  • #14451 Add BIP70 deprecation warning and allow building GUI without BIP70 support (jameshilliard)
  • #14320 Fix duplicate fileid detection (ken2812221)
  • #14561 Remove fs::relative call and fix listwalletdir tests (promag)
  • #14454 Add SegWit support to importmulti (MeshCollider)
  • #14410 rpcwallet: ischange field for getaddressinfo RPC (mrwhythat)
  • #14350 Add WalletLocation class (promag)
  • #14689 Require a public key to be retrieved when signing a P2PKH input (achow101)
  • #14478 Show error to user when corrupt wallet unlock fails (MeshCollider)
  • #14411 Restore ability to list incoming transactions by label (ryanofsky)
  • #14552 Detect duplicate wallet by comparing the db filename (ken2812221)
  • #14678 Remove redundant KeyOriginInfo access, already done in CreateSig (instagibbs)
  • #14477 Add ability to convert solvability info to descriptor (sipa)
  • #14380 Fix assert crash when specified change output spend size is unknown (instagibbs)
  • #14760 Log env path in BerkeleyEnvironment::Flush (promag)
  • #14646 Add expansion cache functions to descriptors (unused for now) (sipa)
  • #13076 Fix ScanForWalletTransactions to return an enum indicating scan result: success / failure / user_abort (Empact)
  • #14821 Replace CAffectedKeysVisitor with descriptor based logic (sipa)
  • #14957 Initialize stop_block in CWallet::ScanForWalletTransactions (Empact)
  • #14565 Overhaul importmulti logic (sipa)
  • #15039 Avoid leaking nLockTime fingerprint when anti-fee-sniping (MarcoFalke)
  • #14268 Introduce SafeDbt to handle Dbt with free or memory_cleanse raii-style (Empact)
  • #14711 Remove uses of chainActive and mapBlockIndex in wallet code (ryanofsky)
  • #15279 Clarify rescanblockchain doc (MarcoFalke)
  • #15292 Remove boost::optional-related false positive -Wmaybe-uninitialized warnings on GCC compiler (hebasto)
  • #13926 [Tools] bitcoin-wallet - a tool for creating and managing wallets offline (jnewbery)
  • #11911 Free BerkeleyEnvironment instances when not in use (ryanofsky)
  • #15235 Do not import private keys to wallets with private keys disabled (achow101)
  • #15263 Descriptor expansions only need pubkey entries for PKH/WPKH (sipa)
  • #15322 Add missing cs_db lock (promag)
  • #15297 Releases dangling files on BerkeleyEnvironment::Close (promag)
  • #14491 Allow descriptor imports with importmulti (MeshCollider)
  • #15365 Add lock annotation for mapAddressBook (MarcoFalke)
  • #15226 Allow creating blank (empty) wallets (alternative) (achow101)
  • #15390 [wallet-tool] Close bdb when flushing wallet (jnewbery)
  • #15334 Log absolute paths for the wallets (hebasto)
  • #14978 Factor out PSBT utilities from RPCs for use in GUI code; related refactoring (gwillen)
  • #14481 Add P2SH-P2WSH support to listunspent RPC (MeshCollider)
  • #14021 Import key origin data through descriptors in importmulti (achow101)
  • #14075 Import watch only pubkeys to the keypool if private keys are disabled (achow101)
  • #15368 Descriptor checksums (sipa)
  • #15433 Use a single wallet batch for UpgradeKeyMetadata (jonasschnelli)
  • #15408 Remove unused TransactionError constants (MarcoFalke)
  • #15583 Log and ignore errors in ListWalletDir and IsBerkeleyBtree (promag)
  • #14195 Pass privkey export DER compression flag correctly (fingera)
  • #15299 Fix assertion in CKey::SignCompact (promag)
  • #14437 Start to separate wallet from node (ryanofsky)
  • #15749 Fix: importmulti only imports origin info for PKH outputs (sipa)
  • RPC and other APIs:
  • #12842 Prevent concurrent savemempool (promag)
  • #13987 Report minfeefilter value in getpeerinfo RPC (ajtowns)
  • #13891 Remove getinfo deprecation warning (jnewbery)
  • #13399 Add submitheader (MarcoFalke)
  • #12676 Show bip125-replaceable flag, when retrieving mempool entries (dexX7)
  • #13723 PSBT key path cleanups (sipa)
  • #14008 Preserve a format of RPC command definitions (kostyantyn)
  • #9332 Let wallet importmulti RPC accept labels for standard scriptPubKeys (ryanofsky)
  • #13983 Return more specific reject reason for submitblock (MarcoFalke)
  • #13152 Add getnodeaddresses RPC command (chris-belcher)
  • #14298 rest: Improve performance for JSON calls (alecalve)
  • #14297 Remove warning for removed estimatefee RPC (jnewbery)
  • #14373 Consistency fixes for RPC descriptions (ch4ot1c)
  • #14150 Add key origin support to descriptors (sipa)
  • #14518 Always throw in getblockstats if -txindex is required (promag)
  • #14060 ZMQ: add options to configure outbound message high water mark, aka SNDHWM (mruddy)
  • #13381 Add possibility to preserve labels on importprivkey (marcoagner)
  • #14530 Use RPCHelpMan to generate RPC doc strings (MarcoFalke)
  • #14720 Correctly name RPC arguments (MarcoFalke)
  • #14726 Use RPCHelpMan for all RPCs (MarcoFalke)
  • #14796 Pass argument descriptions to RPCHelpMan (MarcoFalke)
  • #14670 http: Fix HTTP server shutdown (promag)
  • #14885 Assert that named arguments are unique in RPCHelpMan (promag)
  • #14877 Document default values for optional arguments (MarcoFalke)
  • #14875 RPCHelpMan: Support required arguments after optional ones (MarcoFalke)
  • #14993 Fix data race (UB) in InterruptRPC() (practicalswift)
  • #14653 rpcwallet: Add missing transaction categories to RPC helptexts (andrewtoth)
  • #14981 Clarify RPC getrawtransaction’s time help text (benthecarman)
  • #12151 Remove cs_main lock from blockToJSON and blockheaderToJSON (promag)
  • #15078 Document bytessent_per_msg and bytesrecv_per_msg (MarcoFalke)
  • #15057 Correct reconsiderblock help text, add test (MarcoFalke)
  • #12153 Avoid permanent cs_main lock in getblockheader (promag)
  • #14982 Add getrpcinfo command (promag)
  • #15122 Expand help text for importmulti changes (jnewbery)
  • #15186 remove duplicate solvable field from getaddressinfo (fanquake)
  • #15209 zmq: log outbound message high water mark when reusing socket (fanquake)
  • #15177 rest: Improve tests and documention of /headers and /block (promag)
  • #14353 rest: Add blockhash call, fetch blockhash by height (jonasschnelli)
  • #15248 Compile on GCC4.8 (MarcoFalke)
  • #14987 RPCHelpMan: Pass through Result and Examples (MarcoFalke)
  • #15159 Remove lookup to UTXO set from GetTransaction (amitiuttarwar)
  • #15245 remove deprecated mentions of signrawtransaction from fundraw help (instagibbs)
  • #14667 Add deriveaddresses RPC util method (Sjors)
  • #15357 Don’t ignore -maxtxfee when wallet is disabled (JBaczuk)
  • #15337 Fix for segfault if combinepsbt called with empty inputs (benthecarman)
  • #14918 RPCHelpMan: Check default values are given at compile-time (MarcoFalke)
  • #15383 mining: Omit uninitialized currentblockweight, currentblocktx (MarcoFalke)
  • #13932 Additional utility RPCs for PSBT (achow101)
  • #15401 Actually throw help when passed invalid number of params (MarcoFalke)
  • #15471 rpc/gui: Remove ‘Unknown block versions being mined’ warning (laanwj)
  • #15497 Consistent range arguments in scantxoutset/importmulti/deriveaddresses (sipa)
  • #15510 deriveaddresses: add range to CRPCConvertParam (Sjors)
  • #15582 Fix overflow bug in analyzepsbt fee: CAmount instead of int (sipa)
  • #13424 Consistently validate txid / blockhash length and encoding in rpc calls (Empact)
  • #15750 Remove the addresses field from the getaddressinfo return object (jnewbery)
  • GUI:
  • #13634 Compile boost::signals2 only once (MarcoFalke)
  • #13248 Make proxy icon from statusbar clickable (mess110)
  • #12818 TransactionView: highlight replacement tx after fee bump (Sjors)
  • #13529 Use new Qt5 connect syntax (promag)
  • #14162 Also log and print messages or questions like bitcoind (MarcoFalke)
  • #14385 Avoid system harfbuzz and bz2 (theuni)
  • #14450 Fix QCompleter popup regression (hebasto)
  • #14177 Set C locale for amountWidget (hebasto)
  • #14374 Add Blocksdir to Debug window (hebasto)
  • #14554 Remove unused adjustedTime parameter (hebasto)
  • #14228 Enable system tray icon by default if available (hebasto)
  • #14608 Remove the “Pay only required fee…” checkbox (hebasto)
  • #14521 qt, docs: Fix bitcoin-qt -version output formatting (hebasto)
  • #13966 When private key is disabled, only show watch-only balance (ken2812221)
  • #14828 Remove hidden columns in coin control dialog (promag)
  • #14783 Fix boost::signals2::no_slots_error in early calls to InitWarning (promag)
  • #14854 Cleanup SplashScreen class (hebasto)
  • #14801 Use window() instead of obsolete topLevelWidget() (hebasto)
  • #14573 Add Window menu (promag)
  • #14979 Restore < Qt5.6 compatibility for addAction (jonasschnelli)
  • #14975 Refactoring with QString::toNSString() (hebasto)
  • #15000 Fix broken notificator on GNOME (hebasto)
  • #14375 Correct misleading “overridden options” label (hebasto)
  • #15007 Notificator class refactoring (hebasto)
  • #14784 Use WalletModel* instead of the wallet name as map key (promag)
  • #11625 Add BitcoinApplication & RPCConsole tests (ryanofsky)
  • #14517 Fix start with the -min option (hebasto)
  • #13216 implements concept for different disk sizes on intro (marcoagner)
  • #15114 Replace remaining 0 with nullptr (Empact)
  • #14594 Fix minimized window bug on Linux (hebasto)
  • #14556 Fix confirmed transaction labeled “open” (#13299) (hebasto)
  • #15149 Show current wallet name in window title (promag)
  • #15136 “Peers” tab overhaul (hebasto)
  • #14250 Remove redundant stopThread() and stopExecutor() signals (hebasto)
  • #15040 Add workaround for QProgressDialog bug on macOS (hebasto)
  • #15101 Add WalletController (promag)
  • #15178 Improve “help-console” message (hebasto)
  • #15210 Fix window title update (promag)
  • #15167 Fix wallet selector size adjustment (hebasto)
  • #15208 Remove macOS launch-at-startup when compiled with > macOS 10.11, fix memory mismanagement (jonasschnelli)
  • #15163 Correct units for “-dbcache” and “-prune” (hebasto)
  • #15225 Change the receive button to respond to keypool state changing (achow101)
  • #15280 Fix shutdown order (promag)
  • #15203 Fix issue #9683 “gui, wallet: random abort (segmentation fault) (dooglus)
  • #15091 Fix model overlay header sync (jonasschnelli)
  • #15153 Add Open Wallet menu (promag)
  • #15183 Fix m_assumed_blockchain_size variable value (marcoagner)
  • #15063 If BIP70 is disabled, attempt to fall back to BIP21 parsing (luke-jr)
  • #15195 Add Close Wallet action (promag)
  • #15462 Fix async open wallet call order (promag)
  • #15801 Bugfix: GUI: Options: Initialise prune setting range before loading current value, and remove upper bound limit (luke-jr)
  • Build system:
  • #13955 gitian: Bump descriptors for (0.)18 (fanquake)
  • #13899 Enable -Wredundant-decls where available. Remove redundant redeclarations (practicalswift)
  • #13665 Add RISC-V support to gitian (ken2812221)
  • #14062 Generate MSVC project files via python script (ken2812221)
  • #14037 Add README.md to linux release tarballs (hebasto)
  • #14183 Remove unused Qt 4 dependencies (ken2812221)
  • #14127 Avoid getifaddrs when unavailable (greenaddress)
  • #14184 Scripts and tools: increased timeout downloading (cisba)
  • #14204 Move interfaces/* to libbitcoin_server (laanwj)
  • #14208 Actually remove ENABLE_WALLET (jnewbery)
  • #14212 Remove libssl from LDADD unless GUI (MarcoFalke)
  • #13578 Upgrade zeromq to 4.2.5 and avoid deprecated zeromq API functions (mruddy)
  • #14281 lcov: filter /usr/lib/ from coverage reports (MarcoFalke)
  • #14325 gitian: Use versioned unsigned tarballs instead of generically named ones (achow101)
  • #14253 During ‘make clean’, remove some files that are currently missed (murrayn)
  • #14455 Unbreak make clean (jamesob)
  • #14495 Warn (don’t fail!) on spelling errors (practicalswift)
  • #14496 Pin to specific versions of Python packages we install from PyPI in Travis (practicalswift)
  • #14568 Fix Qt link order for Windows build (ken2812221)
  • #14252 Run functional tests and benchmarks under the undefined behaviour sanitizer (UBSan) (practicalswift)
  • #14612 Include full version number in released file names (achow101)
  • #14840 Remove duplicate libconsensus linking in test make (AmirAbrams)
  • #14564 Adjust configure so that only BIP70 is disabled when protobuf is missing instead of the GUI (jameshilliard)
  • #14883 Add --retry 5 to curl opts in install_db4.sh (qubenix)
  • #14701 Add CLIENT_VERSION_BUILD to CFBundleGetInfoString (fanquake)
  • #14849 Qt 5.9.7 (fanquake)
  • #15020 Add names to Travis jobs (gkrizek)
  • #15047 Allow to configure –with-sanitizers=fuzzer (MarcoFalke)
  • #15154 Configure: bitcoin-tx doesn’t need libevent, so don’t pull it in (luke-jr)
  • #15175 Drop macports support (Empact)
  • #15308 Restore compatibility with older boost (Empact)
  • #15407 msvc: Fix silent merge conflict between #13926 and #14372 part II (ken2812221)
  • #15388 Makefile.am: add rule for src/bitcoin-wallet (Sjors)
  • #15393 Bump minimum Qt version to 5.5.1 (Sjors)
  • #15285 Prefer Python 3.4 even if newer versions are present on the system (Sjors)
  • #15398 msvc: Add rapidcheck property tests (ken2812221)
  • #15431 msvc: scripted-diff: Remove NDEBUG pre-define in project file (ken2812221)
  • #15549 gitian: Improve error handling (laanwj)
  • #15548 use full version string in setup.exe (MarcoFalke)
  • #11526 Visual Studio build configuration for Bitcoin Core (sipsorcery)
  • #15110 build_msvc: Fix the build problem in libbitcoin_server (Mr-Leshiy)
  • #14372 msvc: build secp256k1 and leveldb locally (ken2812221)
  • #15325 msvc: Fix silent merge conflict between #13926 and #14372 (ken2812221)
  • #15391 Add compile time verification of assumptions we’re currently making implicitly/tacitly (practicalswift)
  • #15503 msvc: Use a single file to specify the include path (ken2812221)
  • #13765 contrib: Add gitian build support for github pull request (ken2812221)
  • #15809 gitignore: plist and dat (jamesob)
  • Tests and QA:
  • #15405 appveyor: Clean cache when build configuration changes (Sjors)
  • #13953 Fix deprecation in bitcoin-util-test.py (isghe)
  • #13963 Replace usage of tostring() with tobytes() (dongcarl)
  • #13964 ci: Add appveyor ci (ken2812221)
  • #13997 appveyor: fetch the latest port data (ken2812221)
  • #13707 Add usage note to check-rpc-mappings.py (masonicboom)
  • #14036 travis: Run unit tests –with-sanitizers=undefined (MarcoFalke)
  • #13861 Add testing of value_ret for SelectCoinsBnB (Empact)
  • #13863 travis: Move script sections to files in .travis/ subject to shellcheck (scravy)
  • #14081 travis: Fix missing differentiation between unit and functional tests (scravy)
  • #14042 travis: Add cxxflags=-wno-psabi at arm job (ken2812221)
  • #14051 Make combine_logs.py handle multi-line logs (jnewbery)
  • #14093 Fix accidental trunction from int to bool (practicalswift)
  • #14108 Add missing locking annotations and locks (g_cs_orphans) (practicalswift)
  • #14088 Don’t assert(…) with side effects (practicalswift)
  • #14086 appveyor: Use clcache to speed up build (ken2812221)
  • #13954 Warn (don’t fail!) on spelling errors. Fix typos reported by codespell (practicalswift)
  • #12775 Integration of property based testing into Bitcoin Core (Christewart)
  • #14119 Read reject reasons from debug log, not P2P messages (MarcoFalke)
  • #14189 Fix silent merge conflict in wallet_importmulti (MarcoFalke)
  • #13419 Speed up knapsack_solver_test by not recreating wallet 100 times (lucash-dev)
  • #14199 Remove redundant BIP174 test from rpc_psbt.json (araspitzu)
  • #14179 Fixups to “Run all tests even if wallet is not compiled” (MarcoFalke)
  • #14225 Reorder tests and move most of extended tests up to normal tests (ken2812221)
  • #14236 generate –> generatetoaddress change to allow tests run without wallet (sanket1729)
  • #14287 Use MakeUnique to construct objects owned by unique_ptrs (practicalswift)
  • #14007 Run functional test on Windows and enable it on Appveyor (ken2812221)
  • #14275 Write the notification message to different files to avoid race condition in feature_notifications.py (ken2812221)
  • #14306 appveyor: Move AppVeyor YAML to dot-file-style YAML (MitchellCash)
  • #14305 Enforce critical class instance attributes in functional tests, fix segwit test specificity (JustinTArthur)
  • #12246 Bugfix: Only run bitcoin-tx tests when bitcoin-tx is enabled (luke-jr)
  • #14316 Exclude all tests with difference parameters in --exclude list (ken2812221)
  • #14381 Add missing call to skip_if_no_cli() (practicalswift)
  • #14389 travis: Set codespell version to avoid breakage (MarcoFalke)
  • #14398 Don’t access out of bounds array index: array[sizeof(array)] (Empact)
  • #14419 Remove rpc_zmq.py (jnewbery)
  • #14241 appveyor: Script improvement (ken2812221)
  • #14413 Allow closed RPC handler in assert_start_raises_init_error (ken2812221)
  • #14324 Run more tests with wallet disabled (MarcoFalke)
  • #13649 Allow arguments to be forwarded to flake8 in lint-python.sh (jamesob)
  • #14465 Stop node before removing the notification file (ken2812221)
  • #14460 Improve ‘CAmount’ tests (hebasto)
  • #14456 forward timeouts properly in send_blocks_and_test (jamesob)
  • #14527 Revert “Make qt wallet test compatible with qt4” (MarcoFalke)
  • #14504 Show the progress of functional tests (isghe)
  • #14559 appveyor: Enable multiwallet tests (ken2812221)
  • #13515 travis: Enable qt for all jobs (ken2812221)
  • #14571 Test that nodes respond to getdata with notfound (MarcoFalke)
  • #14569 Print dots by default in functional tests (ken2812221)
  • #14631 Move deterministic address import to setup_nodes (jnewbery)
  • #14630 test: Remove travis specific code (MarcoFalke)
  • #14528 travis: Compile once on xenial (MarcoFalke)
  • #14092 Dry run bench_bitcoin as part make check to allow for quick identification of assertion/sanitizer failures in benchmarking code (practicalswift)
  • #14664 example_test.py: fixup coinbase height argument, derive number clearly (instagibbs)
  • #14522 Add invalid P2P message tests (jamesob)
  • #14619 Fix value display name in test_runner help text (merland)
  • #14672 Send fewer spam messages in p2p_invalid_messages (jamesob)
  • #14673 travis: Fail the ubsan travis build in case of newly introduced ubsan errors (practicalswift)
  • #14665 appveyor: Script improvement part II (ken2812221)
  • #14365 Add Python dead code linter (vulture) to Travis (practicalswift)
  • #14693 test_node: get_mem_rss fixups (MarcoFalke)
  • #14714 util.h: explicitly include required QString header (1Il1)
  • #14705 travis: Avoid timeout on verify-commits check (MarcoFalke)
  • #14770 travis: Do not specify sudo in .travis (scravy)
  • #14719 Check specific reject reasons in feature_block (MarcoFalke)
  • #14771 Add BOOST_REQUIRE to getters returning optional (MarcoFalke)
  • #14777 Add regtest for JSON-RPC batch calls (domob1812)
  • #14764 travis: Run thread sanitizer on unit tests (MarcoFalke)
  • #14400 Add Benchmark to test input de-duplication worst case (JeremyRubin)
  • #14812 Fix p2p_invalid_messages on macOS (jamesob)
  • #14813 Add wallet_encryption error tests (MarcoFalke)
  • #14820 Fix descriptor_tests not checking ToString output of public descriptors (ryanofsky)
  • #14794 Add AddressSanitizer (ASan) Travis build (practicalswift)
  • #14819 Bugfix: test/functional/mempool_accept: Ensure oversize transaction is actually oversize (luke-jr)
  • #14822 bench: Destroy wallet txs instead of leaking their memory (MarcoFalke)
  • #14683 Better combine_logs.py behavior (jamesob)
  • #14231 travis: Save cache even when build or test fail (ken2812221)
  • #14816 Add CScriptNum decode python implementation in functional suite (instagibbs)
  • #14861 Modify rpc_bind to conform to #14532 behaviour (dongcarl)
  • #14864 Run scripted-diff in subshell (dongcarl)
  • #14795 Allow test_runner command line to receive parameters for each test (marcoagner)
  • #14788 Possible fix the permission error when the tests open the cookie file (ken2812221)
  • #14857 wallet_keypool_topup.py: Test for all keypool address types (instagibbs)
  • #14886 Refactor importmulti tests (jnewbery)
  • #14908 Removed implicit CTransaction constructor calls from tests and benchmarks (lucash-dev)
  • #14903 Handle ImportError explicitly, improve comparisons against None (daniel-s-ingram)
  • #14884 travis: Enforce python 3.4 support through linter (Sjors)
  • #14940 Add test for truncated pushdata script (MarcoFalke)
  • #14926 consensus: Check that final transactions are valid (MarcoFalke)
  • #14937 travis: Fix travis would always be green even if it fail (ken2812221)
  • #14953 Make g_insecure_rand_ctx thread_local (MarcoFalke)
  • #14931 mempool: Verify prioritization is dumped correctly (MarcoFalke)
  • #14935 Test for expected return values when calling functions returning a success code (practicalswift)
  • #14969 Fix cuckoocache_tests TSAN failure introduced in 14935 (practicalswift)
  • #14964 Fix race in mempool_accept (MarcoFalke)
  • #14829 travis: Enable functional tests in the threadsanitizer (tsan) build job (practicalswift)
  • #14985 Remove thread_local from test_bitcoin (MarcoFalke)
  • #15005 Bump timeout to run tests in travis thread sanitizer (MarcoFalke)
  • #15013 Avoid race in p2p_timeouts (MarcoFalke)
  • #14960 lint/format-strings: Correctly exclude escaped percent symbols (luke-jr)
  • #14930 pruning: Check that verifychain can be called when pruned (MarcoFalke)
  • #15022 Upgrade Travis OS to Xenial (gkrizek)
  • #14738 Fix running wallet_listtransactions.py individually through test_runner.py (kristapsk)
  • #15026 Rename rpc_timewait to rpc_timeout (MarcoFalke)
  • #15069 Fix rpc_net.py pong race condition (Empact)
  • #14790 Allow running rpc_bind.py –nonloopback test without IPv6 (kristapsk)
  • #14457 add invalid tx templates for use in functional tests (jamesob)
  • #14855 Correct ineffectual WithOrVersion from transactions_tests (Empact)
  • #15099 Use std::vector API for construction of test data (domob1812)
  • #15102 Run invalid_txs.InputMissing test in feature_block (MarcoFalke)
  • #15059 Add basic test for BIP34 (MarcoFalke)
  • #15108 Tidy up wallet_importmulti.py (amitiuttarwar)
  • #15164 Ignore shellcheck warning SC2236 (promag)
  • #15170 refactor/lint: Add ignored shellcheck suggestions to an array (koalaman)
  • #14958 Remove race between connecting and shutdown on separate connections (promag)
  • #15166 Pin shellcheck version (practicalswift)
  • #15196 Update all subprocess.check_output functions to be Python 3.4 compatible (gkrizek)
  • #15043 Build fuzz targets into seperate executables (MarcoFalke)
  • #15276 travis: Compile once on trusty (MarcoFalke)
  • #15246 Add tests for invalid message headers (MarcoFalke)
  • #15301 When testing with –usecli, unify RPC arg to cli arg conversion and handle dicts and lists (achow101)
  • #15247 Use wallet to retrieve raw transactions (MarcoFalke)
  • #15303 travis: Remove unused functional_tests_config (MarcoFalke)
  • #15330 Fix race in p2p_invalid_messages (MarcoFalke)
  • #15324 Make bloom tests deterministic (MarcoFalke)
  • #15328 travis: Revert “run extended tests once daily” (MarcoFalke)
  • #15327 Make test updatecoins_simulation_test deterministic (practicalswift)
  • #14519 add utility to easily profile node performance with perf (jamesob)
  • #15349 travis: Only exit early if compilation took longer than 30 min (MarcoFalke)
  • #15350 Drop RPC connection if –usecli (promag)
  • #15370 test: Remove unused –force option (MarcoFalke)
  • #14543 minor p2p_sendheaders fix of height in coinbase (instagibbs)
  • #13787 Test for Windows encoding issue (ken2812221)
  • #15378 Added missing tests for RPC wallet errors (benthecarman)
  • #15238 remove some magic mining constants in functional tests (instagibbs)
  • #15411 travis: Combine –disable-bip70 into existing job (MarcoFalke)
  • #15295 fuzz: Add test/fuzz/test_runner.py and run it in travis (MarcoFalke)
  • #15413 Add missing cs_main locks required when accessing pcoinsdbview, pcoinsTip or pblocktree (practicalswift)
  • #15399 fuzz: Script validation flags (MarcoFalke)
  • #15410 txindex: interrupt threadGroup before calling destructor (MarcoFalke)
  • #15397 Remove manual byte editing in wallet_tx_clone func test (instagibbs)
  • #15415 functional: allow custom cwd, use tmpdir as default (Sjors)
  • #15404 Remove -txindex to start nodes (amitiuttarwar)
  • #15439 remove byte.hex() to keep compatibility (AkioNak)
  • #15419 Always refresh cache to be out of ibd (MarcoFalke)
  • #15507 Bump timeout on tests that timeout on windows (MarcoFalke)
  • #15506 appveyor: fix cache issue and reduce dependencies build time (ken2812221)
  • #15485 add rpc_misc.py, mv test getmemoryinfo, add test mallocinfo (adamjonas)
  • #15321 Add cs_main lock annotations for mapBlockIndex (MarcoFalke)
  • #14128 lint: Make sure we read the command line inputs using UTF-8 decoding in python (ken2812221)
  • #14115 lint: Make all linters work under the default macos dev environment (build-osx.md) (practicalswift)
  • #15219 lint: Enable python linters via an array (Empact)
  • Platform support:
  • #13866 utils: Use _wfopen and _wfreopen on windows (ken2812221)
  • #13886 utils: Run commands using UTF-8 string on windows (ken2812221)
  • #14192 utils: Convert fs::filesystem_error messages from local multibyte to UTF-8 on windows (ken2812221)
  • #13877 utils: Make fs::path::string() always return UTF-8 string on windows (ken2812221)
  • #13883 utils: Convert windows args to UTF-8 string (ken2812221)
  • #13878 utils: Add fstream wrapper to allow to pass unicode filename on windows (ken2812221)
  • #14426 utils: Fix broken windows filelock (ken2812221)
  • #14686 Fix windows build error if --disable-bip70 (ken2812221)
  • #14922 windows: Set _WIN32_WINNT to 0x0601 (Windows 7) (ken2812221)
  • #13888 Call unicode API on Windows (ken2812221)
  • #15468 Use fsbridge::ifstream to fix Windows path issue (ken2812221)
  • #13734 Drop boost::scoped_array and use wchar_t API explicitly on Windows (ken2812221)
  • #13884 Enable bdb unicode support for Windows (ken2812221)
  • Miscellaneous
  • #13935 contrib: Adjust output to current test format (AkioNak)
  • #14097 validation: Log FormatStateMessage on ConnectBlock error in ConnectTip (MarcoFalke)
  • #13724 contrib: Support ARM and RISC-V symbol check (ken2812221)
  • #13159 Don’t close old debug log file handle prematurely when trying to re-open (on SIGHUP) (practicalswift)
  • #14186 bitcoin-cli: don’t translate command line options (HashUnlimited)
  • #14057 logging: Only log using config file path_to_bitcoin.conf message on startup if conf file exists (leishman)
  • #14164 Update univalue subtree (MarcoFalke)
  • #14272 init: Remove deprecated args from hidden args (MarcoFalke)
  • #14494 Error if # is used in rpcpassword in conf (MeshCollider)
  • #14742 Properly generate salt in rpcauth.py (dongcarl)
  • #14708 Warn unrecognised sections in the config file (AkioNak)
  • #14756 Improve rpcauth.py by using argparse and getpass modules (promag)
  • #14785 scripts: Fix detection of copyright holders (cornelius)
  • #14831 scripts: Use #!/usr/bin/env bash instead of #!/bin/bash (vim88)
  • #14869 Scripts: Add trusted key for samuel dobson (laanwj)
  • #14809 Tools: improve verify-commits.py script (jlopp)
  • #14624 Some simple improvements to the RNG code (sipa)
  • #14947 scripts: Remove python 2 import workarounds (practicalswift)
  • #15087 Error if rpcpassword contains hash in conf sections (MeshCollider)
  • #14433 Add checksum in gitian build scripts for ossl (TheCharlatan)
  • #15165 contrib: Allow use of github api authentication in github-merge (laanwj)
  • #14409 utils and libraries: Make ‘blocksdir’ always net specific (hebasto)
  • #14839 threads: Fix unitialized members in sched_param (fanquake)
  • #14955 Switch all RNG code to the built-in PRNG (sipa)
  • #15258 Scripts and tools: Fix devtools/copyright_header.py to always honor exclusions (Empact)
  • #12255 Update bitcoin.service to conform to init.md (dongcarl)
  • #15266 memory: Construct globals on first use (MarcoFalke)
  • #15347 Fix build after pr 15266 merged (hebasto)
  • #15351 Update linearize-hashes.py (OverlordQ)
  • #15358 util: Add setuphelpoptions() (MarcoFalke)
  • #15216 Scripts and tools: Replace script name with a special parameter (hebasto)
  • #15250 Use RdSeed when available, and reduce RdRand load (sipa)
  • #15278 Improve PID file error handling (hebasto)
  • #15270 Pull leveldb subtree (MarcoFalke)
  • #15456 Enable PID file creation on WIN (riordant)
  • #12783 macOS: disable AppNap during sync (krab)
  • #13910 Log progress while verifying blocks at level 4 (domob1812)
  • #15124 Fail AppInitMain if either disk space check fails (Empact)
  • #15117 Fix invalid memory write in case of failing mmap(…) in PosixLockedPageAllocator::AllocateLocked (practicalswift)
  • #14357 streams: Fix broken streams_vector_reader test. Remove unused seek(size_t)
  • #11640 Make LOCK, LOCK2, TRY_LOCK work with CWaitableCriticalSection (ryanofsky)
  • #14074 Use std::unordered_set instead of set in blockfilter interface (jimpo)
  • #15275 Add gitian PGP key for hebasto (hebasto)
  • Documentation:
  • #14120 Notes about control port and read access to cookie (JBaczuk)
  • #14135 correct GetDifficulty doc after #13288 (fanquake)
  • #14013 Add new regtest ports in man following #10825 ports reattributions (ariard)
  • #14149 Remove misleading checkpoints comment in CMainParams (MarcoFalke)
  • #14153 Add disable-wallet section to OSX build instructions, update line in Unix instructions (bitstein)
  • #13662 Explain when reindex-chainstate can be used instead of reindex (Sjors)
  • #14207 -help-debug implies -help (laanwj)
  • #14213 Fix reference to lint-locale-dependence.sh (hebasto)
  • #14206 Document -checklevel levels (laanwj)
  • #14217 Add GitHub PR template (MarcoFalke)
  • #14331 doxygen: Fix member comments (MarcoFalke)
  • #14264 Split depends installation instructions per arch (MarcoFalke)
  • #14393 Add missing apt-get install (poiuty)
  • #14428 Fix macOS files description in qt/README.md (hebasto)
  • #14390 release process: RPC documentation (karel-3d)
  • #14472 getblocktemplate: use SegWit in example (Sjors)
  • #14497 Add doc/bitcoin-conf.md (hebasto)
  • #14526 Document lint tests (fanquake)
  • #14511 Remove explicit storage requirement from README.md (merland)
  • #14600 Clarify commit message guidelines (merland)
  • #14617 FreeBSD: Document Python 3 requirement for ‘gmake check’ (murrayn)
  • #14592 Add external interface consistency guarantees (MarcoFalke)
  • #14625 Make clear function argument case in dev notes (dongcarl)
  • #14515 Update OpenBSD build guide for 6.4 (fanquake)
  • #14436 Add comment explaining recentRejects-DoS behavior (jamesob)
  • #14684 conf: Remove deprecated options from docs, Other cleanup (MarcoFalke)
  • #14731 Improve scripted-diff developer docs (dongcarl)
  • #14778 A few minor formatting fixes and clarifications to descriptors.md (jnewbery)
  • #14448 Clarify rpcwallet flag url change (JBaczuk)
  • #14808 Clarify RPC rawtransaction documentation (jlopp)
  • #14804 Less confusing documentation for torpassword (fanquake)
  • #14848 Fix broken Gmane URL in security-check.py (cyounkins-bot)
  • #14882 developer-notes.md: Point out that UniValue deviates from upstream (Sjors)
  • #14909 Update minimum required Qt (fanquake)
  • #14914 Add nice table to files.md (emilengler)
  • #14741 Indicate -rpcauth option password hashing alg (dongcarl)
  • #14950 Add NSIS setup/install steps to windows docs (fanquake)
  • #13930 Better explain GetAncestor check for m_failed_blocks in AcceptBlockHeader (Sjors)
  • #14973 Improve Windows native build instructions (murrayn)
  • #15073 Botbot.me (IRC logs) not available anymore (anduck)
  • #15038 Get more info about GUI-related issue on Linux (hebasto)
  • #14832 Add more Doxygen information to Developer Notes (ch4ot1c)
  • #15128 Fix download link in doc/README.md (merland)
  • #15127 Clarifying testing instructions (benthecarman)
  • #15132 Add FreeBSD build notes link to doc/README.md (fanquake)
  • #15173 Explain what .python-version does (Sjors)
  • #15223 Add information about security to the JSON-RPC doc (harding)
  • #15249 Update python docs to reflect that wildcard imports are disallowed (Empact)
  • #15176 Get rid of badly named doc/README_osx.md (merland)
  • #15272 Correct logging return type and RPC example (fanquake)
  • #15244 Gdb attaching to process during tests has non-sudo solution (instagibbs)
  • #15332 Small updates to getrawtransaction description (amitiuttarwar)
  • #15354 Add missing bitcoin-wallet tool manpages (MarcoFalke)
  • #15343 netaddress: Make IPv4 loopback comment more descriptive (dongcarl)
  • #15353 Minor textual improvements in translation_strings_policy.md (merland)
  • #15426 importmulti: add missing description of keypool option (harding)
  • #15425 Add missing newline to listunspent help for witnessScript (harding)
  • #15348 Add separate productivity notes document (dongcarl)
  • #15416 Update FreeBSD build guide for 12.0 (fanquake)
  • #15222 Add info about factors that affect dependency list (merland)
  • #13676 Explain that mempool memory is added to -dbcache (Sjors)
  • #15273 Slight tweak to the verify-commits script directions (droark)
  • #15477 Remove misleading hint in getrawtransaction (MarcoFalke)
  • #15489 Update release process for snap package (MarcoFalke)
  • #15524 doc: Remove berkeleydb PPA from linux build instructions (MarcoFalke)
  • #15559 Correct analyzepsbt rpc doc (fanquake)
  • #15194 Add comment describing fDisconnect behavior (dongcarl)
  • #15754 getrpcinfo docs (benthecarman)
  • #15763 Update bips.md for 0.18.0 (sipa)
  • #15757 List new RPCs in psbt.md and descriptors.md (sipa)
  • #15765 correct bitcoinconsensus_version in shared-libraries.md (fanquake)
  • #15792 describe onlynet option in doc/tor.md (jonatack)
  • #15802 mention creating application support bitcoin folder on OSX (JimmyMow)
  • #15799 Clarify RPC versioning (MarcoFalke)

New in Bitcoin Core 0.17.1 (Dec 21, 2020)

  • P2P protocol and network code:
  • #14685 9406502 Fix a deserialization overflow edge case (kazcw)
  • #14728 b901578 Fix uninitialized read when stringifying an addrLocal (kazcw)
  • Wallet:
  • #14441 5150acc Restore ability to list incoming transactions by label (jnewbery)
  • #13546 91fa15a Fix use of uninitialized value bnb_used in CWallet::CreateTransaction(…) (practicalswift)
  • #14310 bb90695 Ensure wallet is unlocked before signing (gustavonalle)
  • #14690 5782fdc Throw error if CPubKey is invalid during PSBT keypath serialization (instagibbs)
  • #14852 2528443 backport: [tests] Add wallet_balance.py (MarcoFalke)
  • #14196 3362a95 psbt: always drop the unnecessary utxo and convert non-witness utxo to witness when necessary (achow101)
  • #14588 70ee1f8 Refactor PSBT signing logic to enforce invariant and fix signing bug (gwillen)
  • #14424 89a9a9d Stop requiring imported pubkey to sign non-PKH schemes (sipa, MeshCollider)
  • RPC and other APIs:
  • #14417 fb9ad04 Fix listreceivedbyaddress not taking address as a string (etscrivner)
  • #14596 de5e48a Bugfix: RPC: Add address_type named param for createmultisig (luke-jr)
  • #14618 9666dba Make HTTP RPC debug logging more informative (practicalswift)
  • #14197 7bee414 [psbt] Convert non-witness UTXOs to witness if witness sig created (achow101)
  • #14377 a3fe125 Check that a separator is found for psbt inputs, outputs, and global map (achow101)
  • #14356 7a590d8 Fix converttopsbt permitsigdata arg, add basic test (instagibbs)
  • #14453 75b5d8c Fix wallet unload during walletpassphrase timeout (promag)
  • GUI:
  • #14403 0242b5a Revert “Force TLS1.0+ for SSL connections” (real-or-random)
  • #14593 df5131b Explicitly disable “Dark Mode” appearance on macOS (fanquake)
  • Build system:
  • #14647 7edebed Remove illegal spacing in darwin.mk (ch4ot1c)
  • #14698 ec71f06 Add bitcoin-tx.exe into Windows installer (ken2812221)
  • Tests and QA:
  • #13965 29899ec Fix extended functional tests fail (ken2812221)
  • #14011 9461f98 Disable wallet and address book Qt tests on macOS minimal platform (ryanofsky)
  • #14180 86fadee Run all tests even if wallet is not compiled (MarcoFalke)
  • #14122 8bc1bad Test rpc_help.py failed: Check whether ZMQ is enabled or not (Kvaciral)
  • #14101 96dc936 Use named args in validation acceptance tests (MarcoFalke)
  • #14020 24d796a Add tests for RPC help (promag)
  • #14052 7ff32a6 Add some actual witness in rpc_rawtransaction (MarcoFalke)
  • #14215 b72fbab Use correct python index slices in example test (sdaftuar)
  • #14024 06544fa Add TestNode::assert_debug_log (MarcoFalke)
  • #14658 60f7a97 Add test to ensure node can generate all rpc help texts at runtime (MarcoFalke)
  • #14632 96f15e8 Fix a comment (fridokus)
  • #14700 f9db08e Avoid race in p2p_invalid_block by waiting for the block request (MarcoFalke)
  • #14845 67225e2 Add wallet_balance.py (jnewbery)
  • Documentation:
  • #14161 5f51fd6 doc/descriptors.md tweaks (ryanofsky)
  • #14276 85aacc4 Add autogen.sh in ARM Cross-compilation (walterwhite81)

New in Bitcoin Core 0.17.0.1 (Dec 21, 2020)

  • Build system:
  • #14416 eb2cc84 Fix OSX dmg issue (10.12 to 10.14) (jonasschnelli)
  • Documentation:
  • #14509 1b5af2c [0.17] doc: use SegWit in getblocktemplate example (Sjors)

New in Bitcoin Core 0.17.0 (Dec 21, 2020)

  • Consensus:
  • #12204 3fa24bb Fix overly eager BIP30 bypass (morcos)
  • Policy:
  • #12568 ed6ae80 Allow dustrelayfee to be set to zero (luke-jr)
  • #13120 ca2a233 Treat segwit as always active (MarcoFalke)
  • #13096 062738c Fix MAX_STANDARD_TX_WEIGHT check (jl2012)
  • Mining:
  • #12693 df529dc Remove unused variable in SortForBlock (drewx2)
  • #12448 84efa9a Interrupt block generation on shutdown request (promag)
  • Block and transaction handling:
  • #12225 67447ba Mempool cleanups (sdaftuar)
  • #12356 fd65937 Fix ‘mempool min fee not met’ debug output (Empact)
  • #12287 bf3353d Optimise lock behaviour for GuessVerificationProgress() (jonasschnelli)
  • #11889 47a7666 Drop extra script variable in ProduceSignature (ryanofsky)
  • #11880 d59b8d6 Stop special-casing phashBlock handling in validation for TBV (TheBlueMatt)
  • #12431 947c25e Only call NotifyBlockTip when chainActive changes (jamesob)
  • #12653 534b8fa Allow to optional specify the directory for the blocks storage (jonasschnelli)
  • #12172 3b62a91 Bugfix: RPC: savemempool: Don’t save until LoadMempool() is finished (jtimon)
  • #12167 88430cb Make segwit failure due to CLEANSTACK violation return a SCRIPT_ERR_CLEANSTACK error code (maaku)
  • #12561 24133b1 Check for block corruption in ConnectBlock() (sdaftuar)
  • #11617 1b5723e Avoid lock: Call FlushStateToDisk(…) regardless of fCheckForPruning (practicalswift)
  • #11739 0a8b7b4 Enforce SCRIPT_VERIFY_P2SH and SCRIPT_VERIFY_WITNESS from genesis (sdaftuar)
  • #12885 a49381d Reduce implementation code inside CScript (sipa)
  • #13032 34dd1a6 Output values for “min relay fee not met” error (kristapsk)
  • #13033 a07e8ca Build txindex in parallel with validation (jimpo)
  • #13080 66cc47b Add compile time checking for ::mempool.cs runtime locking assertions (practicalswift)
  • #13185 08c1caf Bugfix: the end of a reorged chain is invalid when connect fails (sipa)
  • #11689 0264836 Fix missing locking in CTxMemPool::check(…) and CTxMemPool::setSanityCheck(…) (practicalswift)
  • #13011 3c2a41a Cache witness hash in CTransaction (MarcoFalke)
  • #13191 0de7cc8 Specialized double-SHA256 with 64 byte inputs with SSE4.1 and AVX2 (sipa)
  • #13243 ea263e1 Make reusable base class for auxiliary indices (jimpo)
  • #13393 a607d23 Enable double-SHA256-for-64-byte code on 32-bit x86 (sipa)
  • #13428 caabdea validation: check the specified number of blocks (off-by-one) (kallewoof)
  • #13438 450055b Improve coverage of SHA256 SelfTest code (sipa)
  • #13431 954f4a9 validation: count blocks correctly for check level < 3 (kallewoof)
  • #13386 3a3eabe SHA256 implementations based on Intel SHA Extensions (sipa)
  • #11658 9a1ad2c During IBD, when doing pruning, prune 10% extra to avoid pruning again soon after (luke-jr)
  • #13794 8ce55df chainparams: Update with data from assumed valid chain (MarcoFalke)
  • #13527 e7ea858 Remove promiscuousmempoolflags (MarcoFalke)
  • P2P protocol and network code:
  • #12342 eaeaa2d Extend #11583 (“Do not make it trivial for inbound peers to generate log entries”) to include “version handshake timeout” message (clemtaylor)
  • #12218 9a32114 Move misbehaving logging to net logging category (laanwj)
  • #10387 5c2aff8 Eventually connect to NODE_NETWORK_LIMITED peers (jonasschnelli)
  • #9037 a36834f Add test-before-evict discipline to addrman (EthanHeilman)
  • #12622 e1d6e2a Correct addrman logging (laanwj)
  • #11962 0a01843 add seed.bitcoin.sprovoost.nl to DNS seeds (Sjors)
  • #12569 23e7fe8 Increase signal-to-noise ratio in debug.log by adjusting log level when logging failed non-manual connect():s (practicalswift)
  • #12855 c199869 Minor accumulated cleanups (tjps)
  • #13153 ef46c99 Add missing newlines to debug logging (laanwj)
  • #13162 a174702 Don’t incorrectly log that REJECT messages are unknown (jnewbery)
  • #13151 7f4db9a Serve blocks directly from disk when possible (laanwj)
  • #13134 70d3541 Add option -enablebip61 to configure sending of BIP61 notifications (laanwj)
  • #13532 7209fec Log warning when deprecated network name ‘tor’ is used (wodry)
  • #13615 172f984 Remove unused interrupt from SendMessages (fanquake)
  • #13417 1e90862 Tighten scope in net_processing (skeees)
  • #13298 f8d470e Bucketing INV delays (1 bucket) for incoming connections to hide tx time (naumenkogs)
  • #13672 0d8d6be Modified in_addr6 cast in CConman class to work with msvc (sipsorcery)
  • #11637 c575260 Remove dead service bits code (MarcoFalke)
  • #13212 a6f00ce Fixed a race condition when disabling the network (lmanners)
  • #13656 1211b15 Remove the boost/algorithm/string/predicate.hpp dependency (251Labs)
  • #13423 f58674a Thread safety annotations in net_processing (skeees)
  • #13776 7d36237 Add missing verification of IPv6 address in CNetAddr::GetIn6Addr(…) (practicalswift)
  • #13907 48bf8ff Introduce a maximum size for locators (gmaxwell)
  • #13951 8a9ffec Hardcoded seeds update pre-0.17 branch (laanwj)
  • Wallet:
  • #12330 2a30e67 Reduce scope of cs_main and cs_wallet locks in listtransactions (promag)
  • #12298 a1ffddb Refactor HaveKeys to early return on false result (promag)
  • #12282 663911e Disallow abandon of conflicted txes (MarcoFalke)
  • #12333 d405bee Make CWallet::ListCoins atomic (promag)
  • #12296 8e6f9f4 Only fee-bump non-conflicted/non-confirmed txes (MarcoFalke)
  • #11866 6bb9c13 Do not un-mark fInMempool on wallet txn if ATMP fails (TheBlueMatt)
  • #11882 987a809 Disable default fallbackfee on mainnet (jonasschnelli)
  • #9991 4ca7c1e listreceivedbyaddress Filter Address (NicolasDorier)
  • #11687 98bc27f External wallet files (ryanofsky)
  • #12658 af88094 Sanitize some wallet serialization (sipa)
  • #9680 6acd870 Unify CWalletTx construction (ryanofsky)
  • #10637 e057589 Coin Selection with Murch’s algorithm (achow101, Xekyo)
  • #12408 c39dd2e Change output type globals to members (MarcoFalke)
  • #12694 9552dfb Actually disable BnB when there are preset inputs (achow101)
  • #11536 cead84b Rename account to label where appropriate (ryanofsky)
  • #12709 02b7e83 shuffle sendmany recipients ordering (instagibbs)
  • #12699 c948dc8 Shuffle transaction inputs before signing (instagibbs)
  • #10762 6d53663 Remove Wallet dependencies from init.cpp (jnewbery)
  • #12857 821980c Avoid travis lint-include-guards error (ken2812221)
  • #12702 dab0d68 importprivkey: hint about importmulti (kallewoof)
  • #12836 9abdb7c Make WalletInitInterface and DummyWalletInit private, fix nullptr deref (promag)
  • #12785 215158a Initialize m_last_block_processed to nullptr (practicalswift)
  • #12932 8d651ae Remove redundant lambda function arg in handleTransactionChanged (laanwj)
  • #12749 a84b056 feebumper: discard change outputs below discard rate (instagibbs)
  • #12892 9b3370d introduce ‘label’ API for wallet (jnewbery)
  • #12925 6d3de17 Logprint the start of a rescan (jonasschnelli)
  • #12888 39439e5 debug log number of unknown wallet records on load (instagibbs)
  • #12977 434150a Refactor g_wallet_init_interface to const reference (promag)
  • #13017 65d7083 Add wallets management functions (promag)
  • #12953 d1d54ae Deprecate accounts (jnewbery)
  • #12909 476cb35 Make fee settings to be non-static members (MarcoFalke)
  • #13002 487dcbe Do not treat bare multisig outputs as IsMine unless watched (sipa)
  • #13028 783bb64 Make vpwallets usage thread safe (promag)
  • #12507 2afdc29 Interrupt rescan on shutdown request (promag)
  • #12729 979150b Get rid of ambiguous OutputType::NONE value (ryanofsky)
  • #13079 5778d44 Fix rescanblockchain rpc to properly report progress (Empact)
  • #12560 e03c0db Upgrade path for non-HD wallets to HD (achow101)
  • #13161 7cc1bd3 Reset BerkeleyDB handle after connection fails (real-or-random)
  • #13081 0dec5b5 Add compile time checking for cs_wallet runtime locking assertions (practicalswift)
  • #13127 19a3a9e Add Clang thread safety annotations for variables guarded by cs_db (practicalswift)
  • #10740 4cfe17c loadwallet RPC - load wallet at runtime (jnewbery)
  • #12924 6738813 Fix hdmaster-key / seed-key confusion (scripted diff) (jnewbery)
  • #13297 d82c5d1 Fix incorrect comment for DeriveNewSeed (jnewbery)
  • #13063 6378eef Use shared pointer to retain wallet instance (promag)
  • #13142 56fe3dc Separate IsMine from solvability (sipa)
  • #13194 fd96d54 Remove template matching and pseudo opcodes (sipa)
  • #13252 c4cc8d9 Refactor ReserveKeyFromKeyPool for safety (Empact)
  • #13058 343d4e4 createwallet RPC - create new wallet at runtime (jnewbery)
  • #13351 2140f6c Prevent segfault when sending to unspendable witness (MarcoFalke)
  • #13060 3f0f394 Remove getlabeladdress RPC (jnewbery)
  • #13111 000abbb Add unloadwallet RPC (promag)
  • #13160 868cf43 Unlock spent outputs (promag)
  • #13498 f54f373 Fixups from account API deprecation (jnewbery)
  • #13491 61a044a Improve handling of INVALID in IsMine (sipa)
  • #13425 028b0d9 Moving final scriptSig construction from CombineSignatures to ProduceSignature (PSBT signer logic) (achow101)
  • #13564 88a15eb loadwallet shouldn’t create new wallets (jnewbery)
  • #12944 619cd29 ScanforWalletTransactions should mark input txns as dirty (instagibbs)
  • #13630 d6b2235 Drop unused pindexRet arg to CMerkleTx::GetDepthInMainChain (Empact)
  • #13566 ad552a5 Fix get balance (jnewbery)
  • #13500 4a3e8c5 Decouple wallet version from client version (achow101)
  • #13712 aba2e66 Fix non-determinism in ParseHDKeypath(…). Avoid using an uninitialized variable in path calculation (practicalswift)
  • #9662 6b6e854 Add createwallet “disableprivatekeys” option: a sane mode for watchonly-wallets (jonasschnelli)
  • #13683 e8c7434 Introduce assertion to document the assumption that cache and cache_used are always set in tandem (practicalswift)
  • #12257 5f7575e Use destination groups instead of coins in coin select (kallewoof)
  • #13773 89a116d Fix accidental use of the comma operator (practicalswift)
  • #13805 c88529a Correctly limit output group size (sdaftuar)
  • #12992 26f59f5 Add wallet name to log messages (PierreRochard)
  • #13667 b81a8a5 Fix backupwallet for multiwallets (domob1812)
  • #13657 51c693d assert to ensure accuracy of CMerkleTx::GetBlocksToMaturity (Empact)
  • #13812 9d86aad sum ancestors rather than taking max in output groups (kallewoof)
  • #13876 8eb9870 Catch filesystem_error and raise InitError (MarcoFalke)
  • #13808 13d51a2 shuffle coins before grouping, where warranted (kallewoof)
  • #13666 2115cba Always create signatures with Low R values (achow101)
  • #13917 0333914 Additional safety checks in PSBT signer (sipa)
  • #13968 65e7a8b couple of walletcreatefundedpsbt fixes (instagibbs)
  • #14055 2307a6e fix walletcreatefundedpsbt deriv paths, add test (instagibbs)
  • RPC and other APIs:
  • #12336 3843780 Remove deprecated rpc options (jnewbery)
  • #12193 5dc00f6 Consistently use UniValue.pushKV instead of push_back(Pair()) (karel-3d) (MarcoFalke)
  • #12409 0cc45ed Reject deprecated reserveChangeKey in fundrawtransaction (MarcoFalke)
  • #10583 8a98dfe Split part of validateaddress into getaddressinfo (achow101)
  • #10579 ffc6e48 Split signrawtransaction into wallet and non-wallet RPC command (achow101)
  • #12494 e4ffcac Declare CMutableTransaction a struct in rawtransaction.h (Empact)
  • #12503 0e26591 createmultisig no longer takes addresses (instagibbs)
  • #12083 228b086 Improve getchaintxstats test coverage (promag)
  • #12479 cd5e438 Add child transactions to getrawmempool verbose output (conscott)
  • #11872 702e8b7 createrawtransaction: Accept sorted outputs (MarcoFalke)
  • #12700 ebdf84c Document RPC method aliasing (ryanofsky)
  • #12727 8ee5c7b Remove unreachable help conditions in rpcwallet.cpp (lutangar)
  • #12778 b648974 Add username and ip logging for RPC method requests (GabrielDav)
  • #12717 ac898b6 rest: Handle utxo retrieval when ignoring the mempool (romanz)
  • #12787 cd99e5b Adjust ifdef to avoid unreachable code (practicalswift)
  • #11742 18815b4 Add testmempoolaccept (MarcoFalke)
  • #12942 fefb817 Drop redundant testing of signrawtransaction prevtxs args (Empact)
  • #11200 5f2a399 Allow for aborting rescans in the GUI (achow101)
  • #12791 3a8a4dc Expose a transaction’s weight via RPC (TheBlueMatt)
  • #12436 6e67754 Adds a functional test to validate the transaction version number in the RPC output (251Labs)
  • #12240 6f8b345 Introduced a new fees structure that aggregates all sub-field fee types denominated in BTC (mryandao)
  • #12321 eac067a p2wsh and p2sh-p2wsh address in decodescript (fivepiece)
  • #13090 17266a1 Remove Safe mode (achow101, laanwj)
  • #12639 7eb7076 Reduce cs_main lock in listunspent (promag)
  • #10267 7b966d9 New -includeconf argument for including external configuration files (kallewoof)
  • #10757 b9551d3 Introduce getblockstats to plot things (jtimon)
  • #13288 a589f53 Remove the need to include rpc/blockchain.cpp in order to put GetDifficulty under test (Empact)
  • #13394 e1f8dce cli: Ignore libevent warnings (theuni)
  • #13439 3f398d7 Avoid “duplicate” return value for invalid submitblock (TheBlueMatt)
  • #13570 a247594 Add new “getzmqnotifications” method (domob1812)
  • #13072 b25a4c2 Update createmultisig RPC to support segwit (ajtowns)
  • #12196 8fceae0 Add scantxoutset RPC method (jonasschnelli)
  • #13557 b654723 BIP 174 PSBT Serializations and RPCs (achow101)
  • #13697 f030410 Support output descriptors in scantxoutset (sipa)
  • #13927 bced8ea Use pushKV in some new PSBT RPCs (domob1812)
  • #13918 a9c56b6 Replace median fee rate with feerate percentiles in getblockstats (marcinja)
  • #13721 9f23c16 Bugfixes for BIP 174 combining and deserialization (achow101)
  • #13960 517010e Fix PSBT deserialization of 0-input transactions (achow101)
  • GUI:
  • #12416 c997f88 Fix Windows build errors introduced in #10498 (practicalswift)
  • #11733 e782099 Remove redundant locks (practicalswift)
  • #12426 bfa3911 Initialize members in WalletModel (MarcoFalke)
  • #12489 e117cfe Bugfix: respect user defined configuration file (-conf) in QT settings (jonasschnelli)
  • #12421 be263fa navigate to transaction history page after send (Sjors)
  • #12580 ce56fdd Show a transaction’s virtual size in its details dialog (dooglus)
  • #12501 c8ea91a Improved “custom fee” explanation in tooltip (randolf)
  • #12616 cff95a6 Set modal overlay hide button as default (promag)
  • #12620 8a43bdc Remove TransactionTableModel::TxIDRole (promag)
  • #12080 56cc022 Add support to search the address book (promag)
  • #12621 2bac3e4 Avoid querying unnecessary model data when filtering transactions (promag)
  • #12721 e476826 remove “new” button during receive-mode in addressbook (jonasschnelli)
  • #12723 310dc61 Qt5: Warning users about invalid-BIP21 URI bitcoin:// (krab)
  • #12610 25cf18f Multiwallet for the GUI (jonasschnelli)
  • #12779 f4353da Remove unused method setupAmountWidget(…) (practicalswift)
  • #12795 68484d6 do not truncate .dat extension for wallets in gui (instagibbs)
  • #12870 1d54004 make clean removes src/qt/moc_ files (Sjors)
  • #13055 bdda14d Don’t log to console by default (laanwj)
  • #13141 57c57df fixes broken link on readme (marcoagner)
  • #12928 ef006d9 Initialize non-static class members that were previously neither initialized where defined nor in constructor (practicalswift)
  • #13158 81c533c Improve sendcoinsdialog readability (marcoagner)
  • #11491 40c34a0 Add proxy icon in statusbar (mess110)
  • #13264 2a7c53b Satoshi unit (GreatSock)
  • #13097 e545503 Support wallets loaded dynamically (promag)
  • #13284 f8be434 fix visual “overflow” of amount input (brandonrninefive)
  • #13275 a315b79 use [default wallet] as name for wallet with no name (jonasschnelli)
  • #13273 3fd0c23 Qt/Bugfix: fix handling default wallet with no name (jonasschnelli)
  • #13341 25d2df2 Stop translating command line options (laanwj)
  • #13043 6e249e4 OptionsDialog: add prune setting (Sjors)
  • #13506 6579d80 load wallet in UI after possible init aborts (jonasschnelli)
  • #13458 dc53f7f Drop qt4 support (laanwj)
  • #13528 b877c39 Move BitcoinGUI initializers to class, fix initializer order warning (laanwj)
  • #13536 baf3a3a coincontrol: Remove unused qt4 workaround (MarcoFalke)
  • #13537 10ffca7 Peer table: Visualize inbound/outbound state for every row (wodry)
  • #13791 2c14c1f Reject dialogs if key escape is pressed (promag)
  • Build system:
  • #12371 c9ca4f6 Add gitian PGP key: akx20000 (ghost)
  • #11966 f4f4f51 clientversion: Use full commit hash for commit-based version descriptions (luke-jr)
  • #12417 ae0fbf0 Upgrade mac_alias to 2.0.7 (droark)
  • #12444 1f055ef gitian: Bump descriptors for (0.)17 (theuni)
  • #12402 59e032b expat 2.2.5, ccache 3.4.1, miniupnpc 2.0.20180203 (fanquake)
  • #12029 daa84b3 Add a makefile target for Doxygen documentation (Ov3rlo4d)
  • #12466 6645eaf Only use D_DARWIN_C_SOURCE when building miniupnpc on darwin (fanquake)
  • #11986 765a3eb zeromq 4.2.3 (fanquake)
  • #12373 f13d756 Add build support for profiling (murrayn)
  • #12631 a312e20 gitian: Alphabetize signing keys & add kallewoof key (kallewoof)
  • #12607 29fad97 Remove ccache (fanquake)
  • #12625 c4219ff biplist 1.0.3 (fanquake)
  • #12666 05042d3 configure: UniValue 1.0.4 is required for pushKV(, bool) (luke-jr)
  • #12678 6324c68 Fix a few compilation issues with Clang 7 and -Werror (vasild)
  • #12692 de6bdfd Add configure options for various -fsanitize flags (eklitzke)
  • #12901 7e23972 Show enabled sanitizers in configure output (practicalswift)
  • #12899 3076993 macOS: Prevent Xcode 9.3 build warnings (AkioNak)
  • #12715 8fd6243 Add ‘make clean’ rule (hkjn)
  • #13133 a024a18 Remove python2 from configure.ac (ken2812221)
  • #13005 cb088b1 Make –enable-debug to pick better options (practicalswift)
  • #13254 092b366 Remove improper qt/moc_* cleaning glob from the general Makefile (Empact)
  • #13306 f5a7733 split warnings out of CXXFLAGS (theuni)
  • #13385 7c7508c Guard against accidental introduction of new Boost dependencies (practicalswift)
  • #13041 5779dc4 Add linter checking for accidental introduction of locale dependence (practicalswift)
  • #13408 70a03c6 crypto: cleanup sha256 build (theuni)
  • #13435 cf7ca60 When build fails due to lib missing, indicate which one (Empact)
  • #13445 8eb76f3 Reset default -g -O2 flags when enable debug (ken2812221)
  • #13465 81069a7 Avoid concurrency issue when make multiple target (ken2812221)
  • #13454 45c00f8 Make sure LC_ALL=C is set in all shell scripts (practicalswift)
  • #13480 31145a3 Avoid copies in range-for loops and add a warning to detect them (theuni)
  • #13486 66e1a08 Move rpc/util.cpp from libbitcoin-util to libbitcoin-server (ken2812221)
  • #13580 40334c7 Detect if char equals int8_t (ken2812221)
  • #12788 287e4ed Tune wildcards for LIBSECP256K1 target (kallewoof)
  • #13611 b55f0c3 bugfix: Use __cpuid_count for gnu C to avoid gitian build fail (ken2812221)
  • #12971 a6d14b1 Upgrade Qt to 5.9.6 (TheCharlatan)
  • #13543 6c6a300 Add RISC-V support (laanwj)
  • #13177 dcb154e GCC-7 and glibc-2.27 back compat code (ken2812221)
  • #13659 90b1c7e add missing leveldb defines (theuni)
  • #13368 c0f1569 Update gitian-build.sh for docker (achow101)
  • #13171 19d8ca5 Change gitian-descriptors to use bionic instead (ken2812221)
  • #13604 75bea05 Add depends 32-bit arm support for bitcoin-qt (TheCharlatan)
  • #13623 9cdb19f Migrate gitian-build.sh to python (ken2812221)
  • #13689 8c36432 disable Werror when building zmq (greenaddress)
  • #13617 cf7f9ae release: Require macos 10.10+ (fanquake)
  • #13750 c883653 use MacOS friendly sed syntax in qt.mk (Sjors)
  • #13095 415f2bf update ax_boost_chrono/unit_test_framework (fanquake)
  • #13732 e8ffec6 Fix Qt’s rcc determinism (Fuzzbawls)
  • #13782 8284f1d Fix osslsigncode compile issue in gitian-build (ken2812221)
  • #13696 2ab7208 Add aarch64 qt depends support for cross compiling bitcoin-qt (TheCharlatan)
  • #13705 b413ba0 Add format string linter (practicalswift)
  • #14000 48c8459 fix qt determinism (theuni)
  • #14018 3e4829a Bugfix: NSIS: Exclude Makefile* from docs (luke-jr)
  • #12906 048ac83 Avoid interface keyword to fix windows gitian build (ryanofsky)
  • #13314 a9b6957 Fix FreeBSD build by including utilstrencodings.h (laanwj)
  • Tests and QA:
  • #12252 8d57319 Require all tests to follow naming convention (ajtowns)
  • #12295 935eb8d Enable flake8 warnings for all currently non-violated rules (practicalswift)
  • #11858 b4d8549 Prepare tests for Windows (MarcoFalke)
  • #11771 2dbc4a4 Change invalidtxrequest to use BitcoinTestFramework (jnewbery)
  • #12200 d09968f Bind functional test nodes to 127.0.0.1 (Sjors)
  • #12425 26dc2da Add some script tests (richardkiss)
  • #12455 23481fa Fix bip68 sequence test to reflect updated rpc error message (Empact)
  • #12477 acd1e61 Plug memory leaks and stack-use-after-scope (MarcoFalke)
  • #12443 07090c5 Move common args to bitcoin.conf (MarcoFalke)
  • #12570 39dcac2 Add test cases for HexStr (std::reverse_iterator and corner cases) (kostaz)
  • #12582 6012f1c Fix ListCoins test failure due to unset g_wallet_allow_fallback_fee (ryanofsky)
  • #12516 7f99964 Avoid unintentional unsigned integer wraparounds in tests (practicalswift)
  • #12512 955fd23 Don’t test against the mempool min fee information in mempool_limit.py (Empact)
  • #12600 29088b1 Add a test for large tx output scripts with segwit input (richardkiss)
  • #12627 791c3ea Fix some tests to work on native windows (MarcoFalke)
  • #12405 0f58d7f travis: Full clone for git subtree check (MarcoFalke)
  • #11772 0630974 Change invalidblockrequest to use BitcoinTestFramework (jnewbery)
  • #12681 1846296 Fix ComputeTimeSmart test failure with -DDEBUG_LOCKORDER (ryanofsky)
  • #12682 9f04c8e travis: Clone depth 1 unless $check_doc (MarcoFalke)
  • #12710 00d1680 Append scripts to new test_list array to fix bad assignment (jeffrade)
  • #12720 872c921 Avoiding ‘file’ function name from python2 (jeffrade)
  • #12728 4ba3d4f rename TestNode to TestP2PConn in tests (jnewbery)
  • #12746 2405ce1 Remove unused argument max_invalid from check_estimates(…) (practicalswift)
  • #12718 185d484 Require exact match in assert_start_raises_init_eror (jnewbery, MarcoFalke)
  • #12076 6d36f59 Use node.datadir instead of tmpdir in test framework (MarcoFalke)
  • #12772 b43aba8 ci: Bump travis timeout for make check to 50m (jnewbery)
  • #12806 18606eb Fix function names in feature_blocksdir (MarcoFalke)
  • #12811 0d8fc8d Make summary row bold-red if any test failed and show failed tests at end of table (laanwj)
  • #12790 490644d Use blockmaxweight where tests previously had blockmaxsize (conscott)
  • #11773 f0f9732 Change feature_block.py to use BitcoinTestFramework (jnewbery)
  • #12839 40f4baf Remove travis checkout depth (laanwj)
  • #11817 2a09a78 Change feature_csv_activation.py to use BitcoinTestFramework (jnewbery)
  • #12284 fa5825d Remove assigned but never used local variables. Enable Travis checking for unused local variables (practicalswift)
  • #12719 9beded5 Add note about test suite naming convention in developer-notes.md (practicalswift)
  • #12861 c564424 Stop feature_block.py from blowing up memory (jnewbery)
  • #12851 648252e travis: Run verify-commits only on cron jobs (MarcoFalke)
  • #12853 2106c4c Match full plain text by default (MarcoFalke)
  • #11818 9a2db3b I accidentally (deliberately) killed it (the ComparisonTestFramework) (jnewbery)
  • #12766 69310a3 Tidy up REST interface functional tests (romanz)
  • #12849 83c7533 Add logging in loops in p2p_sendhears.py (ccdle12)
  • #12895 d6f10b2 Add note about test suite name uniqueness requirement to developer notes (practicalswift)
  • #12856 27278df Add Metaclass for BitcoinTestFramework (WillAyd)
  • #12918 6fc5a05 Assert on correct variable (kallewoof)
  • #11878 a04440f Add Travis check for duplicate includes (practicalswift)
  • #12917 cf8073f Windows fixups for functional tests (MarcoFalke)
  • #12926 dd1ca9e Run unit tests in parallel (sipa)
  • #12920 b1fdfc1 Fix sign for expected values (kallewoof)
  • #12947 979f598 Wallet hd functional test speedup and clarification (instagibbs)
  • #12993 0d69921 Remove compatibility code not needed now when we’re on Python 3 (practicalswift)
  • #12996 6a278e0 Remove redundant bytes(…) calls (practicalswift)
  • #12949 6b46288 Avoid copies of CTransaction (MarcoFalke)
  • #13007 0d12570 Fix dangling wallet pointer in vpwallets (promag)
  • #13048 cac6d11 Fix feature_block flakiness (jnewbery)
  • #12510 d5b2e98 Add rpc_bind test to default-run tests (laanwj)
  • #13022 896a9d0 Attach node index to test_node AssertionError and print messages (jamesob)
  • #13024 018c7e5 Add rpcauth pair that generated by rpcauth.py (ken2812221)
  • #13013 a0079d4 bench: Amend mempool_eviction test for witness txs (MarcoFalke)
  • #13051 e074097 Normalize executable location (MarcoFalke)
  • #13056 106d929 Make rpcauth.py testable and add unit tests (nixbox)
  • #13073 a785bc3 add rpcauth-test to AC_CONFIG_LINKS to fix out-of-tree make check (laanwj)
  • #12830 25ad2f7 Clarify address book error messages, add tests (jamesob)
  • #13082 24106a8 don’t test against min relay fee information in mining_prioritisetransaction.py (kristapsk)
  • #13003 8d045a0 Add test for orphan handling (MarcoFalke)
  • #13105 9e9b48d Add –failfast option to functional test runner (jamesob)
  • #13130 3186ad4 Fix race in rpc_deprecated.py (jnewbery)
  • #13136 baf6b4e Fix flake8 warnings in several wallet functional tests (jnewbery)
  • #13094 bf9b03d Add test for 64-bit Windows PE, modify 32-bit test results (ken2812221)
  • #13183 9458b05 travis: New travis job for check_docs steps (glaksmono)
  • #12265 1834d4d fundrawtransaction: lock watch-only shared address (kallewoof)
  • #13188 4a50ec0 Remove unused option –srcdir (MarcoFalke)
  • #12755 612ba35 Better stderr testing (jnewbery)
  • #13198 196c5a9 Avoid printing to console during cache creation (sdaftuar)
  • #13075 cb9bbf7 Remove ‘account’ API from wallet functional tests (jnewbery)
  • #13221 ffa86af travis: Rename the build stage check_doc to lint (practicalswift)
  • #13205 3cbd25f Remove spurious error log in p2p_segwit.py (jnewbery)
  • #13291 536120e Don’t include torcontrol.cpp into the test file (Empact)
  • #13281 2ac6315 Move linters to test/lint, add readme (MarcoFalke)
  • #13215 f8a29ca travis: Build tests on ubuntu 18.04 with docker (ken2812221)
  • #13349 24f7011 bench: Don’t return a bool from main (laanwj)
  • #13347 87a9d03 travis: Skip cache for lint stage (MarcoFalke)
  • #13355 0b1c0c4 Fix “gmake check” under OpenBSD 6.3 (probably *BSD): Avoid using GNU grep specific regexp handling (practicalswift)
  • #13353 d4f6dac Fixup setting of PATH env var (MarcoFalke)
  • #13352 e24bf1c Avoid checking reject code for now (MarcoFalke)
  • #13383 2722a1f bench: Use non-throwing parsedouble(…) instead of throwing boost::lexical_cast(…) (practicalswift)
  • #13367 264efdc Increase includeconf test coverage (MarcoFalke)
  • #13404 3d3d8ae speed up of tx_validationcache_tests by reusing of CTransaction (lucash-dev)
  • #13421 531a033 Remove portseed_offset from test runner (MarcoFalke)
  • #13440 5315660 Log as utf-8 (MarcoFalke)
  • #13066 fa4b906 Migrate verify-commits script to python, run in travis (ken2812221)
  • #13447 4b1edd3 travis: Increase travis_wait time while verifying commits (ken2812221)
  • #13350 f532d52 Add logging to provide anchor points when debugging p2p_sendheaders (lmanners)
  • #13406 4382f19 travis: Change mac goal to all deploy (ken2812221)
  • #13457 b222138 Drop variadic macro (MarcoFalke)
  • #13512 3a45493 mininode: Expose connection state through is_connected (MarcoFalke)
  • #13496 9ab4c2a Harden lint-filenames.sh (wodry)
  • #13219 08516e0 bench: Add block assemble benchmark (MarcoFalke)
  • #13530 b1dc39d bench: Add missing pow.h header (laanwj)
  • #12686 2643fa5 Add -ftrapv to CFLAGS and CXXFLAGS when –enable-debug is used. Enable -ftrapv in Travis (practicalswift)
  • #12882 d96bdd7 Make test_bitcoin pass under ThreadSanitzer (clang). Fix lock-order-inversion (potential deadlock) (practicalswift)
  • #13535 2328039 wallet_basic: Specify minimum required amount for listunspent (MarcoFalke)
  • #13551 c93c360 Fix incorrect documentation for test case cuckoocache_hit_rate_ok (practicalswift)
  • #13563 b330f3f bench: Simplify coinselection (promag)
  • #13517 a6ed99a Remove need to handle the network thread in tests (MarcoFalke)
  • #13522 686e97a Fix p2p_sendheaders race (jnewbery)
  • #13467 3dc2dcf Make p2p_segwit easier to debug (jnewbery)
  • #13598 0212187 bench: Fix incorrect behaviour in prevector.cpp (AkioNak)
  • #13565 b05ded1 Fix AreInputsStandard test to reference the proper scriptPubKey (Empact)
  • #13145 d3dae3d Use common getPath method to create temp directory in tests (winder)
  • #13645 2ea7eb6 skip rpc_zmq functional test as necessary (jamesob)
  • #13626 8f1106d Fix some TODOs in p2p_segwit (MarcoFalke)
  • #13138 8803c91 Remove accounts from wallet_importprunedfunds.py (jnewbery)
  • #13663 cbc9b50 Avoid read/write to default datadir (MarcoFalke)
  • #13682 f8a32a3 bench: Remove unused variable (practicalswift)
  • #13638 6fcdb5e Use MAX_SCRIPT_ELEMENT_SIZE from script.py (domob1812)
  • #13687 9d26b69 travis: Check that ~/.bitcoin is never created (MarcoFalke)
  • #13715 e1260a7 fixes mininode’s P2PConnection sending messages on closing transport (marcoagner)
  • #13729 aa9429a travis: Avoid unnecessarily setting env variables on the lint build (Empact)
  • #13747 ab28b5b Skip P2PConnection’s is_closing() check when not available (domob1812)
  • #13650 7a9bca6 travis: Don’t store debug info if –enable-debug is set (ken2812221)
  • #13711 f98d1e0 bench: Add benchmark for unserialize prevector (AkioNak)
  • #13771 365384f travis: Retry to fetch docker image (MarcoFalke)
  • #13806 4d550ff Fix bench/block_assemble assert failure (jamesob)
  • #13779 d25079a travis: Improve readability of travis.yml and log outputs (scravy)
  • #13822 0fb9c87 bench: Make coinselection output groups pass eligibility filter (achow101)
  • #13247 e83d82a Add tests to SingleThreadedSchedulerClient() and document the memory model (skeees)
  • #13811 660abc1 travis: Run bench_bitcoin once (MarcoFalke)
  • #13837 990e182 Extract rpc_timewait as test param (MarcoFalke)
  • #13851 9c4324d fix locale for lint-shell (scravy)
  • #13823 489b51b quote path in authproxy for external multiwallets (MarcoFalke)
  • #13849 2b67354 travis: Use only travis jobs: instead of mix of jobs+matrix (scravy)
  • #13859 2384323 Add emojis to test_runner path and wallet filename (MarcoFalke)
  • #13916 8ac7125 wait_for_verack by default (MarcoFalke)
  • #13669 f66e1c7 Cleanup create_transaction implementations (conscott)
  • #13924 09ada21 Simplify comparison in rpc_blockchain.py (domob1812)
  • #13913 a08533c Remove redundant checkmempool/checkblockindex extra_args (MarcoFalke)
  • #13915 a04888a Add test for max number of entries in locator (MarcoFalke)
  • #13867 1b04b55 Make extended tests pass on native Windows (MarcoFalke)
  • #13944 0df7a6c Port usage of deprecated optparse module to argparse module (Kvaciral)
  • #13928 b8eb0df blocktools enforce named args for amount (MarcoFalke)
  • #13054 bffb35f Enable automatic detection of undefined names in Python tests scripts. Remove wildcard imports (practicalswift)
  • #14069 cf3d7f9 Use assert not BOOST_CHECK_* from multithreaded tests (skeees)
  • #14071 fab0fbe Stop txindex thread before calling destructor (MarcoFalke)
  • Miscellaneous:
  • #11909 8897135 contrib: Replace developer keys with list of pgp fingerprints (MarcoFalke)
  • #12394 fe53d5f gitian-builder.sh: fix –setup doc, since lxc is default (Sjors)
  • #12468 294a766 Add missing newline in init.cpp log message (Aesti)
  • #12308 dcfe218 contrib: Add support for out-of-tree builds in gen-manpages.sh (laanwj)
  • #12451 aae64a2 Bump leveldb subtree (MarcoFalke)
  • #12527 d77b4a7 gitian-build.sh: fix signProg being recognized as two parameters (ken2812221)
  • #12588 d74b01d utils: Remove deprecated pyzmq call from python zmq example (kosciej)
  • #10271 bc67982 Use std::thread::hardware_concurrency, instead of Boost, to determine available cores (fanquake)
  • #12097 14475e2 scripts: Lint-whitespace: use perl instead of grep -p (Sjors)
  • #12098 17c44b2 scripts: Lint-whitespace: add param to check last n commits (Sjors)
  • #11900 842f61a script: Simplify checkminimalpush checks, add safety assert (instagibbs)
  • #12567 bb98aec util: Print timestamp strings in logs using iso 8601 formatting (practicalswift)
  • #12572 d8d9162 script: Lint-whitespace: find errors more easily (AkioNak)
  • #10694 ae5bcc7 Remove redundant code in MutateTxSign(CMutableTransaction&, const std::string&) (practicalswift)
  • #12659 3d16f58 Improve Fatal LevelDB Log Messages (eklitzke)
  • #12643 0f0229d util: Remove unused sync_chain (MarcoFalke)
  • #12102 7fb8fb4 Apply hardening measures in bitcoind systemd service file (Flowdalic)
  • #12652 55f490a bitcoin-cli: Provide a better error message when bitcoind is not running (practicalswift)
  • #12630 c290508 Provide useful error message if datadir is not writable (murrayn)
  • #11881 624bee9 Remove Python2 support (jnewbery)
  • #12821 082e26c contrib: Remove unused import string (MarcoFalke)
  • #12829 252c1b0 Python3 fixup (jnewbery)
  • #12822 ff48f62 Revert 7deba93bdc76616011a9f493cbc203d60084416f and fix expired-key-sigs properly (TheBlueMatt)
  • #12820 5e53b80 contrib: Fix check-doc script regexes (MarcoFalke)
  • #12713 4490871 Track negated options in the option parser (eklitzke)
  • #12708 b2e5fe8 Make verify-commits.sh test that merges are clean (sipa)
  • #12891 3190785 logging: Add lint-logs.sh to check for newline termination (jnewbery)
  • #12923 a7cbe38 util: Pass pthread_self() to pthread_setschedparam instead of 0 (laanwj)
  • #12871 fb17fae Add shell script linting: Check for shellcheck warnings in shell scripts (practicalswift)
  • #12970 5df84de logging: Bypass timestamp formatting when not logging (theuni)
  • #12987 fe8fa22 tests/tools: Enable additional Python flake8 rules for automatic linting via Travis (practicalswift)
  • #12972 0782508 Add python3 script shebang lint (ken2812221)
  • #13004 58bbc55 Print to console by default when not run with -daemon (practicalswift)
  • #13039 8b4081a Add logging and error handling for file syncing (laanwj)
  • #13020 4741ca5 Consistently log CValidationState on call failure (Empact)
  • #13031 826acc9 Fix for utiltime to compile with msvc (sipsorcery)
  • #13119 81743b5 Remove script to clean up datadirs (MarcoFalke)
  • #12954 5a66642 util: Refactor logging code into a global object (jimpo)
  • #12769 35eb9d6 Add systemd service to bitcoind in debian package (ghost)
  • #13146 0bc980b rpcauth: Make it possible to provide a custom password (laanwj)
  • #13148 b62b437 logging: Fix potential use-after-free in logprintstr(…) (practicalswift)
  • #13214 0612d96 Enable Travis checking for two Python linting rules we are currently not violating (practicalswift)
  • #13197 6826989 util: Warn about ignored recursive -includeconf calls (kallewoof)
  • #13176 d9ebb63 Improve CRollingBloomFilter performance: replace modulus with FastMod (martinus)
  • #13228 d792e47 Add script to detect circular dependencies between source modules (sipa)
  • #13320 e08c130 Ensure gitian-build.sh uses bash (jhfrontz)
  • #13301 e4082d5 lint: Add linter to error on #include (Empact)
  • #13374 56f6936 utils and libraries: checking for bitcoin address in translations (kaplanmaxe)
  • #13230 7c32b41 Simplify include analysis by enforcing the developer guide’s include syntax (practicalswift)
  • #13450 32bf4c6 Add linter: Enforce the source code file naming convention described in the developer notes (practicalswift)
  • #13479 fa2ea37 contrib: Fix cve-2018-12356 by hardening the regex (loganaden)
  • #13448 a90ca40 Add linter: Make sure we explicitly open all text files using UTF-8 encoding in Python (practicalswift)
  • #13494 d67eff8 Follow-up to #13454: Fix broken build by exporting LC_ALL=C (practicalswift)
  • #13510 03f3925 Scripts and tools: Obsolete #!/bin/bash shebang (DesWurstes)
  • #13577 c9eb8d1 logging: Avoid nstart may be used uninitialized in appinitmain warning (mruddy)
  • #13603 453ae5e bitcoin-tx: Stricter check for valid integers (domob1812)
  • #13118 c05c93c RPCAuth Detection in Logs (Linrono)
  • #13647 4027ec1 Scripts and tools: Fix BIND_NOW check in security-check.py (conradoplg)
  • #13692 f5d166a contrib: Clone core repo in gitian-build (MarcoFalke)
  • #13699 4c6d1b9 contrib: Correct version check (kallewoof)
  • #13695 dcc0cff lint: Add linter for circular dependencies (Empact)
  • #13733 0d1ebf4 utils: Refactor argsmanager a little (AtsukiTak)
  • #13714 29b4ee6 contrib: Add lxc network setup for bionic host (ken2812221)
  • #13764 f8685f4 contrib: Fix test-security-check fail in ubuntu 18.04 (ken2812221)
  • #13809 77168f7 contrib: Remove debian and rpm subfolder (MarcoFalke)
  • #13799 230652c Ignore unknown config file options; warn instead of error (sipa)
  • #13894 df9f712 shutdown: Stop threads before resetting ptrs (MarcoFalke)
  • #13925 71dec5c Merge leveldb subtree (MarcoFalke)
  • #13939 ef86f26 lint: Make format string linter understand basic template parameter syntax (practicalswift)
  • #14105 eb202ea util: Report parse errors in configuration file (laanwj)
  • #12604 9903537 Add DynamicMemoryUsage() to CDBWrapper to estimate LevelDB memory use (eklitzke)
  • #12495 047865e Increase LevelDB max_open_files (eklitzke)
  • #12784 e80716d Fix bug in memory usage calculation (unintended integer division) (practicalswift)
  • #12618 becd8dd Set SCHED_BATCH priority on the loadblk thread (eklitzke)
  • #12854 5ca1509 Add P2P, Network, and Qt categories to the desktop icon (luke-jr)
  • #11862 4366f61 Network specific conf sections (ajtowns)
  • #13441 4a7e64f Prevent shared conf files from failing with different available options in different binaries (achow101)
  • #13471 5eca4e8 For AVX2 code, also check for AVX, XSAVE, and OS support (sipa)
  • #13503 c655b2c Document FreeBSD quirk. Fix FreeBSD build: Use std::min(…) to allow for compilation under certain FreeBSD versions (practicalswift)
  • #13725 07ce278 Fix bitcoin-cli –version (Empact)
  • Documentation:
  • #12306 216f9a4 Improvements to UNIX documentation (axvr)
  • #12309 895fbd7 Explain how to update chainTxData in release process (laanwj)
  • #12317 85123be Document method for reviewers to verify chainTxData (jnewbery)
  • #12331 d32528e Properly alphabetize output of CLI –help option (murrayn)
  • #12322 c345148 Remove step making cloned repository world-writable for Windows build (murrayn)
  • #12354 b264528 add gpg key for fivepiece (fivepiece)
  • #11761 89005dd initial QT documentation (Sjors)
  • #12232 fdc2188 Improve “Turn Windows Features On or Off” step (MCFX2)
  • #12487 4528f74 init: Remove translation for -blockmaxsize option help (laanwj)
  • #12546 a4a5fc7 Minor improvements to Compatibility Notes (randolf)
  • #12434 21e2670 dev-notes: Members should be initialized (MarcoFalke)
  • #12452 71f56da clarified systemd installation instructions in init.md for Ubuntu users (DaveFromBinary)
  • #12615 1f93491 allow for SIGNER containing spaces (ken2812221)
  • #12603 85424d7 PeerLogicValidation interface (jamesob)
  • #12581 12ac2f0 Mention configure without wallet in FreeBSD instructions (dbolser)
  • #12619 8a709fb Give hint about gitian not able to download (kallewoof)
  • #12668 de2fcaa do update before fetching packages in WSL build guide (nvercamm)
  • #12586 e7721e6 Update osx brew install instruction (fanquake)
  • #12760 7466a26 Improve documentation on standard communication channels (jimpo)
  • #12797 0415b1e init: Fix help message for checkblockindex (MarcoFalke)
  • #12800 2d97611 Add note about our preference for scoped enumerations (“enum class”) (practicalswift)
  • #12798 174d016 Refer to witness reserved value as spec. in the BIP (MarcoFalke)
  • #12759 d3908e2 Improve formatting of developer notes (eklitzke)
  • #12877 2b54155 Use bitcoind in Tor documentation (knoxcard)
  • #12896 b15485e Fix conflicting statements about initialization in developer notes (practicalswift)
  • #12850 319991d add qrencode to brew install instructions (buddilla)
  • #12007 cd8e45b Clarify the meaning of fee delta not being a fee rate in prioritisetransaction RPC (honzik666)
  • #12927 06ead15 fixed link, replaced QT with Qt (trulex)
  • #12852 ebd786b devtools: Setup ots git integration (MarcoFalke)
  • #12933 3cf76c2 Refine header include policy (MarcoFalke)
  • #12951 6df0c6c Fix comment in FindForkInGlobalIndex (jamesob)
  • #12982 a63b4e3 Fix inconsistent namespace formatting guidelines (ryanofsky)
  • #13026 9b3a67e Fix include comment in src/interfaces/wallet.h (promag)
  • #13012 d1e3c5e Add comments for chainparams.h, validation.cpp (jamesob)
  • #13064 569e381 List support for BIP173 in bips.md (sipa)
  • #12997 646b7f6 build-windows: Switch to Artful, since Zesty is EOL (MarcoFalke)
  • #12384 c5f7efe Add version footnote to tor.md (Willtech)
  • #13165 627c376 Mention good first issue list in CONTRIBUTING.md (fanquake)
  • #13295 fb77310 Update OpenBSD build instructions for OpenBSD 6.3 (practicalswift)
  • #13340 3a8e3f4 remove leftover check-doc documentation (fanquake)
  • #13346 60f0358 update bitcoin-dot-org links in release-process.md (fanquake)
  • #13372 f014933 split FreeBSD build instructions out of build-unix.md (steverusso)
  • #13366 861de3b Rename “OS X” to the newer “macOS” convention (giulio92)
  • #13369 f8bcef3 update transifex doc link (mess110)
  • #13312 b22115d Add a note about the source code filename naming convention (practicalswift)
  • #13460 1939536 Remove note to install all boost dev packages (MarcoFalke)
  • #13476 9501938 Fix incorrect shell quoting in FreeBSD build instructions (murrayn)
  • #13402 43fa355 Document validationinterace callback blocking deadlock potential (TheBlueMatt)
  • #13488 d6cf4bd Improve readability of “Squashing commits” (wodry)
  • #13531 ee02deb Clarify that mempool txiter is const_iterator (MarcoFalke)
  • #13418 01f9098 More precise explanation of parameter onlynet (wodry)
  • #13592 1756cb4 Modify policy to not translate command-line help (ken2812221)
  • #13588 b77c38e Improve doc of options addnode, connect, seednode (wodry)
  • #13614 17e9106 Update command line help for -printtoconsole and -debuglogfile (satwo, fanquake)
  • #13605 8cc048e corrected text to reflect new(er) process of specifying fingerprints (jhfrontz)
  • #13481 b641f60 Rewrite some validation docs as lock annotations (MarcoFalke)
  • #13680 30640f8 Remove outdated comment about miner ignoring CPFP (jamesob)
  • #13625 7146672 Add release notes for -printtoconsole and -debuglogfile changes (satwo)
  • #13718 f7f574d Specify preferred Python string formatting technique (masonicboom)
  • #12764 10b9a81 Remove field in getblocktemplate help that has never been used (conscott)
  • #13742 d2186b3 Adjust bitcoincore.org links (MarcoFalke)
  • #13706 94dd89e Minor improvements to release-process.md (MitchellCash)
  • #13775 ef4fac0 Remove newlines from error message (practicalswift)
  • #13803 feb7dd9 add note to contributor docs about warranted PR’s (kallewoof)
  • #13814 67af7ef Add BIP174 to list of implemented BIPs (sipa)
  • #13835 c1cba35 Fix memory consistency model in comment (skeees)
  • #13824 aa30e4b Remove outdated net comment (MarcoFalke)
  • #13853 317477a correct versions in dependencies.md (fanquake)
  • #13872 37ab117 Reformat -help output for help2man (real-or-random)
  • #13717 8c3c402 Link to python style guidelines from developer notes (masonicboom)
  • #13895 1cd5f2c fix GetWarnings docs to reflect behavior (Empact)
  • #13911 3e3a50a Revert translated string change, clarify wallet log messages (PierreRochard)
  • #13908 d6faea4 upgrade rescan time warning from minutes to >1 hour (masonicboom)
  • #13905 73a09b4 fixed bitcoin-cli -help output for help2man (hebasto)
  • #14100 2936dbc Change documentation for =0 for non-boolean options (laanwj)
  • #14096 465a583 Add reference documentation for descriptors language (sipa)
  • #12757 0c5f67b Clarify include guard naming convention (practicalswift)
  • #13844 d3325b0 Correct the help output for -prune (hebasto)

New in Bitcoin Core 0.16.3 (Dec 21, 2020)

  • Consensus:
  • #14249 696b936 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar)
  • RPC and other APIs:
  • #13547 212ef1f Make signrawtransaction* give an error when amount is needed but missing (ajtowns)
  • Miscellaneous:
  • #13655 1cdbea7 bitcoinconsensus: invalid flags error should be set to bitcoinconsensus_err (afk11)
  • Documentation:
  • #13844 11b9dbb correct the help output for -prune (hebasto)

New in Bitcoin Core 0.16.2 (Dec 21, 2020)

  • Wallet:
  • #13622 c04a4a5 Remove mapRequest tracking that just effects Qt display. (TheBlueMatt)
  • #12905 cfc6f74 [rpcwallet] Clamp walletpassphrase value at 100M seconds (sdaftuar)
  • #13437 ed82e71 wallet: Erase wtxOrderd wtx pointer on removeprunedfunds (MarcoFalke)
  • RPC and other APIs:
  • #13451 cbd2f70 rpc: expose CBlockIndex::nTx in getblock(header) (instagibbs)
  • #13507 f7401c8 RPC: Fix parameter count check for importpubkey (kristapsk)
  • #13452 6b9dc8c rpc: have verifytxoutproof check the number of txns in proof structure (instagibbs)
  • #12837 bf1f150 rpc: fix type mistmatch in listreceivedbyaddress (joemphilips)
  • #12743 657dfc5 Fix csBestBlock/cvBlockChange waiting in rpc/mining (sipa)
  • GUI:
  • #12432 f78e7f6 [qt] send: Clear All also resets coin control options (Sjors)
  • #12617 21dd512 gui: Show messages as text not html (laanwj)
  • #12793 cf6feb7 qt: Avoid reseting on resetguisettigs=0 (MarcoFalke)
  • Build system:
  • #13544 9fd3e00 depends: Update Qt download url (fanquake)
  • #12573 88d1a64 Fix compilation when compiler do not support __builtin_clz* (532479301)
  • Tests and QA:
  • #13061 170b309 Make tests pass after 2020 (bmwiedemann)
  • #13192 79c4fff [tests] Fixed intermittent failure in p2p_sendheaders.py (lmanners)
  • #13300 d9c5630 qa: Initialize lockstack to prevent null pointer deref (MarcoFalke)
  • #13545 e15e3a9 tests: Fix test case streams_serializedata_xor Remove Boost dependency. (practicalswift)
  • #13304 cbdabef qa: Fix wallet_listreceivedby race (MarcoFalke)
  • Miscellaneous:
  • #12887 2291774 Add newlines to end of log messages (jnewbery)
  • #12859 18b0c69 Bugfix: Include for std::unique_ptr (luke-jr)
  • #13131 ce8aa54 Add Windows shutdown handler (ken2812221)
  • #13652 20461fc rpc: Fix that CWallet::AbandonTransaction would leave the grandchildren, etc. active (Empact)

New in Bitcoin Core 0.16.1 (Jun 17, 2018)

  • Miner block size removed:
  • The -blockmaxsize option for miners to limit their blocks’ sizes was deprecated in version 0.15.1, and has now been removed. Miners should use the -blockmaxweight option if they want to limit the weight of their blocks’ weights.
  • More details on this release are available at:
  • https://bitcoin.org/en/release/v0.16.1

New in Bitcoin Core 0.15.1 (Dec 7, 2017)

  • Mining:
  • #11100 7871a7d Fix confusing blockmax{size,weight} options, dont default to throwing away money (TheBlueMatt)
  • RPC and other APIs:
  • #10859 2a5d099 gettxout: Slightly improve doc and tests (jtimon)
  • #11267 b1a6c94 update cli for estimate*fee argument rename (laanwj)
  • #11483 20cdc2b Fix importmulti bug when importing an already imported key (pedrobranco)
  • #9937 a43be5b Prevent dumpwallet from overwriting files (laanwj)
  • #11465 405e069 Update named args documentation for importprivkey (dusty-wil)
  • #11131 b278a43 Write authcookie atomically (laanwj)
  • #11565 7d4546f Make listsinceblock refuse unknown block hash (ryanofsky)
  • #11593 8195cb0 Work-around an upstream libevent bug (theuni)
  • P2P protocol and network code:
  • #11397 27e861a Improve and document SOCKS code (laanwj)
  • #11252 0fe2a9a When clearing addrman clear mapInfo and mapAddr (instagibbs)
  • #11527 a2bd86a Remove my testnet DNS seed (schildbach)
  • #10756 0a5477c net processing: swap out signals for an interface class (theuni)
  • #11531 55b7abf Check that new headers are not a descendant of an invalid block (more effeciently) (TheBlueMatt)
  • #11560 49bf090 Connect to a new outbound peer if our tip is stale (sdaftuar)
  • #11568 fc966bb Disconnect outbound peers on invalid chains (sdaftuar)
  • #11578 ec8dedf Add missing lock in ProcessHeadersMessage(…) (practicalswift)
  • #11456 6f27965 Replace relevant services logic with a function suite (TheBlueMatt)
  • #11490 bf191a7 Disconnect from outbound peers with bad headers chains (sdaftuar)
  • Validation:
  • #10357 da4908c Allow setting nMinimumChainWork on command line (sdaftuar)
  • #11458 2df65ee Don’t process unrequested, low-work blocks (sdaftuar)
  • Build system:
  • #11440 b6c0209 Fix validationinterface build on super old boost/clang (TheBlueMatt)
  • #11530 265bb21 Add share/rpcuser to dist. source code archive (MarcoFalke)
  • GUI:
  • #11334 19d63e8 Remove custom fee radio group and remove nCustomFeeRadio setting (achow101)
  • #11198 7310f1f Fix display of package name on ‘open config file’ tooltip (esotericnonsense)
  • #11015 6642558 Add delay before filtering transactions (lclc)
  • #11338 6a62c74 Backup former GUI settings on -resetguisettings (laanwj)
  • #11335 8d13b42 Replace save restoreWindowGeometry with Qt functions (MeshCollider)
  • #11237 2e31b1d Fixing division by zero in time remaining (MeshCollider)
  • #11247 47c02a8 Use IsMine to validate custom change address (MarcoFalke)
  • Wallet:
  • #11017 9e8aae3 Close DB on error (kallewoof)
  • #11225 6b4d9f2 Update stored witness in AddToWallet (sdaftuar)
  • #11126 2cb720a Acquire cs_main lock before cs_wallet during wallet initialization (ryanofsky)
  • #11476 9c8006d Avoid opening copied wallet databases simultaneously (ryanofsky)
  • #11492 de7053f Fix leak in CDB constructor (promag)
  • #11376 fd79ed6 Ensure backupwallet fails when attempting to backup to source file (tomasvdw)
  • #11326 d570aa4 Fix crash on shutdown with invalid wallet (MeshCollider)
  • Tests and QA:
  • #11399 a825d4a Fix bip68-sequence rpc test (jl2012)
  • #11150 847c75e Add getmininginfo test (mess110)
  • #11407 806c78f add functional test for mempoolreplacement command line arg (instagibbs)
  • #11433 e169349 Restore bitcoin-util-test py2 compatibility (MarcoFalke)
  • #11308 2e1ac70 zapwallettxes: Wait up to 3s for mempool reload (MarcoFalke)
  • #10798 716066d test bitcoin-cli (jnewbery)
  • #11443 019c492 Allow “make cov” out-of-tree; Fix rpc mapping check (MarcoFalke)
  • #11445 51bad91 0.15.1 Backports (MarcoFalke)
  • #11319 2f0b30a Fix error introduced into p2p-segwit.py, and prevent future similar errors (sdaftuar)
  • #10552 e4605d9 Tests for zmqpubrawtx and zmqpubrawblock (achow101)
  • #11067 eeb24a3 TestNode: Add wait_until_stopped helper method (MarcoFalke)
  • #11068 5398f20 Move wait_until to util (MarcoFalke)
  • #11125 812c870 Add bitcoin-cli -stdin and -stdinrpcpass functional tests (promag)
  • #11077 1d80d1e fix timeout issues from TestNode (jnewbery)
  • #11078 f1ced0d Make p2p-leaktests.py more robust (jnewbery)
  • #11210 f3f7891 Stop test_bitcoin-qt touching ~/.bitcoin (MeshCollider)
  • #11234 f0b6795 Remove redundant testutil.cpp h files (MeshCollider)
  • #11215 cef0319 fixups from set_test_params() (jnewbery)
  • #11345 f9cf7b5 Check connectivity before sending in assumevalid.py (jnewbery)
  • #11091 c276c1e Increase initial RPC timeout to 60 seconds (laanwj)
  • #10711 fc2aa09 Introduce TestNode (jnewbery)
  • #11230 d8dd8e7 Fixup dbcrash interaction with add_nodes() (jnewbery)
  • #11241 4424176 Improve signmessages functional test (mess110)
  • #11116 2c4ff35 Unit tests for script/standard and IsMine functions (jimpo)
  • #11422 a36f332 Verify DBWrapper iterators are taking snapshots (TheBlueMatt)
  • #11121 bb5e7cb TestNode tidyups (jnewbery)
  • #11521 ca0f3f7 travis: move back to the minimal image (theuni)
  • #11538 adbc9d1 Fix race condition failures in replace-by-fee.py, sendheaders.py (sdaftuar)
  • #11472 4108879 Make tmpdir option an absolute path, misc cleanup (MarcoFalke)
  • #10853 5b728c8 Fix RPC failure testing (again) (jnewbery)
  • #11310 b6468d3 Test listwallets RPC (mess110)
  • Miscellaneous:
  • #11377 75997c3 Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds (TheBlueMatt)
  • #11437 dea3b87 [Docs] Update Windows build instructions for using WSL and Ubuntu 17.04 (fanquake)
  • #11318 8b61aee Put back inadvertently removed copyright notices (gmaxwell)
  • #11442 cf18f42 [Docs] Update OpenBSD Build Instructions for OpenBSD 6.2 (fanquake)
  • #10957 50bd3f6 Avoid returning a BIP9Stats object with uninitialized values (practicalswift)
  • #11539 01223a0 [verify-commits] Allow revoked keys to expire (TheBlueMatt)

New in Bitcoin Core 0.15.0 (Sep 18, 2017)

  • RPC and other APIs:
  • #9485 61a640e ZMQ example using python3 and asyncio (mcelrath)
  • #9894 0496e15 remove ‘label’ filter for rpc command help (instagibbs)
  • #9853 02bd6e9 Fix error codes from various RPCs (jnewbery)
  • #9842 598ef9c Fix RPC failure testing (continuation of #9707) (jnewbery)
  • #10038 d34995a Add mallocinfo mode to getmemoryinfo RPC (laanwj)
  • #9500 3568b30 [Qt/RPC] Autocomplete commands for ‘help’ command in debug console (achow101)
  • #10056 e6156a0 [zmq] Call va_end() on va_start()ed args (kallewoof)
  • #10086 7438cea Trivial: move rpcserialversion into RPC option group (jlopp)
  • #10150 350b224 [rpc] Add logging rpc (jnewbery)
  • #10208 393160c [wallet] Rescan abortability (kallewoof)
  • #10143 a987def [net] Allow disconnectnode RPC to be called with node id (jnewbery)
  • #10281 0e8499c doc: Add RPC interface guidelines (laanwj)
  • #9733 d4732f3 Add getchaintxstats RPC (sipa)
  • #10310 f4b15e2 [doc] Add hint about getmempoolentry to getrawmempool help (kallewoof)
  • #8704 96c850c [RPC] Transaction details in getblock (achow101)
  • #8952 9390845 Add query options to listunspent RPC call (pedrobranco)
  • #10413 08ac35a Fix docs (there’s no rpc command setpaytxfee) (RHavar)
  • #8384 e317c0d Add witness data output to TxInError messages (instagibbs)
  • #9571 4677151 RPC: getblockchaininfo returns BIP signaling statistics (pinheadmz)
  • #10450 ef2d062 Fix bumpfee rpc “errors” return value (ryanofsky)
  • #10475 39039b1 [RPC] getmempoolinfo mempoolminfee is a BTC/KB feerate (instagibbs)
  • #10478 296928e rpc: Add listen address to incoming connections in getpeerinfo (laanwj)
  • #10403 08d0390 Fix importmulti failure to return rescan errors (ryanofsky)
  • #9740 9fec4da Add friendly output to dumpwallet (aideca)
  • #10426 16f6c98 Replace bytes_serialized with bogosize (sipa)
  • #10252 980deaf RPC/Mining: Restore API compatibility for prioritisetransaction (luke-jr)
  • #9672 46311e7 Opt-into-RBF for RPC & bitcoin-tx (luke-jr)
  • #10481 9c248e3 Decodehextx scripts sanity check (achow101)
  • #10488 fa1f106 Note that the prioritizetransaction dummy value is deprecated, and has no meaning (TheBlueMatt)
  • #9738 c94b89e gettxoutproof() should return consistent result (jnewbery)
  • #10191 00350bd [trivial] Rename unused RPC arguments ‘dummy’ (jnewbery)
  • #10627 b62b4c8 fixed listunspent rpc convert parameter (tnakagawa)
  • #10412 bef02fb Improve wallet rescan API (ryanofsky)
  • #10400 1680ee0 [RPC] Add an uptime command that displays the amount of time (in seconds) bitcoind has been running (rvelhote)
  • #10683 d81bec7 rpc: Move the generate RPC call to rpcwallet (laanwj)
  • #10710 30bc0f6 REST/RPC example update (Mirobit)
  • #10747 9edda0c [rpc] fix verbose argument for getblock in bitcoin-cli (jnewbery)
  • #10589 104f5f2 More economical fee estimates for RBF and RPC options to control (morcos)
  • #10543 b27b004 Change API to estimaterawfee (morcos)
  • #10807 afd2fca getbalance example covers at least 6 confirms (instagibbs)
  • #10707 75b5643 Better API for estimatesmartfee RPC (morcos)
  • #10784 9e8d6a3 Do not allow users to get keys from keypool without reserving them (TheBlueMatt)
  • #10857 d445a2c [RPC] Add a deprecation warning to getinfo’s output (achow101)
  • #10571 adf170d [RPC]Move transaction combining from signrawtransaction to new RPC (achow101)
  • #10783 041dad9 [RPC] Various rpc argument fixes (instagibbs)
  • #9622 6ef3c7e [rpc] listsinceblock should include lost transactions when parameter is a reorg’d block (kallewoof)
  • #10799 8537187 Prevent user from specifying conflicting parameters to fundrawtx (TheBlueMatt)
  • #10931 0b11a07 Fix misleading “Method not found” multiwallet errors (ryanofsky)
  • #10788 f66c596 [RPC] Fix addwitnessaddress by replacing ismine with producesignature (achow101)
  • #10999 627c3c0 Fix amounts formatting in decoderawtransaction (laanwj)
  • #11002 4268426 [wallet] return correct error code from resendwallettransaction (jnewbery)
  • #11029 96a63a3 [RPC] trivial: gettxout no longer shows version of tx (FelixWeis)
  • #11083 6c2b008 Fix combinerawtransaction RPC help result section (jonasnick)
  • #11027 07164bb [RPC] Only return hex field once in getrawtransaction (achow101)
  • #10698 5af6572 Be consistent in calling transactions “replaceable” for Opt-In RBF (TheBlueMatt)
  • Block and transaction handling:
  • #9801 a8c5751 Removed redundant parameter from mempool.PrioritiseTransaction (gubatron)
  • #9819 1efc99c Remove harmless read of unusued priority estimates (morcos)
  • #9822 b7547fa Remove block file location upgrade code (benma)
  • #9602 30ff3a2 Remove coin age priority and free transactions - implementation (morcos)
  • #9548 47510ad Remove min reasonable fee (morcos)
  • #10249 c73af54 Switch CCoinsMap from boost to std unordered_map (sipa)
  • #9966 2a183de Control mempool persistence using a command line parameter (jnewbery)
  • #10199 318ea50 Better fee estimates (morcos)
  • #10196 bee3529 Bugfix: PrioritiseTransaction updates the mempool tx counter (sdaftuar)
  • #10195 1088b02 Switch chainstate db and cache to per-txout model (sipa)
  • #10284 c2ab38b Always log debug information for fee calculation in CreateTransaction (morcos)
  • #10503 efbcf2b Use REJECT_DUPLICATE for already known and conflicted txn (sipa)
  • #10537 b3eb0d6 Few Minor per-utxo assert-semantics re-adds and tweak (TheBlueMatt)
  • #10626 8c841a3 doc: Remove outdated minrelaytxfee comment (MarcoFalke)
  • #10559 234ffc6 Change semantics of HaveCoinInCache to match HaveCoin (morcos)
  • #10581 7878353 Simplify return values of GetCoin/HaveCoin(InCache) (sipa)
  • #10684 a381f6a Remove no longer used mempool.exists(outpoint) (morcos)
  • #10148 d4e551a Use non-atomic flushing with block replay (sipa)
  • #10685 30c2130 Clarify CCoinsViewMemPool documentation (TheBlueMatt)
  • #10558 90a002e Address nits from per-utxo change (morcos)
  • #10706 6859ad2 Improve wallet fee logic and fix GUI bugs (morcos)
  • #10526 754aa02 Force on-the-fly compaction during pertxout upgrade (sipa)
  • #10985 d896d5c Add undocumented -forcecompactdb to force LevelDB compactions (sipa)
  • #10292 e4bbd3d Improved efficiency in COutPoint constructors (mm-s)
  • #10290 8d6d43e Add -stopatheight for benchmarking (sipa)
  • P2P protocol and network code:
  • #9726 7639d38 netbase: Do not print an error on connection timeouts through proxy (laanwj)
  • #9805 5b583ef Add seed.btc.petertodd.org to mainnet DNS seeds (petertodd)
  • #9861 22f609f Trivial: Debug log ambiguity fix for peer addrs (keystrike)
  • #9774 90cb2a2 Enable host lookups for -proxy and -onion parameters (jmcorgan)
  • #9558 7b585cf Clarify assumptions made about when BlockCheck is called (TheBlueMatt)
  • #10135 e19586a [p2p] Send the correct error code in reject messages (jnewbery)
  • #9665 eab00d9 Use cached [compact] blocks to respond to getdata messages (TheBlueMatt)
  • #10215 a077a90 Check interruptNet during dnsseed lookups (TheBlueMatt)
  • #10234 faf2dea [net] listbanned RPC and QT should show correct banned subnets (jnewbery)
  • #10134 314ebdf [qa] Fixes segwit block relay test after inv-direct-fetch was disabled (sdaftuar)
  • #10351 3f57c55 removed unused code in INV message (Greg-Griffith)
  • #10061 ae78609 [net] Added SetSocketNoDelay() utility function (tjps)
  • #10408 28c6e8d Net: Improvements to Tor control port parser (str4d)
  • #10460 5c63d66 Broadcast address every day, not 9 hours (sipa)
  • #10471 400fdd0 Denote functions CNode::GetRecvVersion() and CNode::GetRefCount() as const (pavlosantoniou)
  • #10345 67700b3 [P2P] Timeout for headers sync (sdaftuar)
  • #10564 8d9f45e Return early in IsBanned (gmaxwell)
  • #10587 de8db47 Net: Fix resource leak in ReadBinaryFile(…) (practicalswift)
  • #9549 b33ca14 [net] Avoid possibility of NULL pointer dereference in MarkBlockAsInFlight(…) (practicalswift)
  • #10446 2772dc9 net: avoid extra dns query per seed (theuni)
  • #10824 9dd6a2b Avoid unnecessary work in SetNetworkActive (promag)
  • #10948 df3a6f4 p2p: Hardcoded seeds update pre-0.15 branch (laanwj)
  • #10977 02f4c4a [net] Fix use of uninitialized value in getnetworkinfo(const JSONRPCRequest&) (practicalswift)
  • #10982 c8b62c7 Disconnect network service bits 6 and 8 until Aug 1, 2018 (TheBlueMatt)
  • #11012 0e5cff6 Make sure to clean up mapBlockSource if we’ve already seen the block (theuni)
  • Validation:
  • #9725 67023e9 CValidationInterface Cleanups (TheBlueMatt)
  • #10178 2584925 Remove CValidationInterface::UpdatedTransaction (TheBlueMatt)
  • #10201 a6548a4 pass Consensus::Params& to functions in validation.cpp and make them static (mariodian)
  • #10297 431a548 Simplify DisconnectBlock arguments/return value (sipa)
  • #10464 f94b7d5 Introduce static DoWarning (simplify UpdateTip) (jtimon)
  • #10569 2e7d8f8 Fix stopatheight (achow101)
  • #10192 2935b46 Cache full script execution results in addition to signatures (TheBlueMatt)
  • #10179 21ed30a Give CValidationInterface Support for calling notifications on the CScheduler Thread (TheBlueMatt)
  • #10557 66270a4 Make check to distinguish between orphan txs and old txs more efficient (morcos)
  • #10775 7c2400c nCheckDepth chain height fix (romanornr)
  • #10821 16240f4 Add SSE4 optimized SHA256 (sipa)
  • #10854 04d395e Avoid using sizes on non-fixed-width types to derive protocol constants (gmaxwell)
  • #10945 2a50b11 Update defaultAssumeValid according to release-process.md (gmaxwell)
  • #10986 2361208 Update chain transaction statistics (sipa)
  • #11028 6bdf4b3 Avoid masking of difficulty adjustment errors by checkpoints (sipa)
  • #9533 cb598cf Allow non-power-of-2 signature cache sizes (sipa)
  • #9208 acd9957 Improve DisconnectTip performance (sdaftuar)
  • #10618 f90603a Remove confusing MAX_BLOCK_BASE_SIZE (gmaxwell)
  • #10758 bd92424 Fix some chainstate-init-order bugs (TheBlueMatt)
  • #10550 b7296bc Don’t return stale data from CCoinsViewCache::Cursor() (ryanofsky)
  • #10998 2507fd5 Fix upgrade cancel warnings (TheBlueMatt)
  • #9868 cbdb473 Abstract out the command line options for block assembly (sipa)
  • Build system:
  • #9727 5f0556d Remove fallbacks for boost_filesystem < v3 (laanwj)
  • #9788 50a2265 gitian: bump descriptors for master (theuni)
  • #9794 7ca2f54 Minor update to qrencode package builder (mitchellcash)
  • #9514 2cc0df1 release: Windows signing script (theuni)
  • #9921 8b789d8 build: Probe MSG_DONTWAIT in the same way as MSG_NOSIGNAL (laanwj)
  • #10011 32d1b34 build: Fix typo s/HAVE_DONTWAIT/HAVE_MSG_DONTWAIT (laanwj)
  • #9946 90dd9e6 Fix build errors if spaces in path or parent directory (pinheadmz)
  • #10136 81da4c7 build: Disable Wshadow warning (laanwj)
  • #10166 64962ae Ignore Doxyfile generated from Doxyfile.in template (paveljanik)
  • #10239 0416ea9 Make Boost use std::atomic internally (sipa)
  • #10228 27faa6c build: regenerate bitcoin-config.h as necessary (theuni)
  • #10273 8979f45 [scripts] Minor improvements to macdeployqtplus script (chrisgavin)
  • #10325 a26280b 0.15.0 Depends Updates (fanquake)
  • #10328 79aeff6 Update contrib/debian to latest Ubuntu PPA upload (TheBlueMatt)
  • #7522 d25449f Bugfix: Only use git for build info if the repository is actually the right one (luke-jr)
  • #10489 e654d61 build: silence gcc7’s implicit fallthrough warning (theuni)
  • #10549 ad1a13e Avoid printing generic and duplicated “checking for QT” during ./configure (drizzt)
  • #10628 8465b68 [depends] expat 2.2.1 (fanquake)
  • #10806 db825d2 build: verify that the assembler can handle crc32 functions (theuni)
  • #10766 b4d03be Building Environment: Set ARFLAGS to cr (ReneNyffenegger)
  • #10803 91edda8 Explicitly search for bdb5.3 (pstratem)
  • #10855 81560b0 random: only use getentropy on openbsd (theuni)
  • #10508 1caafa6 Run Qt wallet tests on travis (ryanofsky)
  • #10851 e222618 depends: fix fontconfig with newer glibc (theuni)
  • #10971 88b1e4b build: fix missing sse42 in depends builds (theuni)
  • #11097 129b03f gitian: quick hack to fix version string in releases (theuni)
  • #10039 919aaf6 Fix compile errors with Qt 5.3.2 and Boost 1.55.0 (ryanofsky)
  • #10168 7032021 Fix build warning from #error text (jnewbery)
  • #10301 318392c Check if sys/random.h is required for getentropy (jameshilliard)
  • GUI:
  • #9724 1a9fd5c Qt/Intro: Add explanation of IBD process (luke-jr)
  • #9834 b00ba62 qt: clean up initialize/shutdown signals (benma)
  • #9481 ce01e62 [Qt] Show more significant warning if we fall back to the default fee (jonasschnelli)
  • #9974 b9f930b Add basic Qt wallet test (ryanofsky)
  • #9690 a387d3a Change ‘Clear’ button string to ‘Reset’ (da2x)
  • #9592 9c7b7cf [Qt] Add checkbox in the GUI to opt-in to RBF when creating a transaction (ryanofsky)
  • #10098 2b477e6 Make qt wallet test compatible with qt4 (ryanofsky)
  • #9890 1fa4ae6 Add a button to open the config file in a text editor (ericshawlinux)
  • #10156 51833a1 Fix for issues with startup and multiple monitors on windows (AllanDoensen)
  • #10177 de01da7 Changed “Send” button default status from true to false (KibbledJiveElkZoo)
  • #10221 e96486c Stop treating coinbase outputs differently in GUI: show them at 1conf (TheBlueMatt)
  • #10231 987a6c0 [Qt] Reduce a significant cs_main lock freeze (jonasschnelli)
  • #10242 f6f3b58 [qt] Don’t call method on null WalletModel object (ryanofsky)
  • #10093 a3e756b [Qt] Don’t add arguments of sensitive command to console window (jonasschnelli)
  • #10362 95546c8 [GUI] Add OSX keystroke to RPCConsole info (spencerlievens)
  • #9697 962cd3f [Qt] simple fee bumper with user verification (jonasschnelli)
  • #10390 e477516 [wallet] remove minimum total fee option (instagibbs)
  • #10420 4314544 Add Qt tests for wallet spends & bumpfee (ryanofsky)
  • #10454 c1c9a95 Fix broken q4 test build (ryanofsky)
  • #10449 64beb13 Overhaul Qt fee bumper (jonasschnelli)
  • #10582 7c72fb9 Pass in smart fee slider value to coin control dialog (morcos)
  • #10673 4c72cc3 [qt] Avoid potential null pointer dereference in TransactionView::exportClicked() (practicalswift)
  • #10769 8fdd23a [Qt] replace fee slider with a Dropdown, extend conf. targets (jonasschnelli)
  • #10870 412b466 [Qt] Use wallet 0 in rpc console if running with multiple wallets (jonasschnelli)
  • #10988 a9dd111 qt: Increase BLOCK_CHAIN_SIZE constants (laanwj)
  • #10644 e292140 Slightly overhaul NSI pixmaps (jonasschnelli)
  • #10660 0c3542e Allow to cancel the txdb upgrade via splashscreen keypress ‘q’ (jonasschnelli)
  • Wallet:
  • #9359 f7ec7cf Add test for CWalletTx::GetImmatureCredit() returning stale values (ryanofsky)
  • #9576 56ab672 [wallet] Remove redundant initialization (practicalswift)
  • #9333 fa625b0 Document CWalletTx::mapValue entries and remove erase of nonexistent “version” entry (ryanofsky)
  • #9906 72fb515 Disallow copy constructor CReserveKeys (instagibbs)
  • #9369 3178b2c Factor out CWallet::nTimeSmart computation into a method (ryanofsky)
  • #9830 afcd7c0 Add safe flag to listunspent result (NicolasDorier)
  • #9993 c49355c Initialize nRelockTime (pstratem)
  • #9818 3d857f3 Save watch only key timestamps when reimporting keys (ryanofsky)
  • #9294 f34cdcb Use internal HD chain for change outputs (hd split) (jonasschnelli)
  • #10164 e183ea2 Wallet: reduce excess logic InMempool() (kewde)
  • #10186 c9ff4f8 Remove SYNC_TRANSACTION_NOT_IN_BLOCK magic number (jnewbery)
  • #10226 64c45aa wallet: Use boost to more portably ensure -wallet specifies only a filename (luke-jr)
  • #9827 c91ca0a Improve ScanForWalletTransactions return value (ryanofsky)
  • #9951 fa1ac28 Wallet database handling abstractions/simplifications (laanwj)
  • #10265 c29a0d4 [wallet/moveonly] Check non-null pindex before potentially referencing (kallewoof)
  • #10283 a550f6e Cleanup: reduce to one GetMinimumFee call signature (morcos)
  • #10294 e2b99b1 [Wallet] unset change position when there is no change (instagibbs)
  • #10115 d3dce0e Avoid reading the old hd master key during wallet encryption (TheBlueMatt)
  • #10341 18c9deb rpc/wallet: Workaround older UniValue which returns a std::string temporary for get_str (luke-jr)
  • #10308 94e5227 [wallet] Securely erase potentially sensitive keys/values (tjps)
  • #10257 ea1fd43 [test] Add test for getmemoryinfo (jimmysong)
  • #10295 ce8176d [qt] Move some WalletModel functions into CWallet (ryanofsky)
  • #10506 7cc2c67 Fix bumpfee test after #10449 (ryanofsky)
  • #10500 098b01d Avoid CWalletTx copies in GetAddressBalances and GetAddressGroupings (ryanofsky)
  • #10455 0747d33 Simplify feebumper minimum fee code slightly (ryanofsky)
  • #10522 2805d60 [wallet] Remove unused variables (practicalswift)
  • #8694 177433a Basic multiwallet support (luke-jr)
  • #10598 7a74f88 Supress struct/class mismatch warnings introduced in #10284 (paveljanik)
  • #9343 209eef6 Don’t create change at dust limit (morcos)
  • #10744 ed88e31 Use method name via func macro (darksh1ne)
  • #10712 e8b9523 Add change output if necessary to reduce excess fee (morcos)
  • #10816 1c011ff Properly forbid -salvagewallet and -zapwallettxes for multi wallet (morcos)
  • #10235 5cfdda2 Track keypool entries as internal vs external in memory (TheBlueMatt)
  • #10330 bf0a08b [wallet] fix zapwallettxes interaction with persistent mempool (jnewbery)
  • #10831 0b01935 Batch flushing operations to the walletdb during top up and increase keypool size (gmaxwell)
  • #10795 7b6e8bc No longer ever reuse keypool indexes (TheBlueMatt)
  • #10849 bde4f93 Multiwallet: simplest endpoint support (jonasschnelli)
  • #10817 9022aa3 Redefine Dust and add a discard_rate (morcos)
  • #10883 bf3b742 Rename -usewallet to -rpcwallet (morcos)
  • #10604 420238d [wallet/tests] Add listwallets RPC, include wallet name in getwalletinfo and add multiwallet test (jnewbery)
  • #10885 70888a3 Reject invalid wallets (promag)
  • #10949 af56397 Clarify help message for -discardfee (morcos)
  • #10942 2e857bb Eliminate fee overpaying edge case when subtracting fee from recipients (morcos)
  • #10995 fa64636 Fix resendwallettransactions assert failure if -walletbroadcast=0 (TheBlueMatt)
  • #11022 653a46d Basic keypool topup (jnewbery)
  • #11081 9fe1f6b Add length check for CExtKey deserialization (jonasschnelli, guidovranken)
  • #11044 4ef8374 [wallet] Keypool topup cleanups (jnewbery)
  • #11145 e51bb71 Fix rounding bug in calculation of minimum change (morcos)
  • #9605 779f2f9 Use CScheduler for wallet flushing, remove ThreadFlushWalletDB (TheBlueMatt)
  • #10108 4e3efd4 ApproximateBestSubset should take inputs by reference, not value (RHavar)
  • Tests and QA:
  • #9744 8efd1c8 Remove unused module from rpc-tests (34ro)
  • #9657 7ff4a53 Improve rpc-tests.py (jnewbery)
  • #9766 7146d96 Add –exclude option to rpc-tests.py (jnewbery)
  • #9577 d6064a8 Fix docstrings in qa tests (jnewbery)
  • #9823 a13a417 qa: Set correct path for binaries in rpc tests (MarcoFalke)
  • #9847 6206252 Extra test vector for BIP32 (sipa)
  • #9350 88c2ae3 [Trivial] Adding label for amount inside of tx_valid/tx_invalid.json (Christewart)
  • #9888 36afd4d travis: Verify commits only for one target (MarcoFalke)
  • #9904 58861ad test: Fail if InitBlockIndex fails (laanwj)
  • #9828 67c5cc1 Avoid -Wshadow warnings in wallet_tests (ryanofsky)
  • #9832 48c3429 [qa] assert_start_raises_init_error (NicolasDorier)
  • #9739 9d5fcbf Fix BIP68 activation test (jnewbery)
  • #9547 d32581c bench: Assert that division by zero is unreachable (practicalswift)
  • #9843 c78adbf Fix segwit getblocktemplate test (jnewbery)
  • #9929 d5ce14e tests: Delete unused function _rpchost_to_args (laanwj)
  • #9555 19be26a [test] Avoid reading a potentially uninitialized variable in tx_invalid-test (transaction_tests.cpp) (practicalswift)
  • #9945 ac23a7c Improve logging in bctest.py if there is a formatting mismatch (jnewbery)
  • #9768 8910b47 [qa] Add logging to test_framework.py (jnewbery)
  • #9972 21833f9 Fix extended rpc tests broken by #9768 (jnewbery)
  • #9977 857d1e1 QA: getblocktemplate_longpoll.py should always use >0 fee tx (sdaftuar)
  • #9970 3cc13ea Improve readability of segwit.py, smartfees.py (sdaftuar)
  • #9497 2c781fb CCheckQueue Unit Tests (JeremyRubin)
  • #10024 9225de2 [trivial] Use log.info() instead of print() in remaining functional test cases (jnewbery)
  • #9956 3192e52 Reorganise qa directory (jnewbery)
  • #10017 02d64bd combine_logs.py - aggregates log files from multiple bitcoinds during functional tests (jnewbery)
  • #10047 dfef6b6 [tests] Remove unused variables and imports (practicalswift)
  • #9701 a230b05 Make bumpfee tests less fragile (ryanofsky)
  • #10053 ca20923 [test] Allow functional test cases to be skipped (jnewbery)
  • #10052 a0b1e57 [test] Run extended tests once daily in Travis (jnewbery)
  • #10069 1118493 [QA] Fix typo in fundrawtransaction test (NicolasDorier)
  • #10083 c044f03 [QA] Renaming rawTx into rawtx (NicolasDorier)
  • #10073 b1a4f27 Actually run assumevalid.py (jnewbery)
  • #9780 c412fd8 Suppress noisy output from qa tests in Travis (jnewbery)
  • #10096 79af9fb Check that all test scripts in test/functional are being run (jnewbery)
  • #10076 5b029aa [qa] combine_logs: Use ordered list for logfiles (MarcoFalke)
  • #10107 f2734c2 Remove unused variable. Remove accidental trailing semicolons in Python code (practicalswift)
  • #10109 8ac8041 Remove SingleNodeConnCB (jnewbery)
  • #10114 edc62c9 [tests] sync_with_ping should assert that ping hasn’t timed out (jnewbery)
  • #10128 427d2fd Speed Up CuckooCache tests (JeremyRubin)
  • #10072 12af74b Remove sources of unreliablility in extended functional tests (jnewbery)
  • #10077 ebfd653 [qa] Add setnetworkactive smoke test (MarcoFalke)
  • #10152 080d7c7 [trivial] remove unused line in Travis config (jnewbery)
  • #10159 df1ca9e [tests] color test results and sort alphabetically (jnewbery)
  • #10124 88799ea [test] Suppress test logging spam (jnewbery)
  • #10142 ed09dd3 Run bitcoin_test-qt under minimal QPA platform (ryanofsky)
  • #9949 a27dbc5 [bench] Avoid function call arguments which are pointers to uninitialized values (practicalswift)
  • #10187 b44adf9 tests: Fix test_runner return value in case of skipped test (laanwj)
  • #10197 d86bb07 [tests] Functional test warnings (jnewbery)
  • #10219 9111df9 Tests: Order Python Tests Differently (jimmysong)
  • #10229 f3db4c6 Tests: Add test for getdifficulty (jimmysong)
  • #10224 2723bcd [test] Add test for getaddednodeinfo (jimmysong)
  • #10023 c530c15 [tests] remove maxblocksinflight.py (functionality covered by other test) (jnewbery)
  • #10097 1b25b6d Move zmq test skipping logic into individual test case (jnewbery)
  • #10272 54e2d87 [Tests] Prevent warning: variable ‘x’ is uninitialized (paveljanik)
  • #10225 e0a7e19 [test] Add aborttrescan tests (kallewoof)
  • #10278 8254a8a [test] Add Unit Test for GetListenPort (jimmysong)
  • #10280 47535d7 [test] Unit test amount.h/amount.cpp (jimmysong)
  • #10256 80c3a73 [test] Add test for gettxout to wallet.py (jimmysong)
  • #10264 492d22f [test] Add tests for getconnectioncount, getnettotals and ping (jimmysong)
  • #10169 8f3e384 [tests] Remove func test code duplication (jnewbery)
  • #10198 dc8fc0c [tests] Remove is_network_split from functional test framework (jnewbery)
  • #10255 3c5e6c9 [test] Add test for listaddressgroupings (jimmysong)
  • #10137 75171f0 Remove unused import. Remove accidental trailing semicolons (practicalswift)
  • #10307 83073de [tests] allow zmq test to be run in out-of-tree builds (jnewbery)
  • #10344 e927483 [tests] Fix abandonconflict.py intermittency (jnewbery)
  • #10318 170bc2c [tests] fix wait_for_inv() (jnewbery)
  • #10171 fff72de [tests] Add node methods to test framework (jnewbery)
  • #10352 23d78c4 test: Add elapsed time to RPC tracing (laanwj)
  • #10342 6a796b2 [tests] Improve mempool_persist test (jnewbery)
  • #10287 776ba23 [tests] Update Unit Test for addrman.h/addrman.cpp (jimmysong)
  • #10365 7ee5236 [tests] increase timeouts in sendheaders test (jnewbery)
  • #10361 f6241b3 qa: disablewallet: Check that wallet is really disabled (MarcoFalke)
  • #10371 4b766fc [tests] Clean up addrman_tests.cpp (jimmysong)
  • #10253 87abe20 [test] Add test for getnetworkhashps (jimmysong)
  • #10376 8bd16ee [tests] fix disconnect_ban intermittency (jnewbery)
  • #10374 5411997 qa: Warn when specified test is not found (MarcoFalke)
  • #10405 0542978 tests: Correct testcase in script_tests.json for large number OP_EQUAL (laanwj)
  • #10429 6b99daf tests: fix spurious addrman test failure (theuni)
  • #10433 8e57256 [tests] improve tmpdir structure (jnewbery)
  • #10415 217b416 [tests] Speed up fuzzing by ~200x when using afl-fuzz (practicalswift)
  • #10445 b4b057a Add test for empty chain and reorg consistency for gettxoutsetinfo (gmaxwell)
  • #10423 1aefc94 [tests] skipped tests should clean up after themselves (jnewbery)
  • #10359 329fc1d [tests] functional tests should call BitcoinTestFramework start/stop node methods (jnewbery)
  • #10514 e103b3f Bugfix: missing == 0 after randrange (sipa)
  • #10515 c871f32 [test] Add test for getchaintxstats (jimmysong)
  • #10509 bea5b00 Remove xvfb configuration from travis (ryanofsky)
  • #10535 30853e1 [qa] fundrawtx: Fix shutdown race (MarcoFalke)
  • #9909 300f8e7 tests: Add FindEarliestAtLeast test for edge cases (ryanofsky)
  • #10331 75e898c Share config between util and functional tests (jnewbery)
  • #10321 e801084 Use FastRandomContext for all tests (sipa)
  • #10524 6c2d81f [tests] Remove printf(…) (practicalswift)
  • #10547 71ab6e5 [tests] Use FastRandomContext instead of boost::random::{mt19937,uniform_int_distribution} (practicalswift)
  • #10551 6702617 [Tests] Wallet encryption functional tests (achow101)
  • #10555 643fa0b [tests] various improvements to zmq_test.py (jnewbery)
  • #10533 d083bd9 [tests] Use cookie auth instead of rpcuser and rpcpassword (achow101)
  • #10632 c68a9a6 qa: Add stopatheight test (MarcoFalke)
  • #10636 4bc853b [qa] util: Check return code after closing bitcoind proc (MarcoFalke)
  • #10662 e0a7801 Initialize randomness in benchmarks (achow101)
  • #10612 7c87a9c The young person’s guide to the test_framework (jnewbery)
  • #10659 acb1153 [qa] blockchain: Pass on closed connection during generate call (MarcoFalke)
  • #10690 416af3e [qa] Bugfix: allow overriding extra_args in ComparisonTestFramework (sdaftuar)
  • #10556 65cc7aa Move stop/start functions from utils.py into BitcoinTestFramework (jnewbery)
  • #10704 dd07f47 [tests] nits in dbcrash.py (jnewbery)
  • #10743 be82498 [test] don’t run dbcrash.py on Travis (jnewbery)
  • #10761 d3b5870 [tests] fix replace_by_fee.py (jnewbery)
  • #10759 1d4805c Fix multi_rpc test for hosts that dont default to utf8 (TheBlueMatt)
  • #10190 e4f226a [tests] mining functional tests (including regression test for submitblock) (jnewbery)
  • #10739 1fc783f test: Move variable state down where it is used (paveljanik)
  • #9980 fee0d80 Fix mem access violation merkleblock (Christewart)
  • #10893 0c173a1 [QA] Avoid running multiwallet.py twice (jonasschnelli)
  • #10927 9d5e8f9 test: Make sure wallet.backup is created in temp path (laanwj)
  • #10899 f29d5db [test] Qt: Use _putenv_s instead of setenv on Windows builds (brianmcmichael)
  • #10912 5c8eb79 [tests] Fix incorrect memory_cleanse(…) call in crypto_tests.cpp (practicalswift)
  • #11001 fa8a063 [tests] Test disconnecting unsupported service bits logic (jnewbery)
  • #10695 929fd72 [qa] Rewrite BIP65/BIP66 functional tests (sdaftuar)
  • #10963 ecd2135 [bench] Restore format state of cout after printing with std::fixed/setprecision (practicalswift)
  • #11025 e5d26e4 qa: Fix inv race in example_test (MarcoFalke)
  • #10765 2c811e0 Tests: address placement should be deterministic by default (ReneNyffenegger)
  • #11000 ac016e1 test: Add resendwallettransactions functional tests (promag)
  • #11032 aeb3175 [qa] Fix block message processing error in sendheaders.py (sdaftuar)
  • #10105 0b9fb68 [tests] fixup - make all Travis test runs quiet, non just cron job runs (jnewbery)
  • #10222 6ce7337 [tests] test_runner - check unicode (jnewbery)
  • #10327 35da2ae [tests] remove import-abort-rescan.py (jnewbery)
  • #11023 bf74d37 [tests] Add option to attach a python debugger if functional test fails (jnewbery)
  • #10565 8c2098a [coverage] Remove subtrees and benchmarks from coverage report (achow101)
  • Miscellaneous:
  • #9871 be8ba2c Add a tree sha512 hash to merge commits (sipa)
  • #9821 d19d45a util: Specific GetOSRandom for Linux/FreeBSD/OpenBSD (laanwj)
  • #9903 ba80a68 Docs: add details to -rpcclienttimeout doc (ian-kelling)
  • #9910 53c300f Docs: correct and elaborate -rpcbind doc (ian-kelling)
  • #9905 01b7cda [contrib] gh-merge: Move second sha512 check to the end (MarcoFalke)
  • #9880 4df8213 Verify Tree-SHA512s in merge commits, enforce sigs are not SHA1 (TheBlueMatt)
  • #9932 00c13ea Fix verify-commits on travis and always check top commit’s tree (TheBlueMatt)
  • #9952 6996e06 Add historical release notes for 0.14.0 (laanwj)
  • #9940 fa99663 Fix verify-commits on OSX, update for new bad Tree-SHA512, point travis to different keyservers (TheBlueMatt)
  • #9963 8040ae6 util: Properly handle errors during log message formatting (laanwj)
  • #9984 cce056d devtools: Make github-merge compute SHA512 from git, instead of worktree (laanwj)
  • #9995 8bcf934 [doc] clarify blockchain size and pruning (askmike)
  • #9734 0c17afc Add updating of chainTxData to release process (sipa)
  • #10063 530fcbd add missing spaces so that markdown recognizes headline (flack)
  • #10085 db1ae54 Docs: remove ‘noconnect’ option (jlopp)
  • #10090 8e4f7e7 Update bitcoin.conf with example for pruning (coinables)
  • #9424 1a5aaab Change LogAcceptCategory to use uint32_t rather than sets of strings (gmaxwell)
  • #10036 fbf36ca Fix init README format to render correctly on github (jlopp)
  • #10058 a2cd0b0 No need to use OpenSSL malloc/free (tjps)
  • #10123 471ed00 Allow debug logs to be excluded from specified component (jnewbery)
  • #10104 fadf078 linearize script: Option to use RPC cookie (achow101)
  • #10162 a3a2160 [trivial] Log calls to getblocktemplate (jnewbery)
  • #10155 928695b build: Deduplicate version numbers (laanwj)
  • #10211 a86255b [doc] Contributor fixes & new “finding reviewers” section (kallewoof)
  • #10250 1428f30 Fix some empty vector references (sipa)
  • #10270 95f5e44 Remove Clang workaround for Boost 1.46 (fanquake)
  • #10263 cb007e4 Trivial: fix fee estimate write error log message (CryptAxe)
  • #9670 bd9ec0e contrib: github-merge improvements (laanwj)
  • #10260 1d75597 [doc] Minor corrections to osx dependencies (fanquake)
  • #10189 750c5a5 devtools/net: add a verifier for scriptable changes. Use it to make CNode::id private (theuni)
  • #10322 bc64b5a Use hardware timestamps in RNG seeding (sipa)
  • #10381 7f2b9e0 Shadowing warnings are not enabled by default, update doc accordingly (paveljanik)
  • #10380 b6ee855 [doc] Removing comments about dirty entries on txmempool (madeo)
  • #10383 d0c37ee [logging] log system time and mock time (jnewbery)
  • #10404 b45a52a doc: Add logging to FinalizeNode() (sdaftuar)
  • #10388 526e839 Output line to debug.log when IsInitialBlockDownload latches to false (morcos)
  • #10372 15254e9 Add perf counter data to GetStrongRandBytes state in scheduler (TheBlueMatt)
  • #10461 55b72f3 Update style guide (sipa)
  • #10486 10e8c0a devtools: Retry after signing fails in github-merge (laanwj)
  • #10447 f259263 Make bitcoind invalid argument error message specific (laanwj)
  • #10495 6a38b79 contrib: Update location of seeds.txt (laanwj)
  • #10469 b6b150b Fixing typo in rpcdump.cpp help message (keystrike)
  • #10451 27b9931 contrib/init/bitcoind.openrcconf: Don’t disable wallet by default (luke-jr)
  • #10323 00d3692 Update to latest libsecp256k1 master (sipa)
  • #10422 cec9e1e Fix timestamp in fee estimate debug message (morcos)
  • #10566 5d034ee [docs] Use the “domain name setup” image (previously unused) in the gitian docs (practicalswift)
  • #10534 a514ac3 Clarify prevector::erase and avoid swap-to-clear (sipa)
  • #10575 22ec768 Header include guideline (sipa)
  • #10480 fbf5d3b Improve commit-check-script.sh (sipa)
  • #10502 1ad3d4e scripted-diff: Remove BOOST_FOREACH, Q_FOREACH and PAIRTYPE (jtimon)
  • #10377 b63be2c Use rdrand as entropy source on supported platforms (sipa)
  • #9895 228c319 Turn TryCreateDirectory() into TryCreateDirectories() (benma)
  • #10602 d76e84a Make clang-format use C++11 features (practicalswift)
  • #10623 c38f540 doc: Add 0.14.2 release notes (MarcoFalke)
  • #10276 b750b33 contrib/verifybinaries: allow filtering by platform (knocte)
  • #10248 01c4b14 Rewrite addrdb with less duplication using CHashVerifier (sipa)
  • #10577 232508f Add an explanation of quickly hashing onto a non-power of two range (gmaxwell)
  • #10608 eee398f Add a comment explaining the use of MAX_BLOCK_BASE_SIZE (gmaxwell)
  • #10728 7397af9 fix typo in help text for removeprunedfunds (AkioNak)
  • #10193 6dbcc74 scripted-diff: Remove #include (jtimon)
  • #10676 379aed0 document script-based return fields for validateaddress (instagibbs)
  • #10651 cef4b5c Verify binaries from bitcoincore.org and bitcoin.org (TheBlueMatt)
  • #10786 ca4c545 Add PR description to merge commit in github-merge.py (sipa)
  • #10812 c5904e8 [utils] Allow bitcoin-cli’s -rpcconnect option to be used with square brackets (jnewbery)
  • #10842 3895e25 Fix incorrect Doxygen tag (@ince → @since). Doxygen parameter name matching (practicalswift)
  • #10681 df0793f add gdb attach process to test README (instagibbs)
  • #10789 1124328 Punctuation/grammer fixes in rpcwallet.cpp (stevendlander)
  • #10655 78f307b Properly document target_confirmations in listsinceblock (RHavar)
  • #10917 5c003cb developer-notes: add reference to snake_case and PascalCase (benma)
  • #11003 4b5a7ce Docs: Capitalize bullet points in CONTRIBUTING guide (eklitzke)
  • #10968 98aa3f6 Add instructions for parallel gitian builds (coblee)
  • #11076 1c4b9b3 0.15 release-notes nits: fix redundancy, remove accidental parenthesis & fix range style (practicalswift)
  • #11090 8f0121c Update contributor names in release-notes.md (Derek701)
  • #11056 cbdd338 disable jni in builds (instagibbs)
  • #11080 2b59cfb doc: Update build-openbsd for 6.1 (laanwj)
  • #11119 0a6af47 [doc] build-windows: Mention that only trusty works (MarcoFalke)
  • #11108 e8ad101 Changing -txindex requires -reindex, not -reindex-chainstate (TheBlueMatt)
  • #9792 342b9bc FastRandomContext improvements and switch to ChaCha20 (sipa)
  • #9505 67ed40e Prevector Quick Destruct (JeremyRubin)
  • #10820 ef37f20 Use cpuid intrinsics instead of asm code (sipa)
  • #9999 a328904 [LevelDB] Plug leveldb logs to bitcoin logs (NicolasDorier)
  • #9693 c5e9e42 Prevent integer overflow in ReadVarInt (gmaxwell)
  • #10129 351d0ad scheduler: fix sub-second precision with boost < 1.50 (theuni)
  • #10153 fade788 logging: Fix off-by-one for shrinkdebugfile default (MarcoFalke)
  • #10305 c45da32 Fix potential NPD introduced in b297426c (TheBlueMatt)
  • #10338 daf3e7d Maintain state across GetStrongRandBytes calls (sipa)
  • #10544 a4fe077 Update to LevelDB 1.20 (sipa)
  • #10614 cafe24f random: fix crash on some 64bit platforms (theuni)
  • #10714 2a09a38 Avoid printing incorrect block indexing time due to uninitialized variable (practicalswift)
  • #10837 8bc6d1f Fix resource leak on error in GetDevURandom (corebob)
  • #10832 89bb036 init: Factor out AppInitLockDataDirectory and fix startup core dump issue (laanwj)
  • #10914 b995a37 Add missing lock in CScheduler::AreThreadsServicingQueue() (TheBlueMatt)
  • #10958 659c096 Update to latest Bitcoin patches for LevelDB (sipa)
  • #10919 c1c671f Fix more init bugs (TheBlueMatt)

New in Bitcoin Core 0.14.0 (Mar 16, 2017)

  • Performance Improvements:
  • 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.
  • Manual Pruning:
  • Bitcoin 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.
  • getinfo Deprecated:
  • 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.
  • Nested RPC Commands in Debug Console:
  • 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.
  • Network Activity Toggle:
  • 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.
  • Out-of-sync Modal Info Layer:
  • When Bitcoin 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.
  • Support for JSON-RPC Named Arguments:
  • Commands sent over the JSON-RPC interface and through the bitcoin-cli binary can now use named arguments. This follows the JSON-RPC specification for passing parameters by-name with an object.
  • bitcoin-cli has been updated to support this by parsing name=value arguments when the -named option is given.
  • 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.
  • Opt into RBF When Sending:
  • 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.
  • Sensitive Data Is No Longer Stored In Debug Console History:
  • 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.
  • Retaining the Mempool Across Restarts:
  • 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.
  • Final Alert:
  • The Alert System was disabled and deprecated in Bitcoin 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.
  • GUI Changes:
  • After resetting the options by clicking the Reset Options button in the options dialog or with the -resetguioptions startup 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.
  • Low-level RPC changes:
  • importprunedfunds only 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 getaddednodeinfo has been removed. This is an incompatible change.
  • RPC command getmininginfo loses the “testnet” field in favor of the more generic “chain” (which has been present for years).
  • A new RPC command preciousblock has 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 importmulti has 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 getrawtransaction for 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 if txindex is enabled.
  • A new RPC command getmemoryinfo has been added which will return information about the memory usage of Bitcoin Core. This was added in conjunction with optimizations to memory management. See #8753. for more information.
  • A new RPC command bumpfee has been added which allows replacing an unconfirmed wallet transaction that signaled RBF (see the -walletrbf startup option above) with a new transaction that pays a higher fee, and should be more likely to get confirmed quickly.
  • HTTP REST Changes:
  • UTXO set query (GET /rest/getutxos//-/- /.../-.) responses were changed to return status code HTTP_BAD_REQUEST (400) instead of HTTP_INTERNAL_SERVER_ERROR (500) when requests contain invalid parameters.
  • Minimum Fee Rate Policies:
  • 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 -blockmintxfee option. (defaults to 1000 satoshis/kB)
  • The -minrelaytxfee option continues to exist but is recommended to be left unset.
  • Fee Estimation Changes:
  • Since 0.13.2 fee estimation for a confirmation target of 1 block has been disabled. The fee slider will no longer be able to choose a target of 1 block. This is only a minor behavior change as there was often insufficient data for this target anyway. estimatefee 1 will now always return -1 and estimatesmartfee 1 will start searching at a target of 2.
  • The default target for fee estimation is changed to 6 blocks in both the GUI (previously 25) and for RPC calls (previously 2).
  • Removal of Priority Estimation:
  • Estimation of “priority” needed for a transaction to be included within a target number of blocks has been removed. The RPC calls are deprecated and will either return -1 or 1e24 appropriately. The format for fee_estimates.dat has also changed to no longer save these priority estimates. It will automatically be converted to the new format which is not readable by prior versions of the software.
  • Support for “priority” (coin age) transaction sorting for mining is considered deprecated in Core and will be removed in the next major version. This is not to be confused with the prioritisetransaction RPC which will remain supported by Core for adding fee deltas to transactions.
  • P2P connection management:
  • Peers manually added through the -addnode option or addnode RPC now have their own limit of eight connections which does not compete with other inbound or outbound connection usage and is not subject to the limitation imposed by the -maxconnections option.
  • New connections to manually added peers are performed more quickly.
  • Introduction of assumed-valid blocks:
  • A significant portion of the initial block download time is spent verifying scripts/signatures. Although the verification must pass to ensure the security of the system, no other result from this verification is needed: If the node knew the history of a given block were valid it could skip checking scripts for its ancestors.
  • A new configuration option ‘assumevalid’ is provided to express this knowledge to the software. Unlike the ‘checkpoints’ in the past this setting does not force the use of a particular chain: chains that are consistent with it are processed quicker, but other chains are still accepted if they’d otherwise be chosen as best. Also unlike ‘checkpoints’ the user can configure which block history is assumed true, this means that even outdated software can sync more quickly if the setting is updated by the user.
  • Because the validity of a chain history is a simple objective fact it is much easier to review this setting. As a result the software ships with a default value adjusted to match the current chain shortly before release. The use of this default value can be disabled by setting -assumevalid=0
  • Fundrawtransaction change address reuse:
  • Before 0.14, fundrawtransaction was by default wallet stateless. In almost all cases fundrawtransaction does add a change-output to the outputs of the funded transaction. Before 0.14, the used keypool key was never marked as change-address key and directly returned to the keypool (leading to address reuse). Before 0.14, calling getnewaddress directly after fundrawtransaction did generate the same address as the change-output address.
  • Since 0.14, fundrawtransaction does reserve the change-output-key from the keypool by default (optional by setting reserveChangeKey, default = true)
  • Users should also consider using getrawchangeaddress() in conjunction with fundrawtransaction’s changeAddress option.
  • Unused mempool memory used by coincache:
  • Before 0.14, memory reserved for mempool (using the -maxmempool option) went unused during initial block download, or IBD. In 0.14, the UTXO DB cache (controlled with the -dbcache option) borrows memory from the mempool when there is extra memory available. This may result in an increase in memory usage during IBD for those previously relying on only the -dbcache option to limit memory during that time.

New in Bitcoin Core 0.13.2 (Jan 4, 2017)

  • Consensus:
  • #9293 e591c10 [0.13 Backport #9053] IBD using chainwork instead of height and not using header timestamp (gmaxwell)
  • #9053 5b93eee IBD using chainwork instead of height and not using header timestamps (gmaxwell)
  • RPC and other APIs:
  • #8845 1d048b9 Don’t return the address of a P2SH of a P2SH (jnewbery)
  • #9041 87fbced keypoololdest denote Unix epoch, not GMT (s-matthew-english)
  • #9122 f82c81b fix getnettotals RPC description about timemillis (visvirial)
  • #9042 5bcb05d [rpc] ParseHash: Fail when length is not 64 (MarcoFalke)
  • #9194 f26dab7 Add option to return non-segwit serialization via rpc (instagibbs)
  • #9347 b711390 [0.13.2] wallet/rpc backports (MarcoFalke)
  • #9292 c365556 Complain when unknown rpcserialversion is specified (sipa)
  • #9322 49a612f [qa] Don’t set unknown rpcserialversion (MarcoFalke)
  • Block and transaction handling:
  • #8357 ce0d817 [mempool] Fix relaypriority calculation error (maiiz)
  • #9267 0a4aa87 [0.13 backport #9239] Disable fee estimates for a confirm target of 1 block (morcos)
  • #9196 0c09d9f Send tip change notification from invalidateblock (ryanofsky)
  • P2P protocol and network code:
  • #8995 9ef3875 Add missing cs_main lock to ::GETBLOCKTXN processing (TheBlueMatt)
  • #9234 94531b5 torcontrol: Explicitly request RSA1024 private key (laanwj)
  • #8637 2cad5db Compact Block Tweaks (rebase of #8235) (sipa)
  • #9058 286e548 Fixes for p2p-compactblocks.py test timeouts on travis (#8842) (ryanofsky)
  • #8865 4c71fc4 Decouple peer-processing-logic from block-connection-logic (TheBlueMatt)
  • #9117 6fe3981 net: don’t send feefilter messages before the version handshake is complete (theuni)
  • #9188 ca1fd75 Make orphan parent fetching ask for witnesses (gmaxwell)
  • #9052 3a3bcbf Use RelevantServices instead of node_network in AttemptToEvict (gmaxwell)
  • #9048 9460771 [0.13 backport #9026] Fix handling of invalid compact blocks (sdaftuar)
  • #9357 03b6f62 [0.13 backport #9352] Attempt reconstruction from all compact block announcements (sdaftuar)
  • #9189 b96a8f7 Always add default_witness_commitment with GBT client support (sipa)
  • #9253 28d0f22 Fix calculation of number of bound sockets to use (TheBlueMatt)
  • #9199 da5a16b Always drop the least preferred HB peer when adding a new one (gmaxwell)
  • Build system:
  • #9169 d1b4da9 build: fix qt5.7 build under macOS (theuni)
  • #9326 a0f7ece Update for OpenSSL 1.1 API (gmaxwell)
  • #9224 396c405 Prevent FD_SETSIZE error building on OpenBSD (ivdsangen)
  • GUI:
  • #8972 6f86b53 Make warnings label selectable (jonasschnelli) (MarcoFalke)
  • #9185 6d70a73 Fix coincontrol sort issue (jonasschnelli)
  • #9094 5f3a12c Use correct conversion function for boost::path datadir (laanwj)
  • #8908 4a974b2 Update bitcoin-qt.desktop (s-matthew-english)
  • #9190 dc46b10 Plug many memory leaks (laanwj)
  • Wallet:
  • #9290 35174a0 Make RelayWalletTransaction attempt to AcceptToMemoryPool (gmaxwell)
  • #9295 43bcfca Bugfix: Fundrawtransaction: don’t terminate when keypool is empty (jonasschnelli)
  • #9302 f5d606e Return txid even if ATMP fails for new transaction (sipa)
  • #9262 fe39f26 Prefer coins that have fewer ancestors, sanity check txn before ATMP (instagibbs)
  • Tests and QA:
  • #9159 eca9b46 Wait for specific block announcement in p2p-compactblocks (ryanofsky)
  • #9186 dccdc3a Fix use-after-free in scheduler tests (laanwj)
  • #9168 3107280 Add assert_raises_message to check specific error message (mrbandrews)
  • #9191 29435db 0.13.2 Backports (MarcoFalke)
  • #9077 1d4c884 Increase wallet-dump RPC timeout (ryanofsky)
  • #9098 ecd7db5 Handle zombies and cluttered tmpdirs (MarcoFalke)
  • #8927 387ec9d Add script tests for FindAndDelete in pre-segwit and segwit scripts (jl2012)
  • #9200 eebc699 bench: Fix subtle counting issue when rescaling iteration count (laanwj)
  • Miscellaneous:
  • #8838 094848b Calculate size and weight of block correctly in CreateNewBlock() (jnewbery)
  • #8920 40169dc Set minimum required Boost to 1.47.0 (fanquake)
  • #9251 a710a43 Improvement of documentation of command line parameter ‘whitelist’ (wodry)
  • #8932 106da69 Allow bitcoin-tx to create v2 transactions (btcdrak)
  • #8929 12428b4 add software-properties-common (sigwo)
  • #9120 08d1c90 bug: Missed one “return false” in recent refactoring in #9067 (UdjinM6)
  • #9067 f85ee01 Fix exit codes (UdjinM6)
  • #9340 fb987b3 [0.13] Update secp256k1 subtree (MarcoFalke)
  • #9229 b172377 Remove calls to getaddrinfo_a (TheBlueMatt)

New in Bitcoin Core 0.12.1 (Apr 18, 2016)

  • This is a new minor version release, including the BIP9, BIP68 and BIP112 softfork, various bug fixes and updated translations.
  • RPC and other APIs:
  • #7739 7ffc2bd Add abandoned status to listtransactions (jonasschnelli)
  • Block and transaction handling:
  • #7543 834aaef Backport BIP9, BIP68 and BIP112 with softfork (btcdrak)
  • P2P protocol and network code:
  • #7804 90f1d24 Track block download times per individual block (sipa)
  • #7832 4c3a00d Reduce block timeout to 10 minutes (laanwj)
  • Validation:
  • #7821 4226aac init: allow shutdown during ‘Activating best chain…’ (laanwj)
  • #7835 46898e7 Version 2 transactions remain non-standard until CSV activates (sdaftuar)
  • Build system:
  • #7487 00d57b4 Workaround Travis-side CI issues (luke-jr)
  • #7606 a10da9a No need to set -L and –location for curl (MarcoFalke)
  • #7614 ca8f160 Add curl to packages (now needed for depends) (luke-jr)
  • #7776 a784675 Remove unnecessary executables from gitian release (laanwj)
  • Wallet:
  • #7715 19866c1 Fix calculation of balances and available coins. (morcos)
  • Miscellaneous:
  • #7617 f04f4fd Fix markdown syntax and line terminate LogPrint (MarcoFalke)
  • #7747 4d035bc added depends cross compile info (accraze)
  • #7741 a0cea89 Mark p2p alert system as deprecated (btcdrak)
  • #7780 c5f94f6 Disable bad-chain alert (btcdrak)

New in Bitcoin Core 0.11.2 (Nov 13, 2015)

  • Highlights:
  • BIP65 soft fork to enforce OP_CHECKLOCKTIMEVERIFY opcode
  • BIP113 mempool-only locktime enforcement using GetMedianTimePast()
  • Fixed issues:
  • #6124 684636b Make CScriptNum() take nMaxNumSize as an argument
  • #6124 4fa7a04 Replace NOP2 with CHECKLOCKTIMEVERIFY (BIP65)
  • #6124 6ea5ca4 Enable CHECKLOCKTIMEVERIFY as a standard script verify flag
  • #6351 5e82e1c Add CHECKLOCKTIMEVERIFY (BIP65) soft-fork logic
  • #6353 ba1da90 Show softfork status in getblockchaininfo
  • #6351 6af25b0 Add BIP65 to getblockchaininfo softforks list
  • #6688 01878c9 Fix locking in GetTransaction
  • #6653 b3eaa30 [Qt] Raise debug window when requested
  • #6600 1e672ae Debian/Ubuntu: Include bitcoin-tx binary
  • #6600 2394f4d Debian/Ubuntu: Split bitcoin-tx into its own package
  • #5987 33d6825 Bugfix: Allow mining on top of old tip blocks for testnet
  • #6852 21e58b8 build: make sure OpenSSL heeds noexecstack
  • #6846 af6edac alias -h for --help
  • #6867 95a5039 Set TCP_NODELAY on P2P sockets.
  • #6856 dfe55bd Do not allow blockfile pruning during reindex.
  • #6566 a1d3c6f Add rules–presently disabled–for using GetMedianTimePast as end point for lock-time calculations
  • #6566 f720c5f Enable policy enforcing GetMedianTimePast as the end point of lock-time constraints
  • #6917 0af5b8e leveldb: Win32WritableFile without memory mapping
  • #6948 4e895b0 Always flush block and undo when switching to new file

New in Bitcoin Core 0.11.0 (Jul 13, 2015)

  • BLOCK FILE PRUNING:
  • This release supports running a fully validating node without maintaining a copy of the raw block and undo data on disk. To recap, there are four types of data related to the blockchain in the bitcoin system: the raw blocks as received over the network (blk???.dat), the undo data (rev???.dat), the block index and the UTXO set (both LevelDB databases). The databases are built from the raw data.
  • Block pruning allows Bitcoin Core to delete the raw block and undo data once it’s been validated and used to build the databases. At that point, the raw data is used only to relay blocks to other nodes, to handle reorganizations, to look up old transactions (if -txindex is enabled or via the RPC/REST interfaces), or for rescanning the wallet. The block index continues to hold the metadata about all blocks in the blockchain.
  • The user specifies how much space to allot for block & undo files. The minimum allowed is 550MB. Note that this is in addition to whatever is required for the block index and UTXO databases. The minimum was chosen so that Bitcoin Core will be able to maintain at least 288 blocks on disk (two days worth of blocks at 10 minutes per block). In rare instances it is possible that the amount of space used will exceed the pruning target in order to keep the required last 288 blocks on disk.
  • Block pruning works during initial sync in the same way as during steady state, by deleting block files “as you go” whenever disk space is allocated. Thus, if the user specifies 550MB, once that level is reached the program will begin deleting the oldest block and undo files, while continuing to download the blockchain.
  • For now, block pruning disables block relay. In the future, nodes with block pruning will at a minimum relay “new” blocks, meaning blocks that extend their active chain.
  • Block pruning is currently incompatible with running a wallet due to the fact that block data is used for rescanning the wallet and importing keys or addresses (which require a rescan.) However, running the wallet with block pruning will be supported in the near future, subject to those limitations.
  • Block pruning is also incompatible with -txindex and will automatically disable it.
  • Once you have pruned blocks, going back to unpruned state requires re-downloading the entire blockchain. To do this, re-start the node with -reindex. Note also that any problem that would cause a user to reindex (e.g., disk corruption) will cause a pruned node to redownload the entire blockchain. Finally, note that when a pruned node reindexes, it will delete any blk???.dat and rev???.dat files in the data directory prior to restarting the download.
  • To enable block pruning on the command line: -prune=N: where N is the number of MB to allot for raw block & undo data.
  • Pruning is disabled by default.
  • BIG ENDIAN SUPPORT:
  • Experimental support for big-endian CPU architectures was added in this release. All little-endian specific code was replaced with endian-neutral constructs. This has been tested on at least MIPS and PPC hosts. The build system will automatically detect the endianness of the target.
  • MEMORY USAGE OPTIMIZATION:
  • There have been many changes in this release to reduce the default memory usage of a node, among which:
  • Accurate UTXO cache size accounting (#6102); this makes the option -dbcache precise where this grossly underestimated memory usage before
  • Reduce size of per-peer data structure (#6064 and others); this increases the number of connections that can be supported with the same amount of memory
  • Reduce the number of threads (#5964, #5679); lowers the amount of (esp. virtual) memory needed:
  • FEE ESTIMATION CHANGES:
  • This release improves the algorithm used for fee estimation. Previously, -1 was returned when there was insufficient data to give an estimate. Now, -1 will also be returned when there is no fee or priority high enough for the desired confirmation target. In those cases, it can help to ask for an estimate for a higher target number of blocks. It is not uncommon for there to be no fee or priority high enough to be reliably (85%) included in the next block and for this reason, the default for -txconfirmtarget=n has changed from 1 to 2.
  • PRIVACY: DISABLE WALLET TRANSACTION BROADCAST:
  • This release adds an option -walletbroadcast=0 to prevent automatic transaction broadcast and rebroadcast (#5951). This option allows separating transaction submission from the node functionality.
  • Making use of this, third-party scripts can be written to take care of transaction (re)broadcast:
  • Send the transaction as normal, either through RPC or the GUI
  • Retrieve the transaction data through RPC using gettransaction (NOT getrawtransaction). The hex field of the result will contain the raw hexadecimal representation of the transaction
  • The transaction can then be broadcasted through arbitrary mechanisms supported by the script
  • One such application is selective Tor usage, where the node runs on the normal internet but transactions are broadcasted over Tor.
  • For an example script see bitcoin-submittx.
  • PRIVACY: STREAM ISOLATION FOR TOR:
  • This release adds functionality to create a new circuit for every peer connection, when the software is used with Tor. The new option, -proxyrandomize, is on by default.
  • When enabled, every outgoing connection will (potentially) go through a different exit node. That significantly reduces the chance to get unlucky and pick a single exit node that is either malicious, or widely banned from the P2P network. This improves connection reliability as well as privacy, especially for the initial connections.
  • Important note: If a non-Tor SOCKS5 proxy is configured that supports authentication, but doesn’t require it, this change may cause that proxy to reject connections. A user and password is sent where they weren’t before. This setup is exceedingly rare, but in this case -proxyrandomize=0 can be passed to disable the behavior.
  • CHANGE LOG:
  • RPC and REST:
  • #5461 5f7279a signrawtransaction: validate private key
  • #5444 103f66b Add /rest/headers//.
  • #4964 95ecc0a Add scriptPubKey field to validateaddress RPC call
  • #5476 c986972 Add time offset into getpeerinfo output
  • #5540 84eba47 Add unconfirmed and immature balances to getwalletinfo
  • #5599 40e96a3 Get rid of the internal miner’s hashmeter
  • #5711 87ecfb0 Push down RPC locks
  • #5754 1c4e3f9 fix getblocktemplate lock issue
  • #5756 5d901d8 Fix getblocktemplate_proposals test by mining one block
  • #5548 d48ce48 Add /rest/chaininfos
  • #5992 4c4f1b4 Push down RPC reqWallet flag
  • #6036 585b5db Show zero value txouts in listunspent
  • #5199 6364408 Add RPC call gettxoutproof to generate and verify merkle blocks
  • #5418 16341cc Report missing inputs in sendrawtransaction
  • #5937 40f5e8d show script verification errors in signrawtransaction result
  • #5420 1fd2d39 getutxos REST command (based on Bip64)
  • #6193 42746b0 [REST] remove json input for getutxos, limit to query max. 15 outpoints
  • #6226 5901596 json: fail read_string if string contains trailing garbage:
  • Configuration and command-line options:
  • #5636 a353ad4 Add option -allowselfsignedrootcertificate to allow self signed root certs (for testing payment requests)
  • #5900 3e8a1f2 Add a consistency check -checkblockindex for the block chain data structures
  • #5951 7efc9cf Make it possible to disable wallet transaction broadcast (using -walletbroadcast=0)
  • #5911 b6ea3bc privacy: Stream isolation for Tor (on by default, use -proxyrandomize=0 to disable)
  • #5863 c271304 Add autoprune functionality (-prune=)
  • #6153 0bcf04f Parameter interaction: disable upnp if -proxy set
  • #6274 4d9c7fe Add option -alerts to opt out of alert system:
  • Block and transaction handling:
  • #5367 dcc1304 Do all block index writes in a batch
  • #5253 203632d Check against MANDATORY flags prior to accepting to mempool
  • #5459 4406c3e Reject headers that build on an invalid parent
  • #5481 055f3ae Apply AreSane() checks to the fees from the network
  • #5580 40d65eb Preemptively catch a few potential bugs
  • #5349 f55c5e9 Implement test for merkle tree malleability in CPartialMerkleTree
  • #5564 a89b837 clarify obscure uses of EvalScript()
  • #5521 8e4578a Reject non-final txs even in testnet/regtest
  • #5707 6af674e Change hardcoded character constants to descriptive named constants for db keys
  • #5286 fcf646c Change the default maximum OP_RETURN size to 80 bytes
  • #5710 175d86e Add more information to errors in ReadBlockFromDisk
  • #5948 b36f1ce Use GetAncestor to compute new target
  • #5959 a0bfc69 Add additional block index consistency checks
  • #6058 7e0e7f8 autoprune minor post-merge improvements
  • #5159 2cc1372 New fee estimation code
  • #6102 6fb90d8 Implement accurate UTXO cache size accounting
  • #6129 2a82298 Bug fix for clearing fCheckForPruning
  • #5947 e9af4e6 Alert if it is very likely we are getting a bad chain
  • #6203 c00ae64 Remove P2SH coinbase flag, no longer interesting
  • #5985 37b4e42 Fix removing of orphan transactions
  • #6221 6cb70ca Prune: Support noncontiguous block files
  • #6256 fce474c Use best header chain timestamps to detect partitioning
  • #6233 a587606 Advance pindexLastCommonBlock for blocks in chainActive:
  • P2P protocol and network code:
  • #5507 844ace9 Prevent DOS attacks on in-flight data structures
  • #5770 32a8b6a Sanitize command strings before logging them
  • #5859 dd4ffce Add correct bool combiner for net signals
  • #5876 8e4fd0c Add a NODE_GETUTXO service bit and document NODE_NETWORK
  • #6028 b9311fb Move nLastTry from CAddress to CAddrInfo
  • #5662 5048465 Change download logic to allow calling getdata on inbound peers
  • #5971 18d2832 replace absolute sleep with conditional wait
  • #5918 7bf5d5e Use equivalent PoW for non-main-chain requests
  • #6059 f026ab6 chainparams: use SeedSpec6’s rather than CAddress’s for fixed seeds
  • #6080 31c0bf1 Add jonasschnellis dns seeder
  • #5976 9f7809f Reduce download timeouts as blocks arrive
  • #6172 b4bbad1 Ignore getheaders requests when not synced
  • #5875 304892f Be stricter in processing unrequested blocks
  • #6333 41bbc85 Hardcoded seeds update June 2015:
  • Validation:
  • #5143 48e1765 Implement BIP62 rule 6
  • #5713 41e6e4c Implement BIP66:
  • Build system:
  • #5501 c76c9d2 Add mips, mipsel and aarch64 to depends platforms
  • #5334 cf87536 libbitcoinconsensus: Add pkg-config support
  • #5514 ed11d53 Fix ‘make distcheck’
  • #5505 a99ef7d Build winshutdownmonitor.cpp on Windows only
  • #5582 e8a6639 Osx toolchain update
  • #5684 ab64022 osx: bump build sdk to 10.9
  • #5695 23ef5b7 depends: latest config.guess and config.sub
  • #5509 31dedb4 Fixes when compiling in c++11 mode
  • #5819 f8e68f7 release: use static libstdc++ and disable reduced exports by default
  • #5510 7c3fbc3 Big endian support
  • #5149 c7abfa5 Add script to verify all merge commits are signed
  • #6082 7abbb7e qt: disable qt tests when one of the checks for the gui fails
  • #6244 0401aa2 configure: Detect (and reject) LibreSSL
  • #6269 95aca44 gitian: Use the new bitcoin-detached-sigs git repo for OSX signatures
  • #6285 ef1d506 Fix scheduler build with some boost versions.
  • #6280 25c2216 depends: fix Boost 1.55 build on GCC 5
  • #6303 b711599 gitian: add a gitian-win-signer descriptor
  • #6246 8ea6d37 Fix build on FreeBSD
  • #6282 daf956b fix crash on shutdown when e.g. changing -txindex and abort action
  • #6354 bdf0d94 Gitian windows signing normalization:
  • Wallet:
  • #2340 811c71d Discourage fee sniping with nLockTime
  • #5485 d01bcc4 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option
  • #5508 9a5cabf Add RandAddSeedPerfmon to MakeNewKey
  • #4805 8204e19 Do not flush the wallet in AddToWalletIfInvolvingMe(..)
  • #5319 93b7544 Clean up wallet encryption code
  • #5831 df5c246 Subtract fee from amount
  • #6076 6c97fd1 wallet: fix boost::get usage with boost 1.58
  • #5511 23c998d Sort pending wallet transactions before reaccepting
  • #6126 26e08a1 Change default nTxConfirmTarget to 2
  • #6183 75a4d51 Fix off-by-one error w/ nLockTime in the wallet
  • #6276 c9fd907 Fix getbalance * 0:
  • GUI:
  • #5219 f3af0c8 New icons
  • #5228 bb3c75b HiDPI (retina) support for splash screen
  • #5258 73cbf0a The RPC Console should be a QWidget to make window more independent
  • #5488 851dfc7 Light blue icon color for regtest
  • #5547 a39aa74 New icon for the debug window
  • #5493 e515309 Adopt style colour for button icons
  • #5557 70477a0 On close of splashscreen interrupt verifyDB
  • #5559 83be8fd Make the command-line-args dialog better
  • #5144 c5380a9 Elaborate on signverify message dialog warning
  • #5489 d1aa3c6 Optimize PNG files
  • #5649 e0cd2f5 Use text-color icons for system tray Send/Receive menu entries
  • #5651 848f55d Coin Control: Use U+2248 “ALMOST EQUAL TO” rather than a simple tilde
  • #5626 ab0d798 Fix icon sizes and column width
  • #5683 c7b22aa add new osx dmg background picture
  • #5620 7823598 Payment request expiration bug fix
  • #5729 9c4a5a5 Allow unit changes for read-only BitcoinAmountField
  • #5753 0f44672 Add bitcoin logo to about screen
  • #5629 a956586 Prevent amount overflow problem with payment requests
  • #5830 215475a Don’t save geometry for options and about/help window
  • #5793 d26f0b2 Honor current network when creating autostart link
  • #5847 f238add Startup script for centos, with documentation
  • #5915 5bd3a92 Fix a static qt5 crash when using certain versions of libxcb
  • #5898 bb56781 Fix rpc console font size to flexible metrics
  • #5467 bc8535b Payment request / server work - part 2
  • #6161 180c164 Remove movable option for toolbar
  • #6160 0d862c2 Overviewpage: make sure warning icons gets colored:
  • Tests:
  • #5453 2f2d337 Add ability to run single test manually to RPC tests
  • #5421 886eb57 Test unexecuted OP_CODESEPARATOR
  • #5530 565b300 Additional rpc tests
  • #5611 37b185c Fix spurious windows test failures after 012598880c
  • #5613 2eda47b Fix smartfees test for change to relay policy
  • #5612 e3f5727 Fix zapwallettxes test
  • #5642 30a5b5f Prepare paymentservertests for new unit tests
  • #5784 e3a3cd7 Fix usage of NegateSignatureS in script_tests
  • #5813 ee9f2bf Add unit tests for next difficulty calculations
  • #5855 d7989c0 Travis: run unit tests in different orders
  • #5852 cdae53e Reinitialize state in between individual unit tests.
  • #5883 164d7b6 tests: add a BasicTestingSetup and apply to all tests
  • #5940 446bb70 Regression test for ResendWalletTransactions
  • #6052 cf7adad fix and enable bip32 unit test
  • #6039 734f80a tests: Error when setgenerate is used on regtest
  • #6074 948beaf Correct the PUSHDATA4 minimal encoding test in script_invalid.json
  • #6032 e08886d Stop nodes after RPC tests, even with –nocleanup
  • #6075 df1609f Add additional script edge condition tests
  • #5981 da38dc6 Python P2P testing
  • #5958 9ef00c3 Add multisig rpc tests
  • #6112 fec5c0e Add more script edge condition tests:
  • Miscellaneous:
  • #5457, #5506, #5952, #6047 Update libsecp256k1
  • #5437 84857e8 Add missing CAutoFile::IsNull() check in main
  • #5490 ec20fd7 Replace uint256/uint160 with opaque blobs where possible
  • #5654, #5764 Adding jonasschnelli’s GPG key
  • #5477 5f04d1d OS X 10.10: LSSharedFileListItemResolve() is deprecated
  • #5679 beff11a Get rid of DetectShutdownThread
  • #5787 9bd8c9b Add fanquake PGP key
  • #5366 47a79bb No longer check osx compatibility in RenameThread
  • #5689 07f4386 openssl: abstract out OPENSSL_cleanse
  • #5708 8b298ca Add list of implemented BIPs
  • #5809 46bfbe7 Add bitcoin-cli man page
  • #5839 86eb461 keys: remove libsecp256k1 verification until it’s actually supported
  • #5749 d734d87 Help messages correctly formatted (79 chars)
  • #5884 7077fe6 BUGFIX: Stack around the variable ‘rv’ was corrupted
  • #5849 41259ca contrib/init/bitcoind.openrc: Compatibility with previous OpenRC init script variables
  • #5950 41113e3 Fix locale fallback and guard tests against invalid locale settings
  • #5965 7c6bfb1 Add git-subtree-check.sh script
  • #6033 1623f6e FreeBSD, OpenBSD thread renaming
  • #6064 b46e7c2 Several changes to mruset
  • #6104 3e2559c Show an init message while activating best chain
  • #6125 351f73e Clean up parsing of bool command line args
  • #5964 b4c219b Lightweight task scheduler
  • #6116 30dc3c1 [OSX] rename Bitcoin-Qt.app to Bitcoin-Core.app
  • #6168 b3024f0 contrib/linearize: Support linearization of testnet blocks
  • #6098 7708fcd Update Windows resource files (and add one for bitcoin-tx)
  • #6159 e1412d3 Catch errors on datadir lock and pidfile delete
  • #6186 182686c Fix two problems in CSubnet parsing
  • #6174 df992b9 doc: add translation strings policy
  • #6210 dfdb6dd build: disable optional use of gmp in internal secp256k1 build
  • #6264 94cd705 Remove translation for -help-debug options
  • #6286 3902c15 Remove berkeley-db4 workaround in MacOSX build docs
  • #6319 3f8fcc9 doc: update mailing list address

New in Bitcoin Core 0.11.0 RC 1 (Jun 15, 2015)

  • RPC and REST:
  • #5461 `5f7279a` signrawtransaction: validate private key
  • #5444 `103f66b` Add /rest/headers//.
  • #4964 `95ecc0a` Add scriptPubKey field to validateaddress RPC call
  • #5476 `c986972` Add time offset into getpeerinfo output
  • #5540 `84eba47` Add unconfirmed and immature balances to getwalletinfo
  • #5599 `40e96a3` Get rid of the internal miner's hashmeter
  • #5711 `87ecfb0` Push down RPC locks
  • #5754 `1c4e3f9` fix getblocktemplate lock issue
  • #5756 `5d901d8` Fix getblocktemplate_proposals test by mining one block
  • #5548 `d48ce48` Add /rest/chaininfos
  • #5992 `4c4f1b4` Push down RPC reqWallet flag
  • #6036 `585b5db` Show zero value txouts in listunspent
  • #5199 `6364408` Add RPC call `gettxoutproof` to generate and verify merkle blocks
  • #5418 `16341cc` Report missing inputs in sendrawtransaction
  • #5937 `40f5e8d` show script verification errors in signrawtransaction result
  • #5420 `1fd2d39` getutxos REST command (based on Bip64)
  • #6193 `42746b0` [REST] remove json input for getutxos, limit to query max. 15 outpoints
  • #6226 `5901596` json: fail read_string if string contains trailing garbage
  • Configuration and command-line options:
  • #5636 `a353ad4` Add option `-allowselfsignedrootcertificate` to allow self signed root certs (for testing payment requests)
  • #5900 `3e8a1f2` Add a consistency check `-checkblockindex` for the block chain data structures
  • #5951 `7efc9cf` Make it possible to disable wallet transaction broadcast (using `-walletbroadcast=0`)
  • #5911 `b6ea3bc` privacy: Stream isolation for Tor (on by default, use `-proxyrandomize=0` to disable)
  • #5863 `c271304` Add autoprune functionality (`-prune=`)
  • #6153 `0bcf04f` Parameter interaction: disable upnp if -proxy set
  • Block and transaction handling:
  • #5367 `dcc1304` Do all block index writes in a batch
  • #5253 `203632d` Check against MANDATORY flags prior to accepting to mempool
  • #5459 `4406c3e` Reject headers that build on an invalid parent
  • #5481 `055f3ae` Apply AreSane() checks to the fees from the network
  • #5580 `40d65eb` Preemptively catch a few potential bugs
  • #5349 `f55c5e9` Implement test for merkle tree malleability in CPartialMerkleTree
  • #5564 `a89b837` clarify obscure uses of EvalScript()
  • #5521 `8e4578a` Reject non-final txs even in testnet/regtest
  • #5707 `6af674e` Change hardcoded character constants to descriptive named constants for db keys
  • #5286 `fcf646c` Change the default maximum OP_RETURN size to 80 bytes
  • #5710 `175d86e` Add more information to errors in ReadBlockFromDisk
  • #5948 `b36f1ce` Use GetAncestor to compute new target
  • #5959 `a0bfc69` Add additional block index consistency checks
  • #6058 `7e0e7f8` autoprune minor post-merge improvements
  • #5159 `2cc1372` New fee estimation code
  • #6102 `6fb90d8` Implement accurate UTXO cache size accounting
  • #6129 `2a82298` Bug fix for clearing fCheckForPruning
  • #5947 `e9af4e6` Alert if it is very likely we are getting a bad chain
  • #6203 `c00ae64` Remove P2SH coinbase flag, no longer interesting
  • P2P protocol and network code:
  • #5507 `844ace9` Prevent DOS attacks on in-flight data structures
  • #5770 `32a8b6a` Sanitize command strings before logging them
  • #5859 `dd4ffce` Add correct bool combiner for net signals
  • #5876 `8e4fd0c` Add a NODE_GETUTXO service bit and document NODE_NETWORK
  • #6028 `b9311fb` Move nLastTry from CAddress to CAddrInfo
  • #5662 `5048465` Change download logic to allow calling getdata on inbound peers
  • #5971 `18d2832` replace absolute sleep with conditional wait
  • #5918 `7bf5d5e` Use equivalent PoW for non-main-chain requests
  • #6059 `f026ab6` chainparams: use SeedSpec6's rather than CAddress's for fixed seeds
  • #6080 `31c0bf1` Add jonasschnellis dns seeder
  • #5976 `9f7809f` Reduce download timeouts as blocks arrive
  • #6172 `b4bbad1` Ignore getheaders requests when not synced
  • #5875 `304892f` Be stricter in processing unrequested blocks
  • Validation:
  • #5143 `48e1765` Implement BIP62 rule 6
  • #5713 `41e6e4c` Implement BIP66
  • Build system:
  • #5501 `c76c9d2` Add mips, mipsel and aarch64 to depends platforms
  • #5334 `cf87536` libbitcoinconsensus: Add pkg-config support
  • #5514 `ed11d53` Fix 'make distcheck'
  • #5505 `a99ef7d` Build winshutdownmonitor.cpp on Windows only
  • #5582 `e8a6639` Osx toolchain update
  • #5684 `ab64022` osx: bump build sdk to 10.9
  • #5695 `23ef5b7` depends: latest config.guess and config.sub
  • #5509 `31dedb4` Fixes when compiling in c++11 mode
  • #5819 `f8e68f7` release: use static libstdc++ and disable reduced exports by default
  • #5510 `7c3fbc3` Big endian support
  • #5149 `c7abfa5` Add script to verify all merge commits are signed
  • #6082 `7abbb7e` qt: disable qt tests when one of the checks for the gui fails
  • Wallet:
  • #2340 `811c71d` Discourage fee sniping with nLockTime
  • #5485 `d01bcc4` Enforce minRelayTxFee on wallet created tx and add a maxtxfee option
  • #5508 `9a5cabf` Add RandAddSeedPerfmon to MakeNewKey
  • #4805 `8204e19` Do not flush the wallet in AddToWalletIfInvolvingMe(..)
  • #5319 `93b7544` Clean up wallet encryption code
  • #5831 `df5c246` Subtract fee from amount
  • #6076 `6c97fd1` wallet: fix boost::get usage with boost 1.58
  • #5511 `23c998d` Sort pending wallet transactions before reaccepting
  • #6126 `26e08a1` Change default nTxConfirmTarget to 2
  • #6183 `75a4d51` Fix off-by-one error w/ nLockTime in the wallet
  • GUI:
  • #5219 `f3af0c8` New icons
  • #5228 `bb3c75b` HiDPI (retina) support for splash screen
  • #5258 `73cbf0a` The RPC Console should be a QWidget to make window more independent
  • #5488 `851dfc7` Light blue icon color for regtest
  • #5547 `a39aa74` New icon for the debug window
  • #5493 `e515309` Adopt style colour for button icons
  • #5557 `70477a0` On close of splashscreen interrupt verifyDB
  • #5559 `83be8fd` Make the command-line-args dialog better
  • #5144 `c5380a9` Elaborate on signverify message dialog warning
  • #5489 `d1aa3c6` Optimize PNG files
  • #5649 `e0cd2f5` Use text-color icons for system tray Send/Receive menu entries
  • #5651 `848f55d` Coin Control: Use U+2248 "ALMOST EQUAL TO" rather than a simple tilde
  • #5626 `ab0d798` Fix icon sizes and column width
  • #5683 `c7b22aa` add new osx dmg background picture
  • #5620 `7823598` Payment request expiration bug fix
  • #5729 `9c4a5a5` Allow unit changes for read-only BitcoinAmountField
  • #5753 `0f44672` Add bitcoin logo to about screen
  • #5629 `a956586` Prevent amount overflow problem with payment requests
  • #5830 `215475a` Don't save geometry for options and about/help window
  • #5793 `d26f0b2` Honor current network when creating autostart link
  • #5847 `f238add` Startup script for centos, with documentation
  • #5915 `5bd3a92` Fix a static qt5 crash when using certain versions of libxcb
  • #5898 `bb56781` Fix rpc console font size to flexible metrics
  • #5467 `bc8535b` Payment request / server work part 2
  • #6161 `180c164` Remove movable option for toolbar
  • #6160 `0d862c2` Overviewpage: make sure warning icons gets colored
  • Tests:
  • #5453 `2f2d337` Add ability to run single test manually to RPC tests
  • #5421 `886eb57` Test unexecuted OP_CODESEPARATOR
  • #5530 `565b300` Additional rpc tests
  • #5611 `37b185c` Fix spurious windows test failures after 012598880c
  • #5613 `2eda47b` Fix smartfees test for change to relay policy
  • #5612 `e3f5727` Fix zapwallettxes test
  • #5642 `30a5b5f` Prepare paymentservertests for new unit tests
  • #5784 `e3a3cd7` Fix usage of NegateSignatureS in script_tests
  • #5813 `ee9f2bf` Add unit tests for next difficulty calculations
  • #5855 `d7989c0` Travis: run unit tests in different orders
  • #5852 `cdae53e` Reinitialize state in between individual unit tests.
  • #5883 `164d7b6` tests: add a BasicTestingSetup and apply to all tests
  • #5940 `446bb70` Regression test for ResendWalletTransactions
  • #6052 `cf7adad` fix and enable bip32 unit test
  • #6039 `734f80a` tests: Error when setgenerate is used on regtest
  • #6074 `948beaf` Correct the PUSHDATA4 minimal encoding test in script_invalid.json
  • #6032 `e08886d` Stop nodes after RPC tests, even with --nocleanup
  • #6075 `df1609f` Add additional script edge condition tests
  • #5981 `da38dc6` Python P2P testing
  • #5958 `9ef00c3` Add multisig rpc tests
  • #6112 `fec5c0e` Add more script edge condition tests
  • Miscellaneous:
  • #5457, #5506, #5952, #6047 Update libsecp256k1
  • #5437 `84857e8` Add missing CAutoFile::IsNull() check in main
  • #5490 `ec20fd7` Replace uint256/uint160 with opaque blobs where possible
  • #5654, #5764 Adding jonasschnelli's GPG key
  • #5477 `5f04d1d` OS X 10.10: LSSharedFileListItemResolve() is deprecated
  • #5679 `beff11a` Get rid of DetectShutdownThread
  • #5787 `9bd8c9b` Add fanquake PGP key
  • #5366 `47a79bb` No longer check osx compatibility in RenameThread
  • #5689 `07f4386` openssl: abstract out OPENSSL_cleanse
  • #5708 `8b298ca` Add list of implemented BIPs
  • #5809 `46bfbe7` Add bitcoin-cli man page
  • #5839 `86eb461` keys: remove libsecp256k1 verification until it's actually supported
  • #5749 `d734d87` Help messages correctly formatted (79 chars)
  • #5884 `7077fe6` BUGFIX: Stack around the variable 'rv' was corrupted
  • #5849 `41259ca` contrib/init/bitcoind.openrc: Compatibility with previous OpenRC init script variables
  • #5950 `41113e3` Fix locale fallback and guard tests against invalid locale settings
  • #5965 `7c6bfb1` Add git-subtree-check.sh script
  • #6033 `1623f6e` FreeBSD, OpenBSD thread renaming
  • #6064 `b46e7c2` Several changes to mruset
  • #6104 `3e2559c` Show an init message while activating best chain
  • #6125 `351f73e` Clean up parsing of bool command line args
  • #5964 `b4c219b` Lightweight task scheduler
  • #6116 `30dc3c1` [OSX] rename Bitcoin-Qt.app to Bitcoin-Core.app
  • #6168 `b3024f0` contrib/linearize: Support linearization of testnet blocks
  • #6098 `7708fcd` Update Windows resource files (and add one for bitcoin-tx)
  • #6159 `e1412d3` Catch errors on datadir lock and pidfile delete
  • #6186 `182686c` Fix two problems in CSubnet parsing
  • #6174 `df992b9` doc: add translation strings policy
  • #6210 `dfdb6dd` build: disable optional use of gmp in internal secp256k1 build

New in Bitcoin Core 0.10.2 (May 19, 2015)

  • Detailed release notes follow. This overview includes changes that affect external behavior, not code moves, refactors or string updates.
  • Wallet:
  • 824c011 fix boost::get usage with boost 1.58
  • Miscellaneous:
  • da65606 Avoid crash on start in TestBlockValidity with gen=1.
  • 424ae66 don’t imbue boost::filesystem::path with locale “C” on windows (fixes #6078)

New in Bitcoin Core 0.10.2 RC 1 (May 14, 2015)

  • Wallet:
  • `824c011` fix boost::get usage with boost 1.58
  • Miscellaneous:
  • `da65606` Avoid crash on start in TestBlockValidity with gen=1.
  • `424ae66` don't imbue boost::filesystem::path with locale "C" on windows (fixes #6078)

New in Bitcoin Core 0.10.1 (Apr 27, 2015)

  • RPC:
  • 7f502be fix crash: createmultisig and addmultisigaddress
  • eae305f Fix missing lock in submitblock
  • Block (database) and transaction handling:
  • 1d2cdd2 Fix InvalidateBlock to add chainActive.Tip to setBlockIndexCandidates
  • c91c660 fix InvalidateBlock to repopulate setBlockIndexCandidates
  • 002c8a2 fix possible block db breakage during re-index
  • a1f425b Add (optional) consistency check for the block chain data structures
  • 1c62e84 Keep mempool consistent during block-reorgs
  • 57d1f46 Fix CheckBlockIndex for reindex
  • bac6fca Set nSequenceId when a block is fully linked
  • P2P protocol and network code:
  • 78f64ef don’t trickle for whitelisted nodes
  • ca301bf Reduce fingerprinting through timestamps in ‘addr’ messages.
  • 200f293 Ignore getaddr messages on Outbound connections.
  • d5d8998 Limit message sizes before transfer
  • aeb9279 Better fingerprinting protection for non-main-chain getdatas.
  • cf0218f Make addrman’s bucket placement deterministic (countermeasure 1 against eclipse attacks, see http://cs-people.bu.edu/heilman/eclipse/)
  • 0c6f334 Always use a 50% chance to choose between tried and new entries (countermeasure 2 against eclipse attacks)
  • 214154e Do not bias outgoing connections towards fresh addresses (countermeasure 2 against eclipse attacks)
  • aa587d4 Scale up addrman (countermeasure 6 against eclipse attacks)
  • 139cd81 Cap nAttempts penalty at 8 and switch to pow instead of a division loop
  • Validation:
  • d148f62 Acquire CCheckQueue’s lock to avoid race condition
  • Build system:
  • 8752b5c 0.10 fix for crashes on OSX 10.6
  • GUI:
  • 2c08406 some mac specifiy cleanup (memory handling, unnecessary code)
  • 81145a6 fix OSX dock icon window reopening
  • 786cf72 fix a issue where “command line options”-action overwrite “Preference”-action (on OSX)
  • Tests:
  • 1117378 add RPC test for InvalidateBlock
  • Miscellaneous:
  • c9e022b Initialization: set Boost path locale in main thread
  • 23126a0 Sanitize command strings before logging them.
  • 323de27 Initialization: setup environment before starting QT tests
  • 7494e09 Initialization: setup environment before starting tests
  • df45564 Initialization: set fallback locale as environment variable

New in Bitcoin Core 0.10.0 (Feb 16, 2015)

  • RPC:
  • f923c07 Support IPv6 lookup in bitcoin-cli even when IPv6 only bound on localhost
  • b641c9c Fix addnode “onetry”: Connect with OpenNetworkConnection
  • 171ca77 estimatefee / estimatepriority RPC methods
  • b750cf1 Remove cli functionality from bitcoind
  • f6984e8 Add “chain” to getmininginfo, improve help in getblockchaininfo
  • 99ddc6c Add nLocalServices info to RPC getinfo
  • cf0c47b Remove getwork() RPC call
  • 2a72d45 prioritisetransaction
  • e44fea5 Add an option -datacarrier to allow users to disable relaying/mining data carrier transactions
  • 2ec5a3d Prevent easy RPC memory exhaustion attack
  • d4640d7 Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation
  • 83f3543 Added argument to listaccounts to include watchonly addresses
  • 952877e Showing ‘involvesWatchonly’ property for transactions returned by ‘listtransactions’ and ‘listsinceblock’. It is only appended when the transaction involves a watchonly address
  • d7d5d23 Added argument to listtransactions and listsinceblock to include watchonly addresses
  • f87ba3d added includeWatchonly argument to ‘gettransaction’ because it affects balance calculation
  • 0fa2f88 added includedWatchonly argument to listreceivedbyaddress/…account
  • 6c37f7f getrawchangeaddress: fail when keypool exhausted and wallet locked
  • ff6a7af getblocktemplate: longpolling support
  • c4a321f Add peerid to getpeerinfo to allow correlation with the logs
  • 1b4568c Add vout to ListTransactions output
  • b33bd7a Implement “getchaintips” RPC command to monitor blockchain forks
  • 733177e Remove size limit in RPC client, keep it in server
  • 6b5b7cb Categorize rpc help overview
  • 6f2c26a Closely track mempool byte total. Add “getmempoolinfo” RPC
  • aa82795 Add detailed network info to getnetworkinfo RPC
  • 01094bd Don’t reveal whether password is 20 characters in RPC
  • 57153d4 rpc: Compute number of confirmations of a block from block height
  • ff36cbe getnetworkinfo: export local node’s client sub-version string
  • d14d7de SanitizeString: allow ‘(‘ and ‘)’
  • 31d6390 Fixed setaccount accepting foreign address
  • b5ec5fe update getnetworkinfo help with subversion
  • ad6e601 RPC additions after headers-first
  • 33dfbf5 rpc: Fix leveldb iterator leak, and flush before gettxoutsetinfo
  • 2aa6329 Enable customising node policy for datacarrier data size with a -datacarriersize option
  • f877aaa submitblock: Use a temporary CValidationState to determine accurately the outcome of ProcessBlock
  • e69a587 submitblock: Support for returning specific rejection reasons
  • af82884 Add “warmup mode” for RPC server
  • e2655e0 Add unauthenticated HTTP REST interface to public blockchain data
  • 683dc40 Disable SSLv3 (in favor of TLS) for the RPC client and server
  • 44b4c0d signrawtransaction: validate private key
  • 9765a50 Implement BIP 23 Block Proposal
  • f9de17e Add warning comment to getinfo
  • Command-line options:
  • ee21912 Use netmasks instead of wildcards for IP address matching
  • deb3572 Add -rpcbind option to allow binding RPC port on a specific interface
  • 96b733e Add -version option to get just the version
  • 1569353 Add -stopafterblockimport option
  • 77cbd46 Let -zapwallettxes recover transaction meta data
  • 1c750db remove -tor compatibility code (only allow -onion)
  • 4aaa017 rework help messages for fee-related options
  • 4278b1d Clarify error message when invalid -rpcallowip
  • 6b407e4 -datadir is now allowed in config files
  • bdd5b58 Add option -sysperms to disable 077 umask (create new files with system default umask)
  • cbe39a3 Add “bitcoin-tx” command line utility and supporting modules
  • dbca89b Trigger -alertnotify if network is upgrading without you
  • ad96e7c Make -reindex cope with out-of-order blocks
  • 16d5194 Skip reindexed blocks individually
  • ec01243 –tracerpc option for regression tests
  • f654f00 Change -genproclimit default to 1
  • 3c77714 Make -proxy set all network types, avoiding a connect leak
  • 57be955 Remove -printblock, -printblocktree, and -printblockindex
  • ad3d208 remove -maxorphanblocks config parameter since it is no longer functional
  • Block and transaction handling:
  • 7a0e84d ProcessGetData(): abort if a block file is missing from disk
  • 8c93bf4 LoadBlockIndexDB(): Require block db reindex if any blk*.dat files are missing
  • 77339e5 Get rid of the static chainMostWork (optimization)
  • 4e0eed8 Allow ActivateBestChain to release its lock on cs_main
  • 18e7216 Push cs_mains down in ProcessBlock
  • fa126ef Avoid undefined behavior using CFlatData in CScript serialization
  • 7f3b4e9 Relax IsStandard rules for pay-to-script-hash transactions
  • c9a0918 Add a skiplist to the CBlockIndex structure
  • bc42503 Use unordered_map for CCoinsViewCache with salted hash (optimization)
  • d4d3fbd Do not flush the cache after every block outside of IBD (optimization)
  • ad08d0b Bugfix: make CCoinsViewMemPool support pruned entries in underlying cache
  • 5734d4d Only remove actualy failed blocks from setBlockIndexValid
  • d70bc52 Rework block processing benchmark code
  • 714a3e6 Only keep setBlockIndexValid entries that are possible improvements
  • ea100c7 Reduce maximum coinscache size during verification (reduce memory usage)
  • 4fad8e6 Reject transactions with excessive numbers of sigops
  • b0875eb Allow BatchWrite to destroy its input, reducing copying (optimization)
  • 92bb6f2 Bypass reloading blocks from disk (optimization)
  • 2e28031 Perform CVerifyDB on pcoinsdbview instead of pcoinsTip (reduce memory usage)
  • ab15b2e Avoid copying undo data (optimization)
  • 341735e Headers-first synchronization
  • afc32c5 Fix rebuild-chainstate feature and improve its performance
  • e11b2ce Fix large reorgs
  • ed6d1a2 Keep information about all block files in memory
  • a48f2d6 Abstract context-dependent block checking from acceptance
  • 7e615f5 Fixed mempool sync after sending a transaction
  • 51ce901 Improve chainstate/blockindex disk writing policy
  • a206950 Introduce separate flushing modes
  • 9ec75c5 Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true
  • 868d041 Remove coinbase-dependant transactions during reorg
  • 723d12c Remove txn which are invalidated by coinbase maturity during reorg
  • 0cb8763 Check against MANDATORY flags prior to accepting to mempool
  • 8446262 Reject headers that build on an invalid parent
  • 008138c Bugfix: only track UTXO modification after lookup
  • P2P protocol and network code:
  • f80cffa Do not trigger a DoS ban if SCRIPT_VERIFY_NULLDUMMY fails
  • c30329a Add testnet DNS seed of Alex Kotenko
  • 45a4baf Add testnet DNS seed of Andreas Schildbach
  • f1920e8 Ping automatically every 2 minutes (unconditionally)
  • 806fd19 Allocate receive buffers in on the fly
  • 6ecf3ed Display unknown commands received
  • aa81564 Track peers’ available blocks
  • caf6150 Use async name resolving to improve net thread responsiveness
  • 9f4da19 Use pong receive time rather than processing time
  • 0127a9b remove SOCKS4 support from core and GUI, use SOCKS5
  • 40f5cb8 Send rejects and apply DoS scoring for errors in direct block validation
  • dc942e6 Introduce whitelisted peers
  • c994d2e prevent SOCKET leak in BindListenPort()
  • a60120e Add built-in seeds for .onion
  • 60dc8e4 Allow -onlynet=onion to be used
  • 3a56de7 addrman: Do not propagate obviously poor addresses onto the network
  • 6050ab6 netbase: Make SOCKS5 negotiation interruptible
  • 604ee2a Remove tx from AlreadyAskedFor list once we receive it, not when we process it
  • efad808 Avoid reject message feedback loops
  • 71697f9 Separate protocol versioning from clientversion
  • 20a5f61 Don’t relay alerts to peers before version negotiation
  • b4ee0bd Introduce preferred download peers
  • 845c86d Do not use third party services for IP detection
  • 12a49ca Limit the number of new addressses to accumulate
  • 35e408f Regard connection failures as attempt for addrman
  • a3a7317 Introduce 10 minute block download timeout
  • 3022e7d Require sufficent priority for relay of free transactions
  • 58fda4d Update seed IPs, based on bitcoin.sipa.be crawler data
  • 18021d0 Remove bitnodes.io from dnsseeds.
  • Validation:
  • 6fd7ef2 Also switch the (unused) verification code to low-s instead of even-s
  • 584a358 Do merkle root and txid duplicates check simultaneously
  • 217a5c9 When transaction outputs exceed inputs, show the offending amounts so as to aid debugging
  • f74fc9b Print input index when signature validation fails, to aid debugging
  • 6fd59ee script.h: set_vch() should shift a >32 bit value
  • d752ba8 Add SCRIPT_VERIFY_SIGPUSHONLY (BIP62 rule 2) (test only)
  • 698c6ab Add SCRIPT_VERIFY_MINIMALDATA (BIP62 rules 3 and 4) (test only)
  • ab9edbd script: create sane error return codes for script validation and remove logging
  • 219a147 script: check ScriptError values in script tests
  • 0391423 Discourage NOPs reserved for soft-fork upgrades
  • 98b135f Make STRICTENC invalid pubkeys fail the script rather than the opcode
  • 307f7d4 Report script evaluation failures in log and reject messages
  • ace39db consensus: guard against openssl’s new strict DER checks
  • 12b7c44 Improve robustness of DER recoding code
  • 76ce5c8 fail immediately on an empty signature
  • Build system:
  • f25e3ad Fix build in OS X 10.9
  • 65e8ba4 build: Switch to non-recursive make
  • 460b32d build: fix broken boost chrono check on some platforms
  • 9ce0774 build: Fix windows configure when using –with-qt-libdir
  • ea96475 build: Add mention of –disable-wallet to bdb48 error messages
  • 1dec09b depends: add shared dependency builder
  • c101c76 build: Add –with-utils (bitcoin-cli and bitcoin-tx, default=yes). Help string consistency tweaks. Target sanity check fix
  • e432a5f build: add option for reducing exports (v2)
  • 6134b43 Fixing condition ‘sabotaging’ MSVC build
  • af0bd5e osx: fix signing to make Gatekeeper happy (again)
  • a7d1f03 build: fix dynamic boost check when –with-boost= is used
  • d5fd094 build: fix qt test build when libprotobuf is in a non-standard path
  • 2cf5f16 Add libbitcoinconsensus library
  • 914868a build: add a deterministic dmg signer
  • 2d375fe depends: bump openssl to 1.0.1k
  • b7a4ecc Build: Only check for boost when building code that requires it
  • Wallet:
  • b33d1f5 Use fee/priority estimates in wallet CreateTransaction
  • 4b7b1bb Sanity checks for estimates
  • c898846 Add support for watch-only addresses
  • d5087d1 Use script matching rather than destination matching for watch-only
  • d88af56 Fee fixes
  • a35b55b Dont run full check every time we decrypt wallet
  • 3a7c348 Fix make_change to not create half-satoshis
  • f606bb9 fix a possible memory leak in CWalletDB::Recover
  • 870da77 fix possible memory leaks in CWallet::EncryptWallet
  • ccca27a Watch-only fixes
  • 9b1627d [Wallet] Reduce minTxFee for transaction creation to 1000 satoshis
  • a53fd41 Deterministic signing
  • 15ad0b5 Apply AreSane() checks to the fees from the network
  • 11855c1 Enforce minRelayTxFee on wallet created tx and add a maxtxfee option
  • GUI:
  • c21c74b osx: Fix missing dock menu with qt5
  • b90711c Fix Transaction details shows wrong To:
  • 516053c Make links in ‘About Bitcoin Core’ clickable
  • bdc83e8 Ensure payment request network matches client network
  • 65f78a1 Add GUI view of peer information
  • 06a91d9 VerifyDB progress reporting
  • fe6bff2 Add BerkeleyDB version info to RPCConsole
  • b917555 PeerTableModel: Fix potential deadlock. #4296
  • dff0e3b Improve rpc console history behavior
  • 95a9383 Remove CENT-fee-rule from coin control completely
  • 56b07d2 Allow setting listen via GUI
  • d95ba75 Log messages with type>QtDebugMsg as non-debug
  • 8969828 New status bar Unit Display Control and related changes
  • 674c070 seed OpenSSL PNRG with Windows event data
  • 509f926 Payment request parsing on startup now only changes network if a valid network name is specified
  • acd432b Prevent balloon-spam after rescan
  • 7007402 Implement SI-style (thin space) thoudands separator
  • 91cce17 Use fixed-point arithmetic in amount spinbox
  • bdba2dd Remove an obscure option no-one cares about
  • bd0aa10 Replace the temporary file hack currently used to change Bitcoin-Qt’s dock icon (OS X) with a buffer-based solution
  • 94e1b9e Re-work overviewpage UI
  • 8bfdc9a Better looking trayicon
  • b197bf3 disable tray interactions when client model set to 0
  • 1c5f0af Add column Watch-only to transactions list
  • 21f139b Fix tablet crash. closes #4854
  • e84843c Broken addresses on command line no longer trigger testnet
  • a49f11d Change splash screen to normal window
  • 1f9be98 Disable App Nap on OSX 10.9+
  • 27c3e91 Add proxy to options overridden if necessary
  • 4bd1185 Allow “emergency” shutdown during startup
  • d52f072 Don’t show wallet options in the preferences menu when running with -disablewallet
  • 6093aa1 Qt: QProgressBar CPU-Issue workaround
  • 0ed9675 [Wallet] Add global boolean whether to send free transactions (default=true)
  • ed3e5e4 [Wallet] Add global boolean whether to pay at least the custom fee (default=true)
  • e7876b2 [Wallet] Prevent user from paying a non-sense fee
  • c1c9d5b Add Smartfee to GUI
  • e0a25c5 Make askpassphrase dialog behave more sanely
  • 94b362d On close of splashscreen interrupt verifyDB
  • b790d13 English translation update
  • 8543b0d Correct tooltip on address book page
  • Tests:
  • b41e594 Fix script test handling of empty scripts
  • d3a33fc Test CHECKMULTISIG with m == 0 and n == 0
  • 29c1749 Let tx (in)valid tests use any SCRIPT_VERIFY flag
  • 6380180 Add rejection of non-null CHECKMULTISIG dummy values
  • 21bf3d2 Add tests for BoostAsioToCNetAddr
  • b5ad5e7 Add Python test for -rpcbind and -rpcallowip
  • 9ec0306 Add CODESEPARATOR/FindAndDelete() tests
  • 75ebced Added many rpc wallet tests
  • 0193fb8 Allow multiple regression tests to run at once
  • 92a6220 Hook up sanity checks
  • 3820e01 Extend and move all crypto tests to crypto_tests.cpp
  • 3f9a019 added list/get received by address/ account tests
  • a90689f Remove timing-based signature cache unit test
  • 236982c Add skiplist unit tests
  • f4b00be Add CChain::GetLocator() unit test
  • b45a6e8 Add test for getblocktemplate longpolling
  • cdf305e Set -discover=0 in regtest framework
  • ed02282 additional test for OP_SIZE in script_valid.json
  • 0072d98 script tests: BOOLAND, BOOLOR decode to integer
  • 833ff16 script tests: values that overflow to 0 are true
  • 4cac5db script tests: value with trailing 0x00 is true
  • 89101c6 script test: test case for 5-byte bools
  • d2d9dc0 script tests: add tests for CHECKMULTISIG limits
  • d789386 Add “it works” test for bitcoin-tx
  • df4d61e Add bitcoin-tx tests
  • aa41ac2 Test IsPushOnly() with invalid push
  • 6022b5d Make script_{valid,invalid}.json validation flags configurable
  • 8138cbe Add automatic script test generation, and actual checksig tests
  • ed27e53 Add coins_tests with a large randomized CCoinViewCache test
  • 9df9cf5 Make SCRIPT_VERIFY_STRICTENC compatible with BIP62
  • dcb9846 Extend getchaintips RPC test
  • 554147a Ensure MINIMALDATA invalid tests can only fail one way
  • dfeec18 Test every numeric-accepting opcode for correct handling of the numeric minimal encoding rule
  • 2b62e17 Clearly separate PUSHDATA and numeric argument MINIMALDATA tests
  • 16d78bd Add valid invert of invalid every numeric opcode tests
  • f635269 tests: enable alertnotify test for Windows
  • 7a41614 tests: allow rpc-tests to get filenames for bitcoind and bitcoin-cli from the environment
  • 5122ea7 tests: fix forknotify.py on windows
  • fa7f8cd tests: remove old pull-tester scripts
  • 7667850 tests: replace the old (unused since Travis) tests with new rpc test scripts
  • f4e0aef Do signature-s negation inside the tests
  • 1837987 Optimize -regtest setgenerate block generation
  • 2db4c8a Fix node ranges in the test framework
  • a8b2ce5 regression test only setmocktime RPC call
  • daf03e7 RPC tests: create initial chain with specific timestamps
  • 8656dbb Port/fix txnmall.sh regression test
  • ca81587 Test the exact order of CHECKMULTISIG sig/pubkey evaluation
  • 7357893 Prioritize and display -testsafemode status in UI
  • f321d6b Add key generation/verification to ECC sanity check
  • 132ea9b miner_tests: Disable checkpoints so they don’t fail the subsidy-change test
  • bc6cb41 QA RPC tests: Add tests block block proposals
  • f67a9ce Use deterministically generated script tests
  • 11d7a7d [RPC] add rpc-test for http keep-alive (persistent connections)
  • 34318d7 RPC-test based on invalidateblock for mempool coinbase spends
  • 76ec867 Use actually valid transactions for script tests
  • c8589bf Add actual signature tests
  • e2677d7 Fix smartfees test for change to relay policy
  • 263b65e tests: run sanity checks in tests too
  • Miscellaneous:
  • 122549f Fix incorrect checkpoint data for testnet3
  • 5bd02cf Log used config file to debug.log on startup
  • 68ba85f Updated Debian example bitcoin.conf with config from wiki + removed some cruft and updated comments
  • e5ee8f0 Remove -beta suffix
  • 38405ac Add comment regarding experimental-use service bits
  • be873f6 Issue warning if collecting RandSeed data failed
  • 8ae973c Allocate more space if necessary in RandSeedAddPerfMon
  • 675bcd5 Correct comment for 15-of-15 p2sh script size
  • fda3fed libsecp256k1 integration
  • 2e36866 Show nodeid instead of addresses in log (for anonymity) unless otherwise requested
  • cd01a5e Enable paranoid corruption checks in LevelDB >= 1.16
  • 9365937 Add comment about never updating nTimeOffset past 199 samples
  • 403c1bf contrib: remove getwork-based pyminer (as getwork API call has been removed)
  • 0c3e101 contrib: Added systemd .service file in order to help distributions integrate bitcoind
  • 0a0878d doc: Add new DNSseed policy
  • 2887bff Update coding style and add .clang-format
  • 5cbda4f Changed LevelDB cursors to use scoped pointers to ensure destruction when going out of scope
  • b4a72a7 contrib/linearize: split output files based on new-timestamp-year or max-file-size
  • e982b57 Use explicit fflush() instead of setvbuf()
  • 234bfbf contrib: Add init scripts and docs for Upstart and OpenRC
  • 01c2807 Add warning about the merkle-tree algorithm duplicate txid flaw
  • d6712db Also create pid file in non-daemon mode
  • 772ab0e contrib: use batched JSON-RPC in linarize-hashes (optimization)
  • 7ab4358 Update bash-completion for v0.10
  • 6e6a36c contrib: show pull # in prompt for github-merge script
  • 5b9f842 Upgrade leveldb to 1.18, make chainstate databases compatible between ARM and x86 (issue #2293)
  • 4e7c219 Catch UTXO set read errors and shutdown
  • 867c600 Catch LevelDB errors during flush
  • 06ca065 Fix CScriptID(const CScript& in) in empty script case

New in Bitcoin Core 0.9.3 (Sep 29, 2014)

  • RPC:
  • Avoid a segfault on getblock if it can’t read a block from disk
  • Add paranoid return value checks in base58
  • Protocol and network code:
  • Don’t poll showmyip.com, it doesn’t exist anymore
  • Add a way to limit deserialized string lengths and use it
  • Add a new checkpoint at block 295,000
  • Increase IsStandard() scriptSig length
  • Avoid querying DNS seeds, if we have open connections
  • Remove a useless millisleep in socket handler
  • Stricter memory limits on CNode
  • Better orphan transaction handling
  • Add -maxorphantx= and -maxorphanblocks= options for control over the maximum orphan transactions and blocks
  • Wallet:
  • Check redeemScript size does not exceed 520 byte limit
  • Ignore (and warn about) too-long redeemScripts while loading wallet
  • GUI:
  • fix ‘opens in testnet mode when presented with a BIP-72 link with no fallback’
  • AvailableCoins: acquire cs_main mutex
  • Fix unicode character display on MacOSX
  • Miscellaneous:
  • key.cpp: fail with a friendlier message on missing ssl EC support
  • Remove bignum dependency for scripts
  • Upgrade OpenSSL to 1.0.1i (see https://www.openssl.org/news/secadv_20140806.txt - just to be sure, no critical issues for Bitcoin Core)
  • Upgrade miniupnpc to 1.9.20140701
  • Fix boost detection in build system on some platforms

New in Bitcoin Core 0.9.3 RC 1 (Sep 1, 2014)

  • RPC:
  • Avoid a segfault on getblock if it can't read a block from disk
  • Add paranoid return value checks in base58
  • Protocol and network code:
  • Don't poll showmyip.com, it doesn't exist anymore
  • Add a way to limit deserialized string lengths and use it
  • Add a new checkpoint at block 295,000
  • Increase IsStandard() scriptSig length
  • Avoid querying DNS seeds, if we have open connections
  • Wallet:
  • Check redeemScript size does not exceed 520 byte limit
  • Ignore (and warn about) too-long redeemScripts while loading wallet
  • GUI:
  • fix 'opens in testnet mode when presented with a BIP-72 link with no fallback'
  • AvailableCoins: acquire cs_main mutex
  • Fix unicode character display on MacOSX
  • Miscellaneous:
  • key.cpp: fail with a friendlier message on missing ssl EC support
  • Remove bignum dependency for scripts
  • Upgrade OpenSSL to 1.0.1i (see https://www.openssl.org/news/secadv_20140806.txt just to be sure, no critical issues for Bitcoin Core)
  • Upgrade miniupnpc to 1.9.20140701
  • Fix boost detection in build system on some platforms

New in Bitcoin Core 0.9.2.1 (Jul 2, 2014)

  • The OpenSSL dependency in the gitian builds has been upgraded to 1.0.1h because of CVE-2014-0224.
  • RPC:
  • Add getwalletinfo, getblockchaininfo and getnetworkinfo calls (will replace hodge-podge getinfo at some point)
  • Add a relayfee field to getnetworkinfo
  • Fix RPC related shutdown hangs and leaks
  • Always show syncnode in getpeerinfo
  • sendrawtransaction: report the reject code and reason, and make it possible to re-send transactions that are already in the mempool
  • getmininginfo show right genproclimit
  • Command-line options:
  • Fix -printblocktree output
  • Show error message if ReadConfigFile fails
  • Block-chain handling and storage:
  • Fix for GetBlockValue() after block 13,440,000 (BIP42)
  • Upgrade leveldb to 1.17
  • Protocol and network code:
  • Per-peer block download tracking and stalled download detection
  • Add new DNS seed from bitnodes.io
  • Prevent socket leak in ThreadSocketHandler and correct some proxy related socket leaks
  • Use pnode->nLastRecv as sync score (was the wrong way around)
  • Wallet:
  • Make GetAvailableCredit run GetHash() only once per transaction (performance improvement)
  • Lower paytxfee warning threshold from 0.25 BTC to 0.01 BTC
  • Fix importwallet nTimeFirstKey (trigger necessary rescans)
  • Log BerkeleyDB version at startup
  • CWallet init fix
  • Build system:
  • Add OSX build descriptors to gitian
  • Fix explicit –disable-qt-dbus
  • Don’t require db_cxx.h when compiling with wallet disabled and GUI enabled
  • Improve missing boost error reporting
  • Upgrade miniupnpc version to 1.9
  • gitian-linux: –enable-glibc-back-compat for binary compatibility with old distributions
  • gitian: don’t export any symbols from executable
  • gitian: build against Qt 4.6
  • devtools: add script to check symbols from Linux gitian executables
  • Remove build-time no-IPv6 setting
  • GUI:
  • Fix various coin control visual issues
  • Show number of in/out connections in debug console
  • Show weeks as well as years behind for long timespans behind
  • Enable and disable the Show and Remove buttons for requested payments history based on whether any entry is selected.
  • Show also value for options overridden on command line in options dialog
  • Fill in label from address book also for URIs
  • Fixes feel when resizing the last column on tables (issue #2862)
  • Fix ESC in disablewallet mode
  • Add expert section to wallet tab in optionsdialog
  • Do proper boost::path conversion (fixes unicode in datadir)
  • Only override -datadir if different from the default (fixes -datadir in config file)
  • Show rescan progress at start-up
  • Show importwallet progress
  • Get required locks upfront in polling functions (avoids hanging on locks)
  • Catch Windows shutdown events while client is running
  • Optionally add third party links to transaction context menu
  • Check for !pixmap() before trying to export QR code (avoids crashes when no QR code could be generated)
  • Fix “Start bitcoin on system login”
  • Miscellaneous:
  • Replace non-threadsafe C functions (gmtime, strerror and setlocale)
  • Add missing cs_main and wallet locks
  • Avoid exception at startup when system locale not recognized
  • Changed bitrpc.py’s raw_input to getpass for passwords to conceal characters during command line input
  • devtools: add a script to fetch and postprocess translations

New in Bitcoin Core 0.9.2 (Jun 18, 2014)

  • A new minor version release, bringing mostly bug fixes and some minor improvements. OpenSSL has been updated because of a security issue (CVE-2014-0224). Upgrading to this release is recommended.

New in Bitcoin Core 0.9.2 RC 1 (Jun 4, 2014)

  • RPC:
  • Add `getwalletinfo`, `getblockchaininfo` and `getnetworkinfo` calls (will replace hodge-podge `getinfo` at some point)
  • Add a `relayfee` field to `getnetworkinfo`
  • Fix RPC related shutdown hangs and leaks
  • Always show syncnode in `getpeerinfo`
  • `sendrawtransaction`: report the reject code and reason, and make it possible to re-send transactions that are already in the mempool
  • `getmininginfo` show right genproclimit
  • Command-line options:
  • Fix `-printblocktree` output
  • Show error message if ReadConfigFile fails
  • Block-chain handling and storage:
  • Fix for GetBlockValue() after block 13,440,000 (BIP42)
  • Upgrade leveldb to 1.17
  • Protocol and network code:
  • Per-peer block download tracking and stalled download detection
  • Add new DNS seed from bitnodes.io
  • Prevent socket leak in ThreadSocketHandler and correct some proxy related socket leaks
  • Wallet:
  • Make GetAvailableCredit run GetHash() only once per transaction (performance improvement)
  • Lower paytxfee warning threshold from 0.25 BTC to 0.01 BTC
  • Fix importwallet nTimeFirstKey (trigger necessary rescans)
  • Log BerkeleyDB version at startup
  • Build system:
  • Add OSX build descriptors to gitian
  • Fix explicit --disable-qt-dbus
  • Don't require db_cxx.h when compiling with wallet disabled and GUI enabled
  • Improve missing boost error reporting
  • Upgrade miniupnpc version to 1.9
  • gitian-linux: --enable-glibc-back-compat for binary compatibility with old distributions
  • gitian: don't export any symbols from executable
  • gitian: build against Qt 4.6
  • devtools: add script to check symbols from Linux gitian executables
  • Remove build-time no-IPv6 setting
  • GUI:
  • Fix various coin control visual issues
  • Show number of in/out connections in debug console
  • Show weeks as well as years behind for long timespans behind
  • Enable and disable the Show and Remove buttons for requested payments history based on whether any entry is selected.
  • Show also value for options overridden on command line in options dialog
  • Fill in label from address book also for URIs
  • Fixes feel when resizing the last column on tables (issue #2862)
  • Fix ESC in disablewallet mode
  • Add expert section to wallet tab in optionsdialog
  • Do proper boost::path conversion (fixes unicode in datadir)
  • Only override -datadir if different from the default (fixes -datadir in config file)
  • Show rescan progress at start-up
  • Show importwallet progress
  • Get required locks upfront in polling functions (avoids hanging on locks)
  • Catch Windows shutdown events while client is running
  • Optionally add third party links to transaction context menu
  • Check for !pixmap() before trying to export QR code (avoids crashes when no QR code could be generated)
  • Fix "Start bitcoin on system login"
  • Miscellaneous:
  • Replace non-threadsafe C functions (gmtime, strerror and setlocale)
  • Add missing cs_main and wallet locks
  • Avoid exception at startup when system locale not recognized
  • Changed bitrpc.py's raw_input to getpass for passwords to conceal characters during command line input
  • devtools: add a script to fetch and postprocess translations

New in Bitcoin Core 0.9.1 (Apr 9, 2014)

  • This release fixes the following vulnerabilities which can affect the Bitcoin Core software:
  • A missing bounds check in the handling of the TLS heartbeat extension can be used to reveal up to 64k of memory to a connected client or server.
  • The Montgomery ladder implementation in OpenSSL does not ensure that certain swap operations have a constant-time behavior, which makes it easier for local users to obtain ECDSA nonces via a FLUSH+RELOAD cache side-channel attack.

New in Bitcoin Core 0.9.0 (Mar 20, 2014)

  • RPC:
  • New notion of 'conflicted' transactions, reported as confirmations: -1
  • 'listreceivedbyaddress' now provides tx ids
  • Add raw transaction hex to 'gettransaction' output
  • Updated help and tests for 'getreceivedby(account|address)'
  • In 'getblock', accept 2nd 'verbose' parameter, similar to getrawtransaction, but defaulting to 1 for backward compatibility
  • Add 'verifychain', to verify chain database at runtime
  • Add 'dumpwallet' and 'importwallet' RPCs
  • 'keypoolrefill' gains optional size parameter
  • Add 'getbestblockhash', to return tip of best chain
  • Add 'chainwork' (the total work done by all blocks since the genesis block) to 'getblock' output
  • Make RPC password resistant to timing attacks
  • Clarify help messages and add examples
  • Add 'getrawchangeaddress' call for raw transaction change destinations
  • Reject insanely high fees by default in 'sendrawtransaction'
  • Add RPC call 'decodescript' to decode a hex-encoded transaction script
  • Make 'validateaddress' provide redeemScript
  • Add 'getnetworkhashps' to get the calculated network hashrate
  • New RPC 'ping' command to request ping, new 'pingtime' and 'pingwait' fields in 'getpeerinfo' output
  • Adding new 'addrlocal' field to 'getpeerinfo' output
  • Add verbose boolean to 'getrawmempool'
  • Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance
  • Explicitly ensure that wallet is unlocked in `importprivkey`
  • Add check for valid keys in `importprivkey`
  • Command-line options:
  • New option: -nospendzeroconfchange to never spend unconfirmed change outputs
  • New option: -zapwallettxes to rebuild the wallet's transaction information
  • Rename option '-tor' to '-onion' to better reflect what it does
  • Add '-disablewallet' mode to let bitcoind run entirely without wallet (when built with wallet)
  • Update default '-rpcsslciphers' to include TLSv1.2
  • make '-logtimestamps' default on and rework help-message
  • RPC client option: '-rpcwait', to wait for server start
  • Remove '-logtodebugger'
  • Allow `-noserver` with bitcoind
  • Block-chain handling and storage:
  • Update leveldb to 1.15
  • Check for correct genesis (prevent cases where a datadir from the wrong network is accidentally loaded)
  • Allow txindex to be removed and add a reindex dialog
  • Log aborted block database rebuilds
  • Store orphan blocks in serialized form, to save memory
  • Limit the number of orphan blocks in memory to 750
  • Fix non-standard disconnected transactions causing mempool orphans
  • Add a new checkpoint at block 279,000
  • Wallet:
  • Bug fixes and new regression tests to correctly compute the balance of wallets containing double-spent (or mutated) transactions
  • Store key creation time. Calculate whole-wallet birthday.
  • Optimize rescan to skip blocks prior to birthday
  • Let user select wallet file with -wallet=foo.dat
  • Consider generated coins mature at 101 instead of 120 blocks
  • Improve wallet load time
  • Don't count txins for priority to encourage sweeping
  • Don't create empty transactions when reading a corrupted wallet
  • Fix rescan to start from beginning after importprivkey
  • Only create signatures with low S values
  • Mining:
  • Increase default -blockmaxsize/prioritysize to 750K/50K
  • 'getblocktemplate' does not require a key to create a block template
  • Mining code fee policy now matches relay fee policy
  • Protocol and network:
  • Drop the fee required to relay a transaction to 0.01mBTC per kilobyte
  • Send tx relay flag with version
  • New 'reject' P2P message (BIP 0061, see https://gist.github.com/gavinandresen/7079034 for draft)
  • Dump addresses every 15 minutes instead of 10 seconds
  • Relay OP_RETURN data TxOut as standard transaction type
  • Remove CENT-output free transaction rule when relaying
  • Lower maximum size for free transaction creation
  • Send multiple inv messages if mempool.size > MAX_INV_SZ
  • Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION
  • Do not treat fFromMe transaction differently when broadcasting
  • Process received messages one at a time without sleeping between messages
  • Improve logging of failed connections
  • Bump protocol version to 70002
  • Add some additional logging to give extra network insight
  • Added new DNS seed from bitcoinstats.com
  • Validation:
  • Log reason for non-standard transaction rejection
  • Prune provably-unspendable outputs, and adapt consistency check for it.
  • Detect any sufficiently long fork and add a warning
  • Call the -alertnotify script when we see a long or invalid fork
  • Fix multi-block reorg transaction resurrection
  • Reject non-canonically-encoded serialization sizes
  • Reject dust amounts during validation
  • Accept nLockTime transactions that finalize in the next block
  • Build system:
  • Switch to autotools-based build system
  • Build without wallet by passing `--disable-wallet` to configure, this removes the BerkeleyDB dependency
  • Upgrade gitian dependencies (libpng, libz, libupnpc, boost, openssl) to more recent versions
  • Windows 64-bit build support
  • Solaris compatibility fixes
  • Check integrity of gitian input source tarballs
  • Enable full GCC Stack-smashing protection for all OSes
  • GUI:
  • Switch to Qt 5.2.0 for Windows build
  • Add payment request (BIP 0070) support
  • Improve options dialog
  • Show transaction fee in new send confirmation dialog
  • Add total balance in overview page
  • Allow user to choose data directory on first start, when data directory is missing, or when the -choosedatadir option is passed
  • Save and restore window positions
  • Add vout index to transaction id in transactions details dialog
  • Add network traffic graph in debug window
  • Add open URI dialog
  • Add Coin Control Features
  • Improve receive coins workflow: make the 'Receive' tab into a form to request payments, and move historical address list functionality to File menu.
  • Rebrand to `Bitcoin Core`
  • Move initialization/shutdown to a thread. This prevents "Not responding" messages during startup. Also show a window during shutdown.
  • Don't regenerate autostart link on every client startup
  • Show and store message of normal bitcoin:URI
  • Fix richtext detection hang issue on very old Qt versions
  • OS X: Make use of the 10.8+ user notification center to display Growl-like notifications
  • OS X: Added NSHighResolutionCapable flag to Info.plist for better font rendering on Retina displays.
  • OS X: Fix bitcoin-qt startup crash when clicking dock icon
  • Linux: Fix Gnome bitcoin: URI handler
  • Miscellaneous:
  • Add Linux script (contrib/qos/tc.sh) to limit outgoing bandwidth
  • Add '-regtest' mode, similar to testnet but private with instant block generation with 'setgenerate' RPC.
  • Add 'linearize.py' script to contrib, for creating bootstrap.dat
  • Add separate bitcoin-cli client

New in Bitcoin Core 0.9.0 RC 3 (Mar 14, 2014)

  • RPC:
  • New notion of 'conflicted' transactions, reported as confirmations: -1
  • 'listreceivedbyaddress' now provides tx ids
  • Add raw transaction hex to 'gettransaction' output
  • Updated help and tests for 'getreceivedby(account|address)'
  • In 'getblock', accept 2nd 'verbose' parameter, similar to getrawtransaction, but defaulting to 1 for backward compatibility
  • Add 'verifychain', to verify chain database at runtime
  • Add 'dumpwallet' and 'importwallet' RPCs
  • 'keypoolrefill' gains optional size parameter
  • Add 'getbestblockhash', to return tip of best chain
  • Add 'chainwork' (the total work done by all blocks since the genesis block) to 'getblock' output
  • Make RPC password resistant to timing attacks
  • Clarify help messages and add examples
  • Add 'getrawchangeaddress' call for raw transaction change destinations
  • Reject insanely high fees by default in 'sendrawtransaction'
  • Add RPC call 'decodescript' to decode a hex-encoded transaction script
  • Make 'validateaddress' provide redeemScript
  • Add 'getnetworkhashps' to get the calculated network hashrate
  • New RPC 'ping' command to request ping, new 'pingtime' and 'pingwait' fields in 'getpeerinfo' output
  • Adding new 'addrlocal' field to 'getpeerinfo' output
  • Add verbose boolean to 'getrawmempool'
  • Add rpc command 'getunconfirmedbalance' to obtain total unconfirmed balance
  • Explicitly ensure that wallet is unlocked in `importprivkey`
  • Add check for valid keys in `importprivkey`
  • Command-line options:
  • New option: -nospendzeroconfchange to never spend unconfirmed change outputs
  • New option: -zapwallettxes to rebuild the wallet's transaction information
  • Rename option '-tor' to '-onion' to better reflect what it does
  • Add '-disablewallet' mode to let bitcoind run entirely without wallet (when built with wallet)
  • Update default '-rpcsslciphers' to include TLSv1.2
  • make '-logtimestamps' default on and rework help-message
  • RPC client option: '-rpcwait', to wait for server start
  • Remove '-logtodebugger'
  • Allow `-noserver` with bitcoind
  • Block-chain handling and storage:
  • Update leveldb to 1.15
  • Check for correct genesis (prevent cases where a datadir from the wrong network is accidentally loaded)
  • Allow txindex to be removed and add a reindex dialog
  • Log aborted block database rebuilds
  • Store orphan blocks in serialized form, to save memory
  • Limit the number of orphan blocks in memory to 750
  • Fix non-standard disconnected transactions causing mempool orphans
  • Add a new checkpoint at block 279,000
  • Wallet:
  • Bug fixes and new regression tests to correctly compute the balance of wallets containing double-spent (or mutated) transactions
  • Store key creation time. Calculate whole-wallet birthday.
  • Optimize rescan to skip blocks prior to birthday
  • Let user select wallet file with -wallet=foo.dat
  • Consider generated coins mature at 101 instead of 120 blocks
  • Improve wallet load time
  • Don't count txins for priority to encourage sweeping
  • Don't create empty transactions when reading a corrupted wallet
  • Fix rescan to start from beginning after importprivkey
  • Only create signatures with low S values
  • Mining:
  • Increase default -blockmaxsize/prioritysize to 750K/50K
  • 'getblocktemplate' does not require a key to create a block template
  • Mining code fee policy now matches relay fee policy
  • Protocol and network:
  • Drop the fee required to relay a transaction to 0.01mBTC per kilobyte
  • Send tx relay flag with version
  • New 'reject' P2P message (BIP 0061, see https://gist.github.com/gavinandresen/7079034 for draft)
  • Dump addresses every 15 minutes instead of 10 seconds
  • Relay OP_RETURN data TxOut as standard transaction type
  • Remove CENT-output free transaction rule when relaying
  • Lower maximum size for free transaction creation
  • Send multiple inv messages if mempool.size > MAX_INV_SZ
  • Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION
  • Do not treat fFromMe transaction differently when broadcasting
  • Process received messages one at a time without sleeping between messages
  • Improve logging of failed connections
  • Bump protocol version to 70002
  • Add some additional logging to give extra network insight
  • Added new DNS seed from bitcoinstats.com
  • Validation:
  • Log reason for non-standard transaction rejection
  • Prune provably-unspendable outputs, and adapt consistency check for it.
  • Detect any sufficiently long fork and add a warning
  • Call the -alertnotify script when we see a long or invalid fork
  • Fix multi-block reorg transaction resurrection
  • Reject non-canonically-encoded serialization sizes
  • Reject dust amounts during validation
  • Accept nLockTime transactions that finalize in the next block
  • Build system:
  • Switch to autotools-based build system
  • Build without wallet by passing `--disable-wallet` to configure, this removes the BerkeleyDB dependency
  • Upgrade gitian dependencies (libpng, libz, libupnpc, boost, openssl) to more recent versions
  • Check integrity of gitian input source tarballs
  • Enable full GCC Stack-smashing protection for all OSes GUI:
  • Switch to Qt 5.2.0 for Windows build
  • Add payment request (BIP 0070) support
  • Improve options dialog
  • Show transaction fee in new send confirmation dialog
  • Add total balance in overview page
  • Allow user to choose data directory on first start, when data directory is missing, or when the -choosedatadir option is passed
  • Save and restore window positions
  • Add vout index to transaction id in transactions details dialog
  • Add network traffic graph in debug window
  • Add open URI dialog
  • Add Coin Control Features
  • Improve receive coins workflow: make the 'Receive' tab into a form to request payments, and move historical address list functionality to File menu.
  • Rebrand to `Bitcoin Core`
  • Move initialization/shutdown to a thread. This prevents "Not responding" messages during startup. Also show a window during shutdown.
  • Don't regenerate autostart link on every client startup
  • Show and store message of normal bitcoin:URI
  • Fix richtext detection hang issue on very old Qt versions
  • OS X: Make use of the 10.8+ user notification center to display Growl-like notifications
  • OS X: Added NSHighResolutionCapable flag to Info.plist for better font rendering on Retina displays.
  • OS X: Fix bitcoin-qt startup crash when clicking dock icon
  • Miscellaneous:
  • Add Linux script (contrib/qos/tc.sh) to limit outgoing bandwidth
  • Add '-regtest' mode, similar to testnet but private with instant block generation with 'setgenerate' RPC.
  • Add 'linearize.py' script to contrib, for creating bootstrap.dat
  • Add separate bitcoin-cli client

New in Bitcoin Core 0.8.6 (Dec 10, 2013)

  • Default block size increase for miners. (see https://gist.github.com/gavinandresen/7670433#086-accept-into-block)
  • Remove the all-outputs-must-be-greater-than-CENT-to-qualify-as-free rule for relaying (see https://gist.github.com/gavinandresen/7670433#086-relaying)
  • Lower maximum size for free transaction creation (see https://gist.github.com/gavinandresen/7670433#086-wallet)
  • OSX block chain database corruption fixes
  • Update leveldb to 1.13
  • Use fcntl with `F_FULLSYNC` instead of fsync on OSX
  • Use native Darwin memory barriers
  • Replace use of mmap in leveldb for improved reliability (only on OSX)
  • Fix nodes forwarding transactions with empty vins and getting banned
  • Network code performance and robustness improvements
  • Additional debug.log logging for diagnosis of network problems, log timestamps by default
  • Fix Bitcoin-Qt startup crash when clicking dock icon on OSX
  • Fix memory leaks in CKey::SetCompactSignature() and Key::SignCompact()
  • Fix rare GUI crash on send
  • Various small GUI, documentation and build fixes
  • Warning:
  • There have been frequent reports of users running out of virtual memory on 32-bit systems during the initial sync. Hence it is recommended to use a 64-bit executable if possible.

New in Bitcoin Core 0.8.5 (Sep 13, 2013)

  • Transactions with version numbers larger than 0x7fffffff were incorrectly being relayed and included in blocks.
  • Blocks containing transactions with version numbers larger than 0x7fffffff caused the code that checks for LevelDB database inconsistencies at startup to erroneously report database corruption and suggest that you reindex your database.
  • This release also contains a non-critical fix to the code that enforces BIP 34 (block height in the coinbase transaction).

New in Bitcoin Core 0.8.4 (Sep 4, 2013)

  • Maintenance release to fix a critical bug and three security issues

New in Bitcoin Core 0.8.3 (Jun 26, 2013)

  • Truncate over-size messages to prevent a memory exhaustion attack.
  • Fix a regression that causes excessive re-writing of the 'peers.dat' file.

New in Bitcoin Core 0.8.2 RC 3 (May 25, 2013)

  • This is a maintenance release that fixes many bugs and includes a few small new features.

New in Bitcoin Core 0.8.2 RC 1 (May 11, 2013)

  • This is a maintenance release that fixes many bugs and includes a few small new features.

New in Bitcoin Core 0.8.0 (Feb 20, 2013)

  • A major release designed to improve performance and handle the increasing volume of transactions on the network.

New in Bitcoin Core 0.7.1 (Oct 22, 2012)

  • New features:
  • Added a boolean argument to the RPC 'stop' command, if true sets -detachdb to create standalone database .dat files before shutting down.
  • -salvagewallet command-line option, which moves any existing wallet.dat to wallet.{timestamp}.dat and then attempts to salvage public/private keys and master encryption keys (if the wallet is encrypted) into a new wallet.dat. This should only be used if your wallet becomes corrupted, and is not intended to replace regular wallet backups.
  • Import $DataDir/bootstrap.dat automatically, if it exists.
  • Dependency changes:
  • Qt 4.8.2 for Windows builds
  • openssl 1.0.1c
  • Bug fixes:
  • Clicking on a bitcoin: URI on Windows should now launch Bitcoin-Qt properly.
  • When running -testnet, use RPC port 18332 by default.
  • Better detection and handling of corrupt wallet.dat and blkindex.dat files. Previous versions would crash with a DB_RUNRECOVERY exception, this version detects most problems and tells you how to recover if it cannot recover itself.
  • Fixed an uninitialized variable bug that could cause transactions to be reported out of order.
  • Fixed a bug that could cause occasional crashes on exit.
  • Warn the user that they need to create fresh wallet backups after they encrypt their wallet.

New in Bitcoin Core 0.7.0 (Sep 18, 2012)

  • Incompatible Changes:
  • Replaced the 'getmemorypool' RPC command with 'getblocktemplate/submitblock' and 'getrawmempool' commands.
  • Remove deprecated RPC 'getblocknumber'
  • Bitcoin Improvement Proposals implemented:
  • BIP 22 - 'getblocktemplate', 'submitblock' RPCs
  • BIP 34 - block version 2, height in coinbase
  • BIP 35 - 'mempool' message, extended 'getdata' message behavior
  • Core bitcoin handling and blockchain database:
  • Reduced CPU usage, by eliminating some redundant hash calculations
  • Cache signature verifications, to eliminate redundant signature checks
  • Transactions with zero-value outputs are considered non-standard
  • Mining: when creating new blocks, sort 'paid' area by fee-per-kb
  • Database: better validation of on-disk stored data
  • Database: minor optimizations and reliability improvements
  • -loadblock=FILE will import an external block file
  • Additional DoS (denial-of-service) prevention measures
  • New blockchain checkpoint at block 193,000
  • JSON-RPC API:
  • Internal HTTP server is now thread-per-connection, rather than a single-threaded queue that would stall on network I/O.
  • Internal HTTP server supports HTTP/1.1, pipelined requests and connection keep-alive.
  • Support JSON-RPC 2.0 batches, to encapsulate multiple JSON-RPC requests within a single HTTP request.
  • IPv6 support
  • Added raw transaction API.
  • Added 'getrawmempool', to list contents of TX memory pool
  • Added 'getpeerinfo', to list data about each connected network peer
  • Added 'listaddressgroupings' for better coin control
  • Rework getblock call.
  • Remove deprecated RPC 'getblocknumber'
  • Remove superceded RPC 'getmemorypool' (see BIP 22, above)
  • listtransactions output now displays "smart" times for transactions, and 'blocktime' and 'timereceived' fields were added
  • P2P networking:
  • IPv6 support
  • Tor hidden service support (see doc/Tor.txt)
  • Attempts to fix "stuck blockchain download" problems
  • Replace BDB database "addr.dat" with internally-managed "peers.dat" file containing peer address data.
  • Lower default send buffer from 10MB to 1MB
  • proxy: SOCKS5 by default
  • Support connecting by hostnames passed to proxy
  • Add -seednode connections, and use this instead of DNS seeds when proxied
  • Added -externalip and -discover
  • Add -onlynet to connect only to a given network (IPv4, IPv6, or Tor)
  • Separate listening sockets, -bind=
  • Qt GUI:
  • Add UI RPC console / debug window
  • Re-Enable URI handling on Windows, add safety checks and tray-notifications
  • Harmonize the use of ellipsis ("...") to be used in menus, but not on buttons
  • Add 2 labels to the overviewpage that display Wallet and Transaction status (obsolete or current)
  • Extend the optionsdialog (e.g. language selection) and re-work it to a tabbed UI
  • Merge sign/verify message into a single window with tabbed UI
  • Ensure a changed bitcoin unit immediately updates all GUI elements that use units
  • Update QR Code dialog
  • Improve error reporting at startup
  • Fine-grained UI updates for a much smoother UI during block downloads
  • Remove autocorrection of 0/i in addresses in UI
  • Reorganize tray icon menu into more logical order
  • Persistently poll for balance change when number of blocks changed
  • Much better translations
  • Override progress bar design on platforms with segmented progress bars to assist with readability
  • Added 'immature balance' display on the overview page
  • (Windows only): enable ASLR and DEP for bitcoin-qt.exe
  • (Windows only): add meta-data to bitcoin-qt.exe (e.g. description)
  • Internal codebase:
  • Additional unit tests
  • Compile warning fixes
  • Miscellaneous:
  • Reopen debug.log upon SIGHUP
  • Bash programmable completion for bitcoind(1)
  • On supported OS's, each thread is given a useful name

New in Bitcoin Core 0.7.0 RC 1 (Aug 29, 2012)

  • Add UI RPC console / debug window
  • Re-Enable URI handling on Windows, add safety checks and tray-notifications
  • Add 2 labels to the overviewpage that display Wallet and Transaction status (obsolete or current)
  • Extend the optionsdialog (e.g. language selection) and re-work it to a tabbed UI
  • Merge sign/verify message into a single window with tabbed UI
  • Improve error reporting at startup
  • Fine-grained UI updates for a much smoother UI during block downloads
  • Reorganize tray icon menu into more logical order
  • Persistently poll for balance change when number of blocks changed
  • Much better translations
  • Added 'immature balance' display on the overview page

New in Bitcoin Core 0.6.3 (Jun 25, 2012)

  • Fixed a serious denial-of-service attack that could cause the bitcoin process to become unresponsive.
  • Optimized the process of checking transaction signatures, to speed up processing of new block messages and make propagating blocks across the network faster.
  • Fixed an obscure bug that could cause the bitcoin process to get stuck on an invalid block-chain, if the invalid chain was hundreds of blocks long.
  • Bitcoin-Qt no longer automatically selects the first address in the address book (Issue #1384). Fixed minimize-to-dock behavior of Bitcon-Qt on the Mac.
  • Added a block checkpoint at block 185,333 to speed up initial blockchain download.

New in Bitcoin Core 0.6.2 (May 9, 2012)

  • This is a bug-fix release with no major new features.

New in Bitcoin Core 0.6.0 (Mar 31, 2012)

  • This release includes many bug fixes, performance improvements and new features over version 0.5.0, and we recommend that everybody upgrade.

New in Bitcoin Core 0.6.0 RC 2 (Mar 1, 2012)

  • Backup Wallet menu option.
  • Bitcoin-Qt can display and save QR codes for sending and receiving addresses.
  • New context menu on addresses to copy/edit/delete them.
  • New Sign Message dialog that allows you to prove that you own a bitcoin address by creating a digital signature.
  • Wallets created with this version of bitcoin will use 33-byte 'compressed' public keys instead of 65-byte public keys, resulting in smaller transactions and less traffic on the bitcoin network. The shorter keys are completely compatible with older versions.
  • New command-line argument -blocknotify= that will spawn a shell process to run when a new block is accepted.
  • New command-line argument -splash=0 to disable Bitcoin-Qt's initial splash screen validateaddress JSON-RPC api command output includes two new fields for addresses in the wallet: pubkey : hexadecimal public key iscompressed : true if pubkey is a short 33-byte key New JSON-RPC api commands for dumping/importing private keys from the wallet (dumprivkey, importprivkey).
  • New JSON-RPC api command for getting information about blocks (getblock, getblockhash). New JSON-RPC api command for getting extra information related to mining (getmininginfo).

New in Bitcoin Core 0.5.2 (Jan 23, 2012)

  • Check all transactions in blocks after the last checkpoint (0.5.0 and 0.5.1 skipped checking ECDSA signatures during initial blockchain download; this was not a security vulnerability).
  • Cease locking memory used by non-sensitive information (this caused a huge performance hit on some platforms, especially noticable during initial blockchain download).
  • Fixed some address-handling deadlocks (client freezes).
  • No longer accept inbound connections over the internet when Bitcoin is being used with Tor (identity leak).
  • Re-enable SSL support for the JSON-RPC interface (it was unintentionally disabled for the 0.5.0 and 0.5.1 release Linux binaries).
  • Use the correct base transaction fee of 0.0005 BTC for accepting transactions into mined blocks (since 0.4.0, it was incorrectly accepting 0.0001 BTC which was only meant to be relayed).
  • Don’t show “IP” for transactions which are not necessarily IP transactions.
  • Add new DNS seeds (maintained by Pieter Wuille and Luke Dashjr).

New in Bitcoin Core 0.5.1 (Dec 20, 2011)

  • Re-enable SSL support for the JSON-RPC interface (it was unintentionally disabled for the 0.5.0 release binaries).
  • The code that finds peers via “dns seeds” no longer stops bitcoin startup if one of the dns seed machines is down.
  • Tooltips on the transaction list view were rendering incorrectly (as black boxes or with a transparent background).
  • Prevent a denial-of-service attack involving flooding a bitcoin node with orphan blocks.
  • The wallet passphrase dialog now warns you if the caps lock key was pressed.
  • Improved searching in addresses and labels in bitcoin-qt.

New in Bitcoin Core 0.5.0 (Nov 21, 2011)

  • MAJOR GUI CHANGES:
  • "Splash" graphics at startup that show address/wallet/blockchain loading progress.
  • "Synchronizing with network" progress bar to show block-chain download progress.
  • Icons at the bottom of the window that show how well connected you are to the network, with tooltips to display details.
  • Drag and drop support for bitcoin: URIs on web pages.
  • Export transactions as a .csv file. Many other GUI improvements, large and small.
  • RPC CHANGES:
  • getmemorypool : new RPC command, provides everything needed to construct a block with a custom generation transaction and submit a solution list sinceblock
  • new RPC command, list transactions since given block signmessage/verifymessage
  • new RPC commands to sign a message with one of your private keys or verify that a message signed by the private key associated with a bitcoin address.
  • GENERAL CHANGES:
  • Faster initial block download.

New in Bitcoin Core 0.5.0 RC 5 (Nov 16, 2011)

  • Faster initial block download.