Skip to content

Release Notes v0.17.1

Edward Iskra edited this page May 17, 2020 · 4 revisions
Clone this wiki locally

BTG / Bitcoin Gold Core version 0.17.1

Signed binaries and source code available from:


This is a new major version release, including new features, various bugfixes and performance improvements, as well as updated translations. It is based on Bitcoin Core 0.17.1.

Please report bugs using the issue tracker at GitHub:

How to Upgrade

If you are running an older version, shut it down. Wait until it has completely shut down (which might take a few minutes for older versions), then run the installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac) or bitcoind/bitcoin-qt (on Linux).

If your node has a txindex, the txindex db will be migrated the first time you run 0.17.1 or newer, which may take up to a few hours. Your node will not be functional until this migration completes.

Downgrading warning

Wallets created in 0.17.1 and later are not compatible with versions prior to 0.17.1 and will not work if you try to use newly created wallets in older versions. Existing wallets that were created with older versions are not affected by this.


BTG Core is extensively tested on multiple operating systems using the Linux kernel, macOS 10.8+, and Windows 10. Windows Vista and later should work, while Windows XP is not supported.

BTG Core should also work on most other Unix-like systems but is not frequently tested on them.

From 0.17.1 onwards macOS <10.10 is no longer supported. 0.17.1 is built using Qt 5.9.x, which doesn't support versions of macOS older than 10.10.

Notable changes

This release pulls in updates, bugfixes, and new features to BTG Core from Bitcoin Core version 0.16.0 through 0.17.1. The following is a compiled list of all applicable changes for the v0.17.1 BTG release.

Compact Block support (BIP 152)

Support for block relay using the Compact Blocks protocol has been implemented for BTG.

The primary goal is reducing the bandwidth spikes at relay time, though in many cases it also reduces propagation delay. It is automatically enabled between compatible peers. BIP 152

As a side-effect, ordinary non-mining nodes will download and upload blocks faster if those blocks were produced by miners using similar transaction filtering policies. This means that a miner who produces a block with many transactions discouraged by your node will be relayed slower than one with only transactions already in your memory pool. The overall effect of such relay differences on the network may result in blocks which include widely-discouraged transactions losing a stale block race, and therefore miners may wish to configure their node to take common relay policies into consideration.

GUI changes

  • Block storage can be limited under Preferences, in the Main tab. Undoing this setting requires downloading the full blockchain again. This mode is incompatible with -txindex and -rescan.
  • Uses of "µBTC" in the GUI now also show the more colloquial term "bits", specified in BIP176.
  • The option to reuse a previous address has now been removed. This was justified by the need to "resend" an invoice, but now that we have the request history, that need should be gone.
  • Support for searching by TXID has been added, rather than just address and label.
  • A "Use available balance" option has been added to the send coins dialog, to add the remaining available wallet balance to a transaction output.
  • A toggle for unblinding the password fields on the password dialog has been added.

Wallet changes

Segwit Wallet

BTG Core 0.17.1 introduces full support for segwit in the wallet and user interfaces. A new -addresstype argument has been added, which supports legacy, p2sh-segwit (default), and bech32 addresses. It controls what kind of addresses are produced by getnewaddress, getaccountaddress, and createmultisigaddress. A -changetype argument has also been added, with the same options, and by default equal to -addresstype, to control which kind of change is used.

A new address_type parameter has been added to the getnewaddress and addmultisigaddress RPCs to specify which type of address to generate. A change_type argument has been added to the fundrawtransaction RPC to override the -changetype argument for specific transactions.

  • All segwit addresses created through getnewaddress or *multisig RPCs explicitly get their redeemscripts added to the wallet file. This means that downgrading after creating a segwit address will work, as long as the wallet file is up to date.
  • All segwit keys in the wallet get an implicit redeemscript added, without it being written to the file. This means recovery of an old backup will work, as long as you use new software.
  • All keypool keys that are seen used in transactions explicitly get their redeemscripts added to the wallet files. This means that downgrading after recovering from a backup that includes a segwit address will work

Note that some RPCs do not yet support segwit addresses. Notably, signmessage/verifymessage doesn't support segwit addresses, nor does importmulti at this time. Support for segwit in those RPCs will continue to be added in future versions.

P2WPKH change outputs are now used by default if any destination in the transaction is a P2WPKH or P2WSH output. This is done to ensure the change output is as indistinguishable from the other outputs as possible in either case.

BIP173 (Bech32) Address support ("bc1..." addresses)

Full support for native segwit addresses (BIP173 / Bech32) has now been added. This includes the ability to send to BIP173 addresses (including non-v0 ones), and generating these addresses (including as default new addresses, see above).

A checkbox has been added to the GUI to select whether a Bech32 address or P2SH-wrapped address should be generated when using segwit addresses. When launched with -addresstype=bech32 it is checked by default. When launched with -addresstype=legacy it is unchecked and disabled.

Upgrading non-HD wallets to HD wallets

Since BTG Core 0.15, creating new BIP 32 Hierarchical Deterministic wallets has been supported by BTG Core but old non-HD wallets could not be upgraded to HD. Now non-HD wallets can be upgraded to HD using the -upgradewallet command line option. This upgrade will result in the all keys in the keypool being marked as used and a new keypool generated. A new backup must be made when this upgrade is performed.

Additionally, -upgradewallet can be used to upgraded from a non-split HD chain (all keys generated with m/0'/0'/i') to a split HD chain (receiving keys generated with 'm/0'/0'/i' and change keys generated with m'/0'/1'/i'). When this upgrade occurs, all keys already in the keypool will remain in the keypool to be used until all keys from before the upgrade are exhausted. This is to avoid issues with backups and downgrades when some keys may come from the change key keypool. Users can begin using the new split HD chain keypools by using the newkeypool RPC to mark all keys in the keypool as used and begin using a new keypool generated from the split HD chain.

HD Master key rotation

A new RPC, sethdseed, has been introduced which allows users to set a new HD seed or set their own HD seed. This allows for a new HD seed to be used. A new backup must be made when a new HD seed is set.

HD-wallets by default

Due to a backward-incompatible change in the wallet database, wallets created with version 0.17.1 will be rejected by previous versions. Also, version 0.17.1 will only create hierarchical deterministic (HD) wallets. Note that this only applies to new wallets; wallets made with previous versions will not be upgraded to be HD.

Replace-By-Fee by default in GUI

The send screen now uses BIP125 RBF by default, regardless of -walletrbf. There is a checkbox to mark the transaction as final.

The RPC default remains unchanged: to use RBF, launch with -walletrbf=1 or use the replaceable argument for individual transactions.

Wallets directory configuration (-walletdir)

BTG Core now has more flexibility in where the wallets directory can be located. Previously wallet database files were stored at the top level of the bitcoin data directory. The behavior is now:

  • For new installations (where the data directory doesn't already exist), wallets will now be stored in a new wallets/ subdirectory inside the data directory by default.
  • For existing nodes (where the data directory already exists), wallets will be stored in the data directory root by default. If a wallets/ subdirectory already exists in the data directory root, then wallets will be stored in the wallets/ subdirectory by default.
  • The location of the wallets directory can be overridden by specifying a -walletdir=<path> option where <path> can be an absolute path to a directory or directory symlink.

Care should be taken when choosing the wallets directory location, as if it becomes unavailable during operation, funds may be lost.

The -wallet=<path> option now accepts full paths instead of requiring wallets to be located in the -walletdir directory.

Newly created wallet format

If -wallet=<path> is specified with a path that does not exist, it will now create a wallet directory at the specified location (containing a wallet.dat data file, a db.log file, and database/log.?????????? files) instead of just creating a data file at the path and storing log files in the parent directory. This should make backing up wallets more straightforward than before because the specified wallet path can just be directly archived without having to look in the parent directory for transaction log files.

For backwards compatibility, wallet paths that are names of existing data files in the -walletdir directory will continue to be accepted and interpreted the same as before.

Dynamic loading and creation of wallets

Previously, wallets could only be loaded or created at startup, by specifying -wallet parameters on the command line or in the bitcoingold.conf file. It is now possible to load, create and unload wallets dynamically at runtime:

  • Existing wallets can be loaded by calling the loadwallet RPC. The wallet can be specified as file/directory basename (which must be located in the walletdir directory), or as an absolute path to a file/directory.
  • New wallets can be created (and loaded) by calling the createwallet RPC. The provided name must not match a wallet file in the walletdir directory or the name of a wallet that is currently loaded.
  • Loaded wallets can be unloaded by calling the unloadwallet RPC.

This feature is currently only available through the RPC interface.

Coin selection

Partial spend avoidance

When an address is paid multiple times the coins from those separate payments can be spent separately which hurts privacy due to linking otherwise separate addresses. A new -avoidpartialspends flag has been added (default=false). If enabled, the wallet will always spend existing UTXO to the same address together even if it results in higher fees. If someone were to send coins to an address after it was used, those coins will still be included in future coin selections.

Configuration sections for testnet and regtest

It is now possible for a single configuration file to set different options for different networks. This is done by using sections or by prefixing the option with the network, such as:


If the following options are not in a section, they will only apply to mainnet: addnode=, connect=, port=, bind=, rpcport=, rpcbind= and wallet=. The options to choose a network (regtest= and testnet=) must be specified outside of sections.

Changed configuration options

  • -includeconf=<file> can be used to include additional configuration files. Only works inside the bitcoingold.conf file, not inside included files or from command-line. Multiple files may be included. Can be disabled from command- line via -noincludeconf. Note that multi-argument commands like -includeconf will override preceding -noincludeconf, i.e.


    as bitcoingold.conf will still include relative.conf.

'label' and 'account' APIs for wallet

A new 'label' API has been introduced for the wallet. This is intended as a replacement for the deprecated 'account' API. The 'account' can continue to be used in V0.17 by starting bgoldd with the '-deprecatedrpc=accounts' argument, and will be fully removed in V0.18.

The label RPC methods mirror the account functionality, with the following functional differences:

  • Labels can be set on any address, not just receiving addresses. This functionality was previously only available through the GUI.
  • Labels can be deleted by reassigning all addresses using the setlabel RPC method.
  • There isn't support for sending transactions from a label, or for determining which label a transaction was sent from.
  • Labels do not have a balance.

Here are the changes to RPC methods:

Deprecated Method New Method Notes
getaccount getaddressinfo getaddressinfo returns a json object with address information instead of just the name of the account as a string.
getaccountaddress n/a There is no replacement for getaccountaddress since labels do not have an associated receive address.
getaddressesbyaccount getaddressesbylabel getaddressesbylabel returns a json object with the addresses as keys, instead of a list of strings.
getreceivedbyaccount getreceivedbylabel no change in behavior
listaccounts listlabels listlabels does not return a balance or accept minconf and watchonly arguments.
listreceivedbyaccount listreceivedbylabel Both methods return new label fields, along with account fields for backward compatibility.
move n/a no replacement
sendfrom n/a no replacement
setaccount setlabel Both methods now:
  • allow assigning labels to any address, instead of raising an error if the address is not receiving address.
  • delete the previous label associated with an address when the final address using that label is reassigned to a different label, instead of making an implicit getaccountaddress call to ensure the previous label still has a receiving address.
Changed Method Notes
addmultisigaddress Renamed account named parameter to label. Still accepts account for backward compatibility if running with '-deprecatedrpc=accounts'.
getnewaddress Renamed account named parameter to label. Still accepts account for backward compatibility. if running with '-deprecatedrpc=accounts'
listunspent Returns new label fields. account field will be returned for backward compatibility if running with '-deprecatedrpc=accounts'
sendmany The account named parameter has been renamed to dummy. If provided, the dummy parameter must be set to the empty string, unless running with the -deprecatedrpc=accounts argument (in which case functionality is unchanged).
listtransactions Renamed account named parameter to label. Still accepts account for backward compatibility if running with '-deprecatedrpc=accounts'
getbalance account, minconf and include_watchonly parameters are deprecated, and can only be used if running with '-deprecatedrpc=accounts'

listtransactions label support

When bitcoin is configured with the -deprecatedrpc=accounts setting, specifying a label/account/dummy argument will return both outgoing and incoming transactions. Without the -deprecatedrpc=accounts setting, it will only return incoming transactions (because it used to be possible to create transactions spending from specific accounts, but this is no longer possible with labels).

When -deprecatedrpc=accounts is set, it's possible to pass the empty string "" to list transactions that don't have any label. Without -deprecatedrpc=accounts, passing the empty string is an error because returning only non-labeled transactions is not generally useful behavior and can cause confusion.

BIP 174 Partially Signed Bitcoin Transactions support

BIP 174 PSBT is an interchange format for Bitcoin transactions that are not fully signed yet, together with relevant metadata to help entities work towards signing it. It is intended to simplify workflows where multiple parties need to cooperate to produce a transaction. Examples include hardware wallets, multisig setups, and CoinJoin transactions.

Overall workflow

Overall, the construction of a fully signed Bitcoin transaction goes through the following steps:

  • A Creator proposes a particular transaction to be created. He constructs a PSBT that contains certain inputs and outputs, but no additional metadata.
  • For each input, an Updater adds information about the UTXOs being spent by the transaction to the PSBT.
  • A potentially other Updater adds information about the scripts and public keys involved in each of the inputs (and possibly outputs) of the PSBT.
  • Signers inspect the transaction and its metadata to decide whether they agree with the transaction. They can use amount information from the UTXOs to assess the values and fees involved. If they agree, they produce a partial signature for the inputs for which they have relevant key(s).
  • A Finalizer is run for each input to convert the partial signatures and possibly script information into a final scriptSig and/or scriptWitness.
  • An Extractor produces a valid Bitcoin transaction (in network format) from a PSBT for which all inputs are finalized.

Generally, each of the above (excluding Creator and Extractor) will simply add more and more data to a particular PSBT. In a naive workflow, they all have to operate sequentially, passing the PSBT from one to the next, until the Extractor can convert it to a real transaction. In order to permit parallel operation, Combiners can be employed which merge metadata from different PSBTs for the same unsigned transaction.

The names above in bold are the names of the roles defined in BIP174. They're useful in understanding the underlying steps, but in practice, software and hardware implementations will typically implement multiple roles simultaneously.


  • converttopsbt (Creator) is a utility RPC that converts an unsigned raw transaction to PSBT format. It ignores existing signatures.
  • createpsbt (Creator) is a utility RPC that takes a list of inputs and outputs and converts them to a PSBT with no additional information. It is equivalent to calling createrawtransaction followed by converttopsbt.
  • walletcreatefundedpsbt (Creator, Updater) is a wallet RPC that creates a PSBT with the specified inputs and outputs, adds additional inputs and change to it to balance it out, and adds relevant metadata. In particular, for inputs that the wallet knows about (counting towards its normal or watch-only balance), UTXO information will be added. For outputs and inputs with UTXO information present, key and script information will be added which the wallet knows about. It is equivalent to running createrawtransaction, followed by fundrawtransaction, and converttopsbt.
  • walletprocesspsbt (Updater, Signer, Finalizer) is a wallet RPC that takes as input a PSBT, adds UTXO, key, and script data to inputs and outputs that miss it, and optionally signs inputs. Where possible it also finalizes the partial signatures.
  • finalizepsbt (Finalizer, Extractor) is a utility RPC that finalizes any partial signatures, and if all inputs are finalized, converts the result to a fully signed transaction which can be broadcast with sendrawtransaction.
  • combinepsbt (Combiner) is a utility RPC that implements a Combiner. It can be used at any point in the workflow to merge information added to different versions of the same PSBT. In particular it is useful to combine the output of multiple Updaters or Signers.
  • decodepsbt is a diagnostic utility RPC which will show all information in a PSBT in human-readable form, as well as compute its eventual fee if known.

Other API changes

  • The inactivehdmaster property in the dumpwallet output has been corrected to inactivehdseed


  • The log timestamp format is now ISO 8601 (e.g. "2018-02-28T12:34:56Z").

  • When running bgoldd with -debug but without -daemon, logging to stdout is now the default behavior. Setting -printtoconsole=1 no longer implicitly disables logging to debug.log. Instead, logging to file can be explicitly disabled by setting -debuglogfile=0.

Transaction index changes

The transaction index is now built separately from the main node procedure, meaning the -txindex flag can be toggled without a full reindex. If bgoldd is run with -txindex on a node that is already partially or fully synced without one, the transaction index will be built in the background and become available once caught up. When switching from running -txindex to running without the flag, the transaction index database will not be deleted automatically, meaning it could be turned back on at a later time without a full resync.

Miner block size removed

The -blockmaxsize option for miners to limit their blocks' sizes was deprecated in V0.15.1, and has now been removed. Miners should use the -blockmaxweight option if they want to limit the weight of their blocks.

Support for signalling pruned nodes (BIP159)

Pruned nodes can now signal BIP159's NODE_NETWORK_LIMITED using service bits, in preparation for full BIP159 support in later versions. This would allow pruned nodes to serve the most recent blocks. However, the current change does not yet include support for connecting to these pruned peers.

Performance: SHA256 assembly enabled by default

The SHA256 hashing optimizations for architectures supporting SSE4, which lead to ~50% speedups in SHA256 on supported hardware (~5% faster synchronization and block validation), have now been enabled by default. In previous versions they were enabled using the --enable-experimental-asm flag when building, but are now the default and no longer deemed experimental.

RPC changes

New rescanblockchain RPC

A new RPC rescanblockchain has been added to manually invoke a blockchain rescan. The RPC supports start and end-height arguments for the rescan, and can be used in a multiwallet environment to rescan the blockchain at runtime.

New savemempool RPC

A new savemempool RPC has been added which allows the current mempool to be saved to disk at any time to avoid it being lost due to crashes / power loss.

Safe mode disabled by default

Safe mode is now disabled by default and must be manually enabled (with -disablesafemode=0) if you wish to use it. Safe mode is a feature that disables a subset of RPC calls - mostly related to the wallet and sending - automatically in case certain problem conditions with the network are detected. However, developers have come to regard these checks as not reliable enough to act on automatically. Even with safe mode disabled, they will still cause warnings in the warnings field of the getneworkinfo RPC and launch the -alertnotify command.

Renamed script for creating JSON-RPC credentials

The share/rpcuser/ script was renamed to share/rpcauth/ This script can be used to create rpcauth credentials for a JSON-RPC user.

Validateaddress improvements

The validateaddress RPC output has been extended with a few new fields, and support for segwit addresses (both P2SH and Bech32). Specifically:

  • A new field iswitness is True for P2WPKH and P2WSH addresses ("bc1..." addresses), but not for P2SH-wrapped segwit addresses (see below).
  • The existing field isscript will now also report True for P2WSH addresses.
  • A new field embedded is present for all script addresses where the script is known and matches something that can be interpreted as a known address. This is particularly true for P2SH-P2WPKH and P2SH-P2WSH addresses. The value for embedded includes much of the information validateaddress would report if invoked directly on the embedded address.
  • For multisig scripts a new pubkeys field was added that reports the full public keys involved in the script (if known). This is a replacement for the existing addresses field (which reports the same information but encoded as P2PKH addresses), represented in a more useful and less confusing way. The addresses field remains present for non-segwit addresses for backward compatibility.
  • For all single-key addresses with known key (even when wrapped in P2SH or P2WSH), the pubkey field will be present. In particular, this means that invoking validateaddress on the output of getnewaddress will always report the pubkey, even when the address type is P2SH-P2WPKH.

Low-level RPC changes

  • The new RPC scantxoutset can be used to scan the UTXO set for entries that match certain output descriptors. Refer to the output descriptors reference documentation for more details. This call is similar to listunspent but does not use a wallet, meaning that the wallet can be disabled at compile or run time. This call is experimental, as such, is subject to changes or removal in future releases.

  • The createrawtransaction RPC will now accept an array or dictionary (kept for compatibility) for the outputs parameter. This means the order of transaction outputs can be specified by the client.

  • The fundrawtransaction RPC will reject the previously deprecated reserveChangeKey option.

  • sendmany now shuffles outputs to improve privacy, so any previously expected behavior with regards to output ordering can no longer be relied upon.

  • The new RPC testmempoolaccept can be used to test acceptance of a transaction to the mempool without adding it.

  • JSON transaction decomposition now includes a weight field which provides the transaction's exact weight. This is included in REST /rest/tx/ and /rest/block/ endpoints when in json mode. This is also included in getblock (with verbosity=2), listsinceblock, listtransactions, and getrawtransaction RPC commands.

  • New fees field introduced in getrawmempool, getmempoolancestors, getmempooldescendants and getmempoolentry when verbosity is set to true with sub-fields ancestor, base, modified and descendant denominated in BTC. This new field deprecates previous fee fields, such as fee, modifiedfee, ancestorfee and descendantfee.

  • The new RPC getzmqnotifications returns information about active ZMQ notifications.

  • When bitcoin is not started with any -wallet=<path> options, the name of the default wallet returned by getwalletinfo and listwallets RPCs is now the empty string "" instead of "wallet.dat". If bitcoin is started with any -wallet=<path> options, there is no change in behavior, and the name of any wallet is just its <path> string.

  • Passing an empty string ("") as the address_type parameter to getnewaddress, getrawchangeaddress, addmultisigaddress, fundrawtransaction RPCs is now an error. Previously, this would fall back to using the default address type. It is still possible to pass null or leave the parameter unset to use the default address type.

  • Bare multisig outputs to our keys are no longer automatically treated as incoming payments. As this feature was only available for multisig outputs for which you had all private keys in your wallet, there was generally no use for them compared to single-key schemes. Furthermore, no address format for such outputs is defined, and wallet software can't easily send to it. These outputs will no longer show up in listtransactions, listunspent, or contribute to your balance, unless they are explicitly watched (using importaddress or importmulti with hex script argument). signrawtransaction* also still works for them.

  • The getwalletinfo RPC method now returns an hdseedid value, which is always the same as the incorrectly-named hdmasterkeyid value. hdmasterkeyid will be removed in V0.18.

  • The getaddressinfo RPC method now returns an hdseedid value, which is always the same as the incorrectly-named hdmasterkeyid value. hdmasterkeyid will be removed in V0.18.

  • Parts of the validateaddress RPC method have been deprecated and moved to getaddressinfo. Clients must transition to using getaddressinfo to access this information before upgrading to v0.18. The following deprecated fields have moved to getaddressinfo and will only be shown with -deprecatedrpc=validateaddress: ismine, iswatchonly, script, hex, pubkeys, sigsrequired, pubkey, addresses, embedded, iscompressed, account, timestamp, hdkeypath, hdmasterkeyid.

  • signrawtransaction is deprecated and will be fully removed in v0.18. To use signrawtransaction in v0.17, restart bgoldd with -deprecatedrpc=signrawtransaction. Projects should transition to using signrawtransactionwithkey and signrawtransactionwithwallet before upgrading to v0.18.

  • The deprecated RPC getinfo was removed. It is recommended that the more specific RPCs are used:

    • getblockchaininfo
    • getnetworkinfo
    • getwalletinfo
    • getmininginfo
  • The wallet RPC getreceivedbyaddress will return an error if called with an address not in the wallet.

  • The wallet RPC addwitnessaddress was deprecated and will be removed in version 0.17, set the address_type argument of getnewaddress, or option -addresstype=[bech32|p2sh-segwit] instead.

  • dumpwallet now includes hex-encoded scripts from the wallet in the dumpfile, and importwallet now imports these scripts, but corresponding addresses may not be added correctly or a manual rescan may be required to find relevant transactions.

  • The RPC getblockchaininfo now includes an errors field.

  • A new blockhash parameter has been added to the getrawtransaction RPC which allows for a raw transaction to be fetched from a specific block if known, even without -txindex enabled.

  • The decoderawtransaction and fundrawtransaction RPCs now have optional iswitness parameters to override the heuristic witness checks if necessary.

  • The walletpassphrase timeout is now clamped to 2^30 seconds.

  • Using addresses with the createmultisig RPC is now deprecated, and will be removed in a later version. Public keys should be used instead.

  • Blockchain rescans now no longer lock the wallet for the entire rescan process, so other RPCs can now be used at the same time (although results of balances / transactions may be incorrect or incomplete until the rescan is complete).

  • The logging RPC has now been made public rather than hidden.

  • An initialblockdownload boolean has been added to the getblockchaininfo RPC to indicate whether the node is currently in IBD or not.

  • minrelaytxfee is now included in the output of getmempoolinfo

Other changed command-line options

  • -debuglogfile=<file> can be used to specify an alternative debug logging file.
  • bgold-cli now has an -stdinrpcpass option to allow the RPC password to be read from standard input.
  • The -usehd option has been removed.
  • bgold-cli now supports a new -getinfo flag which returns an output like that of the now-removed getinfo RPC.

Testing changes

  • The default regtest JSON-RPC port has been changed to 18443 to avoid conflict with testnet's default of 18332.
  • Segwit is now always active in regtest mode by default. Thus, if you upgrade a regtest node you will need to either -reindex or use the old rules by adding vbparams=segwit:0:999999999999 to your regtest bitcoingold.conf. Failure to do this will result in a CheckBlockIndex() assertion failure that will look like: Assertion `(pindexFirstNeverProcessed != nullptr) == (pindex->nChainTx == 0)' failed.

Python Support

Support for Python 2 has been discontinued for all test files and tools.

Build: Minimum GCC bumped to 4.8.x

The minimum version of the GCC compiler required to compile BTG Core is now 4.8. No effort will be made to support older versions of GCC. See discussion in issue #11732 for more information. The minimum version for the Clang compiler is still 3.3. Other minimum dependency versions can be found in doc/ in the repository.

0.17.1 change log


  • #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)
  • #11423 d353dd1 [Policy] Several transaction standardness rules (jl2012)


  • #12693 df529dc Remove unused variable in SortForBlock (drewx2)
  • #12448 84efa9a Interrupt block generation on shutdown request (promag)
  • #12756 e802c22 [config] Remove blockmaxsize option (jnewbery)


  • #12204 3fa24bb Fix overly eager BIP30 bypass (morcos)
  • #14249 696b936 Fix crash bug with duplicate inputs within a transaction (TheBlueMatt, sdaftuar)

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)
  • #13199 c71e535 Bugfix: ensure consistency of m_failed_blocks after reconsiderblock (sdaftuar)
  • #13023 bb79aaf Fix some concurrency issues in ActivateBestChain() (skeees)
  • #10953 aeed345 Combine scriptPubKey and amount as CTxOut in CScriptCheck (jl2012)
  • #11309 93d20a7 Minor cleanups for AcceptToMemoryPool (morcos)
  • #11418 38c201f Add error string for CLEANSTACK script violation (maaku)
  • #11411 339da9c Change SignatureHash input index check to an assert (jimpo)
  • #11406 e12522d Add state message print to AcceptBlock failure message (TheBlueMatt)
  • #11062 26fee4f Mark mempool import fails that were found in mempool as 'already there' (kallewoof)
  • #11269 61fb806 CTxMemPoolEntry::UpdateAncestorState: modifySiagOps param type (donaloconnor)
  • #11747 e970396 Fix: Open files read only if requested (Elbandi)
  • #11737 46d1ebf Document partial validation in ConnectBlock() (sdaftuar)
  • #10699 c090262 Make all script validation flags backward compatible (sipa)
  • #10279 214046f Add a CChainState class to validation.cpp to take another step towards clarifying internal interfaces (TheBlueMatt)
  • #11824 d9fdac1 Block ActivateBestChain to empty validationinterface queue (TheBlueMatt)
  • #12127 9501dc2 Remove unused mempool index (sdaftuar)
  • #12118 44080a9 Sort mempool by min(feerate, ancestor_feerate) (sdaftuar)
  • #8498 0e3a411 Minimize the number of times it is checked that no money... (jtimon)
  • #12368 3f5012b Hold mempool.cs for the duration of ATMP (TheBlueMatt)
  • #12401 d44cd7e Reset pblocktree before deleting LevelDB file (Sjors)
  • #12415 f893824 Interrupt loading thread after shutdown request (promag)

P2P protocol and network code

  • #14685 9406502 Fix a deserialization overflow edge case (kazcw)
  • #14728 b901578 Fix uninitialized read when stringifying an addrLocal (kazcw)
  • #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 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)
  • #12626 f60e84d Limit the number of IPs addrman learns from each DNS seeder (EthanHeilman)
  • #10596 6866b49 Add vConnect to CConnman::Options (benma)
  • #10663 9d31ed2 Split resolve out of connect (theuni)
  • #11113 fef65c4 Ignore getheaders requests for very old side blocks (jimpo)
  • #11585 5aeaa9c addrman: Add missing lock in Clear() (CAddrMan) (practicalswift)
  • #11524 5ef3b69 De-duplicate connection eviction logic (tjps)
  • #11580 1f4375f Do not send (potentially) invalid headers in response to getheaders (TheBlueMatt)
  • #11655 aca77a4 Assert state.m_chain_sync.m_work_header in ConsiderEviction (practicalswift)
  • #11744 3ff6ff5 Add missing locks in net.{cpp,h} (practicalswift)
  • #11740 59d3dc8 Implement BIP159 NODE_NETWORK_LIMITED (pruned peers) signaling only (jonasschnelli)
  • #11583 37ffa16 Do not make it trivial for inbound peers to generate log entries (TheBlueMatt)
  • #11363 ba2f195 Split socket create/connect (theuni)
  • #11917 bc66765 Add testnet DNS seed: (Sjors)
  • #11512 6e89de5 Use GetDesireableServiceFlags in seeds, dnsseeds, fixing static seed adding (TheBlueMatt)
  • #12262 16bac24 Hardcoded seed update (laanwj)
  • #12270 9cf6393 Update chainTxData for 0.16 (laanwj)
  • #12392 0f61651 Fix ignoring tx data requests when fPauseSend is set on a peer (TheBlueMatt)


  • #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)
  • #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 (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)
  • #13265 5d8de76 Exit SyncMetaData if there are no transactions to sync (laanwj)
  • #13030 5ff571e Fix zapwallettxes/multiwallet interaction. (jnewbery)
  • #11039 fc51565 Avoid second mapWallet lookup (promag)
  • #10952 2621673 Remove vchDefaultKey and have better first run detection (achow101)
  • #11007 fc5c237 Fix potential memory leak when loading a corrupted wallet file (practicalswift)
  • #10976 07c92b9 Move some static functions out of wallet.h/cpp (ryanofsky)
  • #11117 961901f Prepare for non-Base58 addresses (sipa)
  • #10916 e6ab88a add missing lock to crypter GetKeys() (benma)
  • #10767 791a0e6 Clarify wallet initialization / destruction interface (jnewbery)
  • #11250 c22a53c Bump wallet version to 159900 and remove the usehd option (achow101)
  • #11307 4f7e37e Display non-HD error on first run (MarcoFalke)
  • #11408 69c7ece Fix parameter name typo in ErasePurpose walletdb method (PierreRochard)
  • #11167 aa624b6 Full BIP173 (Bech32) support (sipa)
  • #11594 0ecc630 Improve -disablewallet parameter interaction (promag)
  • #10368 77ba4bf Remove helper conversion operator from wallet (kallewoof)
  • #11074 99ec126 Assert that CWallet::SyncMetaData finds oldest transaction (BitonicEelis)
  • #11272 e6e3fc3 CKeystore/CCrypter: move relevant implementation out of the header (jonasschnelli)
  • #10286 927a1d7 Call wallet notify callbacks in scheduler thread (without cs_main) (TheBlueMatt)
  • #10600 4ed8180 Make feebumper class stateless (ryanofsky)
  • #11466 d080a7d Specify custom wallet directory with -walletdir param (MeshCollider)
  • #11839 8ab6c0b Don't attempt mempool entry for wallet transactions on startup (instagibbs)
  • #11854 2214954 Split up key and script metadata for better type safety (ryanofsky)
  • #11870 ef8ba7d Remove unnecessary mempool lock in ReacceptWalletTransactions (promag)
  • #11864 2ae58d5 Make CWallet::FundTransaction atomic (promag)
  • #11886 df71819 Clarify getbalance meaning a tiny bit in response to questions (TheBlueMatt)
  • #11923 81c89e9 Remove unused fNoncriticalErrors variable from CWalletDB::FindWalletTx (PierreRochard)
  • #11726 604e08c Cleanups + nit fixes for walletdir PR (MeshCollider)
  • #11403 d889c03 Segwit wallet support (sipa)
  • #11970 b7450cd Add test coverage for bgold-cli multiwallet calls (ryanofsky)
  • #11904 66e3af7 Add a lock to the wallet directory (MeshCollider)
  • #12101 c7978be Clamp walletpassphrase timeout to 2^30 seconds and check its bounds (achow101)
  • #12210 17180fa Deprecate addwitnessaddress (laanwj)
  • #12220 f4c942e Error if relative -walletdir is specified (ryanofsky)
  • #11281 8470e64 Avoid permanent cs_main/cs_wallet lock during RescanFromTime (jonasschnelli)
  • #12119 9594139 Use P2WPKH change output if any destination is P2WPKH or P2WSH (Sjors)
  • #12213 eadb2da Add address type option to addmultisigaddress (promag)
  • #12276 7936446 Remove duplicate mapWallet lookups (promag)
  • #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

  • #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)
  • #13547 212ef1f Make signrawtransaction* give an error when amount is needed but missing (ajtowns)
  • #11008 3841aaf Enable disablesafemode by default (gmaxwell)
  • #11050 7ed57d3 Avoid treating null RPC arguments different from missing arguments (ryanofsky)
  • #10997 affe927 Add option -stdinrpcpass to bgold-cli to allow RPC password to be read from standard input (jharvell)
  • #11179 e0e3cbb Push down safe mode checks (laanwj)
  • #11203 d745b4c add wtxid to mempool entry output (sdaftuar)
  • #11099 bc561b4 Add savemempool RPC (greenaddress)
  • #10838 66a5b41 (finally) remove getinfo (TheBlueMatt)
  • #10753 7fcd61b test: Check RPC argument mapping (laanwj)
  • #11288 0f8e095 More user-friendly error message when partially signing (MeshCollider)
  • #11031 ef8340d deprecate estimatefee (jnewbery)
  • #10858 9a8e916 Add "errors" field to getblockchaininfo and unify "errors" field in get*info RPCs (achow101)
  • #11021 90926db Fix getchaintxstats() (AkioNak)
  • #11367 3a93270 getblockchaininfo: Add disk_size, prune_target_size (esotericnonsense)
  • #11006 a1d78b5 Improve shutdown process (promag)
  • #11529 ff92fbf Avoid slow transaction search with txindex enabled (promag)
  • #11618 87d90ef Lock cs_main in blockToJSON/blockheaderToJSON (practicalswift)
  • #11626 998c304 Make logging RPC public (laanwj)
  • #11258 033c786 Add initialblockdownload to getblockchaininfo (jnewbery)
  • #11087 99bc0b4 Diagnose unsuitable outputs in lockunspent() (BitonicEelis)
  • #11710 9388639 cli: Reject arguments to -getinfo (laanwj)
  • #11738 d4267a3 Fix sendrawtransaction hang when sending a tx already in mempool (TheBlueMatt)
  • #11753 32c9b57 clarify abortrescan rpc use (instagibbs)
  • #11191 ef14f2e Improve help text and behavior of RPC-logging (AkioNak)
  • #10874 9e38d35 getblockchaininfo: Loop through the bip9 soft fork deployments instead of hard coding (achow101)
  • #10275 497d0e0 Allow fetching tx directly from specified block in getrawtransaction (kallewoof)
  • #11178 fee0370 Add iswitness parameter to decode- and fundrawtransaction RPCs (MeshCollider)
  • #11667 711d16c Add scripts to dumpwallet RPC (MeshCollider)
  • #11475 9bad8d6 mempoolinfo should take ::minRelayTxFee into account (mess110)
  • #12001 a9a49e6 Adding ::minRelayTxFee amount to getmempoolinfo and updating help (jeffrade)
  • #12198 adce1de Add deprecation error for getinfo (laanwj)
  • #11415 69ec021 Disallow using addresses in createmultisig (achow101)
  • #12278 288deac Add special error for genesis coinbase to getrawtransaction (MeshCollider)
  • #11362 c6223b3 Remove nBlockMaxSize from miner opt struct as it is no longer used (gmaxwell)
  • #10825 28485c7 Set regtest JSON-RPC port to 18443 to avoid conflict with testnet 18332 (fametrano)
  • #11303 e542728 Fix estimatesmartfee rounding display issue (TheBlueMatt)
  • #7061 8c2de82 Add RPC call "rescanblockchain " (jonasschnelli)
  • #11055 95e14dc RPC getreceivedbyaddress should return error if called with address not owned by the wallet (jnewbery)
  • #12366 93de37a http: Join worker threads before deleting work queue (laanwj)
  • #12315 758a41e Bech32 addresses in dumpwallet (fivepiece)
  • #12427 3762ac1 Make signrawtransaction accept P2SH-P2WSH redeemscripts (sipa)
  • #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)
  • #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)


  • #14403 0242b5a Revert "Force TLS1.0+ for SSL connections" (real-or-random)
  • #14593 df5131b Explicitly disable "Dark Mode" appearance on macOS (fanquake)
  • #10964 64e66bb Pass SendCoinsRecipient (208 bytes) by reference (practicalswift)
  • #11169 5b8af7b Make tabs toolbar no longer have a context menu (achow101)
  • #10911 9c8f365 Fix typo and access key in optionsdialog.ui (keystrike)
  • #10770 ea729d5 Drop upgrade-cancel callback registration for a generic "cancelable" (TheBlueMatt)
  • #11156 a3624dd Fix memory leaks in qt/guiutil.cpp (danra)
  • #11268 31e72b2 [macOS] remove Growl support, remove unused code (jonasschnelli)
  • #11193 c5c77bd Terminate string *pszExePath after readlink and without using memset (practicalswift)
  • #11508 ffa5159 Fix crash via division by zero assertion (jonasschnelli)
  • #11499 6157e8c Add upload and download info to the peerlist (debug menu) (aarongolliver)
  • #11480 ffc0b11 Add toggle for unblinding password fields (tjps)
  • #11316 22cdf93 Add use available balance in send coins dialog (CryptAxe, promag)
  • #3716 13e352d Receive: Remove option to reuse a previous address (luke-jr)
  • #11690 f0c1f8a Fix the StartupWMClass for bitoin-qt, so gnome-shell can recognize it (eklitzke)
  • #10920 f6f8d54 Fix potential memory leak in newPossibleKey(ChangeCWallet *wallet) (practicalswift)
  • #11698 7293d06 RPC-Console nested commands documentation (lmlsna)
  • #11395 38d31f9 Enable searching by transaction id (luke-jr)
  • #11556 91eeaa0 Improved copy for RBF checkbox and tooltip (Sjors)
  • #11809 80f9dad Fix proxy setting options dialog crash (laanwj)
  • #11616 8585bb8 Update ban-state in case of dirty-state during periodic sweep (jonasschnelli)
  • #11605 f19ca12 Enable RBF by default in QT (Sjors)
  • #12074 a1136f0 Optimizes boolean expression model && model->haveWatchOnly() (251Labs)
  • #12035 eeb6d52 Change µBTC to bits (jb55)
  • #12092 fd4ca17 Replaces numbered place marker %2 with %1 (251Labs)
  • #12173 bbc91b7 Use flexible font size for QRCode image address (jonasschnelli)
  • #12211 10d10d7 Avoid potential null dereference in ReceiveCoinsDialog constructor (ryanofsky)
  • #12261 f359afc Bump BLOCK_CHAIN_SIZE to 200GB (laanwj)
  • #11991 062c8b6 Receive: checkbox for bech32 address (Sjors)
  • #11644 045a809 Fix qt build broken by 5a5e4e9 (TheBlueMatt)
  • #11448 d473e6d reset addrProxy/addrSeparateProxyTor if colon char missing (mess110)
  • #12377 604f289 qt: Poll ShutdownTimer after init is done (MarcoFalke)
  • #12374 daaae36 qt: Make sure splash screen is freed on AppInitMain fail (laanwj)
  • #12349 ad10b90 shutdown: fix crash on shutdown with reindex-chainstate (theuni)
  • #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)
  • #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)
  • #12999 1720eb3 Show the Window when double clicking the taskbar icon (ken2812221)
  • #12650 f118a7a Fix issue: "default port not shown correctly in settings dialog" (251Labs)
  • #13251 ea487f9 Rephrase Bech32 checkbox texts, and enable it with legacy address default (fanquake)

Build system

  • #10923 2c9f5ec travis: Build with --enable-werror under OS X (practicalswift)
  • #11176 df8c722 build: Rename --enable-experimental-asm to --enable-asm and enable by default (laanwj)
  • #11286 11dacc6 [depends] Don't build libevent sample code (fanquake)
  • #7142 801dd40 Travis: Test build against system libs (& Qt4) (luke-jr)
  • #11380 390771b Remove outdated share/certs/ directory (MeshCollider)
  • #11391 7632310 Remove lxcbr0 lines from (MeshCollider)
  • #11435 167cef8 build: Make "make clean" remove all files created when running "make check" (practicalswift)
  • #11460 e022463 [depends] mac_alias 2.0.6, ds_store 1.1.2 (fanquake)
  • #11541 bb9ab0f Build: Fix Automake warnings when running (fanquake)
  • #11611 0e70791 [build] Don't fail when passed --disable-lcov and lcov isn't available (fanquake)
  • #11651 3c098a8 refactor: Make all #includes relative to project root (laanwj, MeshCollider, ryanofsky)
  • #11621 1f7695b [build] Add temp_bitcoin_locale_qrc to CLEAN_QT to fix make distcheck (fanquake)
  • #11755 84fa645 [Docs] Bump minimum required version of GCC to 4.8 (fanquake)
  • #9254 6d3dc52 [depends] ZeroMQ 4.2.2 (fanquake)
  • #11842 3c8f0a3 [build] Add missing stuff to clean-local (kallewoof)
  • #11936 483bb67 [build] Warn that only libconsensus can be built without Boost (fanquake)
  • #11945 7a11ba7 Improve BSD compatibility of contrib/ (laanwj)
  • #11981 180a255 Fix gitian build after libzmq bump (theuni)
  • #11903 8f68fd2 [trivial] Add required package dependencies for depends cross compilation (jonasschnelli)
  • #12168 45cf8a0 #include sys/fcntl.h to just fcntl.h (without sys/) (jsarenik)
  • #12095 3fa1ab4 Use BDB_LIBS/CFLAGS and pass --disable-replication (fanquake)
  • #11711 6378e5c bitcoin_qt.m4: Minor fixes and clean-ups (fanquake)
  • #11989 90d4104 .gitignore: add QT Creator artifacts (Sjors)
  • #11577 c0ae864 Fix warnings (-Wsign-compare) when building with DEBUG_ADDRMAN (practicalswift)
  • #13544 9fd3e00 depends: Update Qt download url (fanquake)
  • #12573 88d1a64 Fix compilation when compiler do not support __builtin_clz* (532479301)
  • #14647 7edebed Remove illegal spacing in (ch4ot1c)
  • #14698 ec71f06 Add bitcoin-tx.exe into Windows installer (ken2812221)
  • #12474 b0f692f Allow depends system to support armv7l (hkjn)
  • #12585 72a3290 depends: Switch to downloading expat from GitHub (fanquake)
  • #12648 46ca8f3 test: Update trusted git root (MarcoFalke)
  • #11995 686cb86 depends: Fix Qt build with Xcode 9 (fanquake)
  • #12636 845838c backport: #11995 Fix Qt build with Xcode 9 (fanquake)
  • #12946 e055bc0 depends: Fix Qt build with XCode 9.3 (fanquake)
  • #12998 7847b92 Default to defining endian-conversion DECLs in compat w/o config (TheBlueMatt)
  • #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 (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 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 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 (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

  • #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 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 (jnewbery)
  • #12447 01f931b Add missing signal.h header (laanwj)
  • #12545 1286f3e Use wait_until to ensure ping goes out (Empact)
  • #12804 4bdb0ce Fix intermittent failure. (jnewbery)
  • #12553 0e98f96 Prefer wait_until over polling with time.sleep (Empact)
  • #12486 cfebd40 Round target fee to 8 decimals in assert_fee_amount (kallewoof)
  • #12843 df38b13 Test starting bgoldd with -h and -version (jnewbery)
  • #12475 41c29f6 Fix python TypeError in (MarcoFalke)
  • #12638 0a76ed2 Cache only chain and wallet for regtest datadir (MarcoFalke)
  • #12902 7460945 Handle potential cookie race when starting node (sdaftuar)
  • #12904 6c26df0 Ensure bgoldd processes are cleaned up when tests end (sdaftuar)
  • #13049 9ea62a3 Backports (MarcoFalke)
  • #13201 b8aacd6 Handle disconnect_node race (sdaftuar)- #11024 3e55f13 Remove OldSetKeyFromPassphrase/OldEncrypt/OldDecrypt (practicalswift)
  • #10679 31b2612 Document the non-DER-conformance of one test in tx_valid.json (schildbach)
  • #11160 ede386c Improve versionbits_computeblockversion test code consistency (danra)
  • #10303 f088a1b Include ms/blk stats in Connect* benchmarks (kallewoof)
  • #10777 d81dccf Avoid redundant assignments. Remove unused variables (practicalswift)
  • #11260 52f8877 travis: Assert default datadir isn't created, Run scripted diff only once (MarcoFalke)
  • #11271 638e6c5 travis: filter out pyenv (theuni)
  • #11285 3255d63 Add -usehd to excluded args in (MeshCollider)
  • #11297 16e4184 Make sure ~/.bitcoin doesn't exist before build (MeshCollider)
  • #11311 cce94c5 travis: Revert default datadir check (MarcoFalke)
  • #11300 f4ed44a Add a lint check for trailing whitespace (MeshCollider)
  • #11323 4ce2f3d mininode: add an optimistic write and disable nagle (theuni)
  • #11370 2d85899 Add getblockchaininfo functional test (promag)
  • #11365 f199b8a Add Qt GUI tests to Overview and ReceiveCoin Page (anditto)
  • #11293 dbc4ae0 Deduplicate CMerkleBlock construction code, add test coverage (jamesob)
  • #10440 9e8ef9d Add libFuzzer support (practicalswift)
  • #10941 364da2c Add blocknotify and walletnotify functional tests (promag)
  • #11420 8928093 Bump univalue subtree and fix json formatting in tests (MarcoFalke)
  • #10099 424be03 Slightly Improve Unit Tests for Checkqueue (JeremyRubin)
  • #11513 14b860b A few Python3 tidy ups (jnewbery)
  • #11486 2ca518d Add uacomment tests (mess110)
  • #11452 02ac8c8 Improve ZMQ functional test (promag)
  • #10409 b5545d8 Add fuzz testing for BlockTransactions and BlockTransactionsRequest (practicalswift)
  • #11389 dd56166 Support having segwit always active in regtest (sipa, ajtowns, jnewbery)
  • #11562 5776582 bench: use std::chrono rather than gettimeofday (theuni)
  • #11182 f7388e9 Add P2P interface to TestNode (jnewbery)
  • #11552 b5f9f02 Improve wallet-accounts test (ryanofsky)
  • #11638 5e3f5e4 Dead mininode code (jnewbery)
  • #11646 fe503e1 Require a steady clock for bench with at least micro precision (TheBlueMatt)
  • #11468 76b3349 Make comp test framework more debuggable (jnewbery)
  • #11623 ee92243 Add missing locks to tests (practicalswift)
  • #11035 927e528 [contrib] Add Valgrind suppressions file (practicalswift)
  • #11641 7adeea3 Only allow disconnecting all NodeConns (MarcoFalke)
  • #11677 3bdf242 Remove unused NodeConn members (MarcoFalke)
  • #11699 66d46c7 [travis-ci] Only run linters on Pull Requests (jnewbery)
  • #11654 084f52f Initialize recently introduced non-static class member lastCycles to zero in constructor (practicalswift)
  • #11648 ccc70a2 Add (jnewbery)
  • #11713 49667a7 Fix for mismatched extern definition in wallet tests (sipsorcery)
  • #11707 0d89fa0 Fix sendheaders (jnewbery)
  • #11718 9cdd2bc Move pwalletMain to wallet test fixture (laanwj)
  • #11714 901ba3e Test that mempool rejects coinbase transactions (jamesob)
  • #11743 3d6ad40 Add multiwallet prefix test (MarcoFalke)
  • #11683 a892218 Remove unused mininode functions {ser,deser}_int_vector(...). Remove unused imports (practicalswift)
  • #11712 9f2c2db Split NodeConn from NodeConnCB (jnewbery)
  • #11791 13e31dd Rename NodeConn and NodeConnCB (jnewbery)
  • #11835 f60b4ad Add Travis check for unused Python imports (practicalswift)
  • #11849 ad1820c Assert that only one NetworkThread exists (jnewbery)
  • #11877 d4991c0 Improve createrawtransaction functional tests (promag)
  • #11220 2971fd0 Check specific validation error in miner tests (Sjors)
  • #11947 797441e Fix rawtransactions test (laanwj)
  • #11946 8049241 Remove unused variable (firstAddrnServices) (practicalswift)
  • #11867 18a1bba Improve node network test (jnewbery)
  • #11883 cfd99dd Add configuration file/argument testing (MeshCollider)
  • #11879 d4e404a Remove redundant univalue_tests.cpp (jnewbery)
  • #11748 20166f8 Adding unit tests for GetDifficulty in blockchain.cpp (merehap)
  • #11517 5180a86 Improve benchmark precision (martinus)
  • #11291 a332a7d Fix string concatenation to os.path.join and add exception case (dongsam)
  • #11965 d38d1a3 Note on test order in test_runner (MarcoFalke)
  • #11997 ddff344 util_tests.cpp: actually check ignored args (ajtowns)
  • #12079 45173fa Improve prioritisetransaction test coverage (promag)
  • #12150 92a810d Fix ListCoins test failure due to unset g_address_type, g_change_type (ryanofsky)
  • #12133 1d2eaba Fix rare failure in (sdaftuar)
  • #12082 0910cbe Adding test case for SINGLE|ANYONECANPAY hash type in tx_valid.json (Christewart)
  • #11796 4db16ec Functional test naming convention (ajtowns)
  • #12227 b987ca4 test_runner: Readable output if fails (ryanofsky)
  • #12089 126000b Make TestNodeCLI command optional in send_cli (MarcoFalke)
  • #11774 6970b30 Rename functional tests (ajtowns)
  • #12264 598a9c4 Fix versionbits warning test (jnewbery)
  • #12217 1213be6 Add missing syncwithvalidationinterfacequeue to tests (MarcoFalke)
  • #12292 eebe458 Fix names of excluded extended tests for travis (ajtowns)
  • #11789 60d739e [travis-ci] Combine logs on failure (jnewbery)
  • #11838 3e50024 Add getrawtransaction in_active_chain=False test (MarcoFalke)
  • #12206 898f560 Sync with validationinterface queue in sync_mempools (MarcoFalke)
  • #12424 ff44101 Fix rescan test failure due to unset g_address_type, g_change_type (ryanofsky)
  • #12388 e2431d1 travis: Full clone for git subtree check (MarcoFalke)
  • #13061 170b309 Make tests pass after 2020 (bmwiedemann)
  • #13192 79c4fff [tests] Fixed intermittent failure in (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)
  • #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 (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 bitcoingold.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 (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 to use BitcoinTestFramework (jnewbery)
  • #12839 40f4baf Remove travis checkout depth (laanwj)
  • #11817 2a09a78 Change 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 (practicalswift)
  • #12861 c564424 Stop 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 (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 (ken2812221)
  • #13013 a0079d4 bench: Amend mempool_eviction test for witness txs (MarcoFalke)
  • #13051 e074097 Normalize executable location (MarcoFalke)
  • #13056 106d929 Make 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 (kristapsk)
  • #13003 8d045a0 Add test for orphan handling (MarcoFalke)
  • #13105 9e9b48d Add --failfast option to functional test runner (jamesob)
  • #13130 3186ad4 Fix race in (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 (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 (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 (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 (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 (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)


  • #10680 6366941 Fix inconsistencies and grammar in various files (MeshCollider)
  • #11011 7db65c3 Add a comment on the use of prevector in script (gmaxwell)
  • #10878 c58128f Fix Markdown formatting issues in (dongcarl)
  • #11066 9e00a62 Document the preference of nullptr over NULL or (void*)0 (practicalswift)
  • #11094 271e40a Hash in ZMQ hash is raw bytes, not hex (runn1ng)
  • #11026 ea3ac59 Bugfix: Use testnet RequireStandard for -acceptnonstdtxn default (luke-jr)
  • #11058 4b65fa5 Comments: More comments on functions/globals in standard.h (jimpo)
  • #11112 3f726c9 [developer-notes] By default, declare single-argument constructors "explicit" (practicalswift)
  • #11155 a084767 Trivial: Documentation fixes for CVectorWriter ctors (danra)
  • #11136 108222b Docs: Add python3 to list of dependencies on some platforms (danra)
  • #11216 81f8c03 Update hmac_sha256.h (utsavgupta)
  • #11236 ba05971 Add note on translations to (MeshCollider)
  • #11173 4eb1f39 RPC: Fix currency unit string in the help text (AkioNak)
  • #11135 21e2f2f Update developer notes with RPC response guidelines (promag)
  • #11219 bcc8a62 explain how to recompile a modified unit test (Sjors)
  • #10779 f656147 Create (flack)
  • #10682 2a56baf Move the AreInputsStandard documentation next to its implementation (esneider)
  • #11276 ee50c9e Update to reduce unnecessary review workload (jonasschnelli)
  • #11264 b148803 Fix broken Markdown table in (practicalswift)
  • #10691 ce82985 Properly comment about shutdown process in init.cpp file (wraith7)
  • #11330 ae233c4 Fix comments for DEFAULT_WHITELIST[FORCE]RELAY (danra)
  • #11340 d6d2c85 Fix validation comments (danra)
  • #11305 2847480 Update release notes and manpages for 0.16 (MarcoFalke)
  • #11132 551d7bf Document assumptions that are being made to avoid NULL pointer dereferences (practicalswift)
  • #11390 12ed800 Document scripted-diff (jnewbery)
  • #11392 a3b4c59 Fix stale link in (shooterman)
  • #11401 4202273 Move gitian building to external repo (MarcoFalke)
  • #11414 bbc901d Remove partial gitian build instructions from descriptors dir (fanquake)
  • #11571 c95832d Fixed a couple small grammatical errors (BitsInMyBlood)
  • #11624 f9b74ef Change formatting for sequence of steps (vivganes)
  • #11597 6f01dcf Fix error messages in CFeeBumper (kallewoof)
  • #11438 7fbf3c6 Updated Windows build doc for WSL/Xenial workaround (sipsorcery)
  • #11663 41aa9c4 Add getreceivedbyaddress release notes (MarcoFalke)
  • #11533 cbb54e7 Update WSL installation notes for Fall Creators update (Thoragh)
  • #11680 4db82b7 Add instructions for lcov report generation (jamesob)
  • #11686 54aedc0 Make ISSUE_TEMPLATE a bit shorter, mention hardware tests (TheBlueMatt)
  • #11704 ea68190 Windows build doc update (sipsorcery)
  • #11706 5197100 Make default issue text all comments to make issues more readable (TheBlueMatt)
  • #11140 1429132 Improve #endif comments (danra)
  • #11729 7a43fbb links to code style guides (Sjors)
  • #11793 8879d50 Bump OS X version to 10.13 (Varunram)
  • #11783 16fff80 Fix shutdown in case of errors during initialization (laanwj)
  • #11804 00d25e9 Fixed outdated link with (TimothyShimmin)
  • #11960 4307062 Fix link to installation script (laudaa)
  • #12027 63a4dc1 Remove boost --c++ flag from osx build instructions (fernandezpablo85)
  • #12062 5961b23 Increment MIT Licence copyright header year on files modified in 2017 (akx20000a)
  • #12063 36a5a44 Update license year range to 2018 (akx20000a)
  • #12093 5691028 Fix incorrect Markdown link (practicalswift)
  • #12143 b0d626d Fix link for BIP159 pull request (azuchi)
  • #12112 3c62868 Remove the ending slashes from RPC URI format (jackycjh)
  • #12166 e839d65 Clarify -walletdir usage (jnewbery)
  • #12241 b030133 Fix incorrect link in /test/ (fanquake)
  • #12187 b5e4b9b Updating with an updated sample output (jeffrade)
  • #12294 7cf1aea Create NetBSD build instructions and fix compilation (fanquake)
  • #12251 cc5870a initwallet: Do not translate highly technical addresstype help (MarcoFalke)
  • #11984 efae366 Update OpenBSD build instructions for 6.2 (cont'd) (laanwj)
  • #12293 9d9c418 Mention that HD is enabled if hdmasterkeyid is present in getwalletinfo RPC help (fanquake)
  • #12077 c04cb48 Correct sendmany curl example (251Labs)
  • #10677 b3ecb7b Document that addmultisigaddress is intended for non-watchonly addresses (instagibbs)
  • #12177 cad504b Fix address_type help text of getnewaddress and getrawchangeaddress (mruddy)
  • #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 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 bgoldd 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 (sipa)
  • #12997 646b7f6 build-windows: Switch to Artful, since Zesty is EOL (MarcoFalke)
  • #12384 c5f7efe Add version footnote to (Willtech)
  • #13165 627c376 Mention good first issue list in (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 (fanquake)
  • #13372 f014933 split FreeBSD build instructions out of (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 links (MarcoFalke)
  • #13706 94dd89e Minor improvements to (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 (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 bgold-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)


  • #9964 b6a4891 Add const to methods that do not modify the object for which it is called (practicalswift)
  • #10965 655970d Replace deprecated throw() with noexcept specifier (C++11) (practicalswift)
  • #10645 c484ec6 Use nullptr (C++11) instead of zero (0) as the null pointer constant (practicalswift)
  • #10901 22e301a Fix constness of ArgsManager methods (promag)
  • #10969 4afb5aa Declare single-argument (non-converting) constructors "explicit" (practicalswift)
  • #11071 dbf6bd6 Use static_assert(…, …) (C++11) instead of assert(…) where appropriate (practicalswift)
  • #10809 c559884 optim: mark a few classes final (theuni)
  • #10843 2ab7c63 Add attribute noreturn (C++11) to functions that will not return (practicalswift)
  • #11151 7fd49d0 Fix header guards using reserved identifiers (danra)
  • #11138 2982511 Compat: Simplify bswap_16 implementation (danra)
  • #11161 745bbdc Remove redundant explicitly defined copy ctors (danra)
  • #11144 cee4fe1 Move local include to before system includes (danra)
  • #10781 60dd9cc Python cleanups (practicalswift)
  • #10701 50fae68 Remove the virtual specifier for functions with the override specifier (practicalswift)
  • #11164 38a54a5 Fix boost headers included as user instead of system headers (danra)
  • #11143 3aa60b7 Fix include path for bitcoin-config.h (danra)
  • #8330 59e1789 Structure Packing Optimizations in C{,Mutable}Transaction (JeremyRubin)
  • #10845 39ae413 Remove unreachable code (practicalswift)
  • #11238 6acdb1f Add assertions before potential null deferences (MeshCollider)
  • #11259 089b742 Remove duplicate destination decoding (promag)
  • #11232 2f0d3e6 Ensure that data types are consistent (jjz)
  • #10793 efb4383 Changing &var[0] to (MeshCollider)
  • #11196 e278f86 Switch memory_cleanse implementation to BoringSSL's to ensure memory clearing even with -lto (maaku)
  • #10888 9821274 range-based loops and const qualifications in net.cpp (benma)
  • #11351 6c4fecf Refactor: Modernize disallowed copy constructors/assignment (danra)
  • #11385 94c9015 Remove some unused functions and methods (sipa)
  • #11301 8776787 add m_added_nodes to connman options (benma)
  • #11432 058c0f9 Remove unused fTry from push_lock (promag)
  • #11107 e93fff1 Fix races in AppInitMain and others with lock and atomic bools (MeshCollider)
  • #9572 17f2ace Skip witness sighash cache for non-segwit transactions (jl2012)
  • #10961 da0478e Improve readability of DecodeBase58Check(...) (practicalswift)
  • #11133 a865b38 Document assumptions that are being made to avoid division by zero (practicalswift)
  • #11073 3bb77eb Remove dead store in ecdsa_signature_parse_der_lax (BitonicEelis)
  • #10898 470c730 Fix invalid checks (NULL checks after dereference, redundant checks, etc.) (practicalswift)
  • #11495 50d72b3 [trivial] Make namespace explicit for is_regular_file (jnewbery)
  • #11511 db2f83e [Init] Remove redundant exit(EXIT_FAILURE) instances and replace with return false (donaloconnor)
  • #10866 ef8a634 Fix -Wthread-safety-analysis warnings. Compile with -Wthread-safety-analysis if available (practicalswift)
  • #11221 0dec4cc Refactor: simpler read (gnuser)
  • #10696 ef3758d Remove redundant nullptr checks before deallocation (practicalswift)
  • #11043 5e9be16 Use std::unique_ptr (C++11) where possible (practicalswift)
  • #11353 05a7619 Small refactor of CCoinsViewCache::BatchWrite() (danra)
  • #10749 2adbddb Use compile-time constants instead of unnamed enumerations (remove "enum hack") (practicalswift)
  • #11603 a933cb1 Move RPC registration out of AppInitParameterInteraction (ryanofsky)
  • #11722 26efc22 Switched sync.{cpp,h} to std threading primitives (tjps)
  • #10493 fbce66a Use range-based for loops (C++11) when looping over map elements (practicalswift)
  • #11337 0d7e0a3 Fix code constness in CBlockIndex::GetAncestor() overloads (danra)
  • #11516 0e722e8 crypto: Add test cases covering the relevant HMAC-SHA{256,512} key length boundaries (practicalswift)
  • #10574 5d132e8 Remove includes in .cpp files for things the corresponding .h file already included (practicalswift)
  • #11884 66479c0 Remove unused include in hash.cpp (kallewoof)
  • #10839 c66adb2 Don't use pass by reference to const for cheaply-copied types (bool, char, etc.) (practicalswift)
  • #10657 79399c8 Utils: Improvements to ECDSA key-handling code (str4d)
  • #12250 e37ca2b Make CKey::Load references const (ryanofsky)
  • #12108 9220426 Remove unused fQuit var from checkqueue.h (donaloconnor)
  • #12159 f3c7062 Use the character based overload for std::string::find (kekimusmaximus)
  • #12266 3448907 Move scheduler/threadGroup into common-init instead of per-app (TheBlueMatt)


  • #12518 a17fecf Bump leveldb subtree (MarcoFalke)
  • #12442 f3b8d85 devtools: Exclude patches from lint-whitespace (MarcoFalke)
  • #12988 acdf433 Hold cs_main while calling UpdatedBlockTip() signal (skeees)
  • #12985 0684cf9 Windows: Avoid launching as admin when NSIS installer ends. (JeremyRand)
  • #13655 1cdbea7 bitcoinconsensus: invalid flags error should be set to bitcoinconsensus_err (afk11)
  • #11246 777519b github-merge: Coalesce git fetches (laanwj)
  • #10871 c9a4aa8 Handle getinfo in bgold-cli w/ -getinfo (revival of #8843) (achow101)
  • #11419 093074b Utils: Fix launchctl not being able to stop bgoldd (OmeGak)
  • #11394 6e4e98e Perform a weaker subtree check in Travis (sipa)
  • #11702 4122112 [build] Add a script for installing db4 (jamesob)
  • #11794 dd49862 Prefix leveldb debug logging (laanwj)
  • #11781 24df9af Add -debuglogfile option (laanwj)
  • #10773 c17f11f Shell script cleanups (practicalswift)
  • #11829 7630a1f Test datadir specified in conf file exists (MeshCollider)
  • #11836 d44535d Rename to (hkjn)
  • #11831 d48ab83 Always return true if AppInitMain got to the end (TheBlueMatt)
  • #11943 1808660 contrib: fix typo in help message (laanwj)
  • #12075 c991b30 [scripts] Add missing univalue file to (fanquake)
  • #12197 000ac4f Log debug build status and warn when running benchmarks (laanwj)
  • #10672 6ab0e4c Avoid division by zero in the case of a corrupt estimates file (practicalswift)
  • #11273 cdd6bbf Ignore old format estimation file (Xekyo)
  • #11951 1fb34e0 Remove dead feeest-file read code for old versions (TheBlueMatt)
  • #11421 9ccafb1 Merge current secp256k1 subtree (MarcoFalke)
  • #11573 2631d55 [Util] Update tinyformat.h (fanquake)
  • #10529 331352f Improve bgoldd systemd service file (Flowdalic)
  • #11620 70fec9e [build] .gitignore: add background.tiff (Sjors)
  • #11558 68e021e Minimal code changes to allow msvc compilation (sipsorcery)
  • #11284 10bee0d Fix invalid memory access in CScript::operator+= (guidovranken, ajtowns)
  • #10939 a1f7f18 [init] Check non-emptiness of -blocknotify command prior to executing (practicalswift)
  • #11467 937613d Fix typos. Use nullptr instead of NULL (practicalswift)
  • #11834 5bea05b [verify-commits] Fix's echoing for commits with '\n' (TheBlueMatt)
  • #11830 a13e443 Use 'python' not 'python2' (hkjn)
  • #12194 7abb0f0 Add change type option to fundrawtransaction (promag)
  • #12269 2ae7cf8 Update defaultAssumeValid to block 506067 (gmaxwell)
  • #11952 9ab9963 univalue: Bump subtree (MarcoFalke)
  • #12367 09fc859 Fix two fast-shutdown bugs (TheBlueMatt)
  • #12422 4d54e7a util: Make LockDirectory thread-safe, consistent, and fix OpenBSD 6.2 build (laanwj)
  • #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)
  • #11909 8897135 contrib: Replace developer keys with list of pgp fingerprints (MarcoFalke)
  • #12394 fe53d5f 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 (laanwj)
  • #12451 aae64a2 Bump leveldb subtree (MarcoFalke)
  • #12527 d77b4a7 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 bgoldd systemd service file (Flowdalic)
  • #12652 55f490a bgold-cli: Provide a better error message when bgoldd 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 test that merges are clean (sipa)
  • #12891 3190785 logging: Add 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 bgoldd 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 uses bash (jhfrontz)
  • #13301 e4082d5 lint: Add linter to error on #include <*.cpp> (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 (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 bgold-cli --version (Empact)


Thanks to everyone who directly contributed to this release:

  • 251
  • 532479301
  • Aaron Clauson
  • Aaron Golliver
  • aaron-hanson
  • Adam Langley
  • Akio Nakamura
  • Akira Takizawa
  • Alejandro Avilés
  • Alex Morcos
  • Alex Vear
  • Alexey Ivanov
  • Alin Rus
  • Anditto Heristyo
  • Andras Elso
  • Andrea Comand
  • Andreas Schildbach
  • Andrew Chow
  • Anthony Towns
  • AtsukiTak
  • azuchi
  • Ben Woosley
  • Bernhard M. Wiedemann
  • Brandon Ruggles
  • buddilla
  • Carl Dong
  • ccdle12
  • Chris Moore
  • Chris Stewart
  • Christian Gentry
  • Chun Kuan Lee
  • Clem Taylor
  • Conor Scott
  • Conrado Gouvea
  • Cory Fields
  • Cristian Mircea Messel
  • CryptAxe
  • ctp-tsteenholdt
  • Damian Williamson
  • Dan Bolser
  • Dan Raviv
  • Daniel Edgecumbe
  • Daniel Kraft
  • danra
  • Darko Janković
  • DaveFromBinary
  • David A. Harding
  • david60
  • DesWurstes
  • Dimitris Apostolou
  • Donal O'Connor
  • donaloconnor
  • dongsamb
  • Douglas Roark
  • DrahtBot
  • Drew Rasmussen
  • Dusty Williams
  • e0
  • Eelis
  • Eric Scrivner
  • Ernest Hemingway
  • esneider
  • Ethan Heilman
  • Evan Klitzke
  • fanquake
  • Felix Wolfsteller
  • Ferdinando M. Ametrano
  • fivepiece
  • flack
  • Florian Schmaus
  • fridokus
  • Fuzzbawls
  • Gabriel Davidian
  • Georgi Kostadinov
  • Giulio Lombardo
  • Gleb
  • Glenn Willen
  • gnuser
  • Grady Laksmono
  • GreatSock
  • Gregory Maxwell
  • Gregory Sanders
  • gustavonalle
  • Hang Yin
  • Hennadii Stepanov
  • Henrik Jonsson
  • Jack Grigg
  • Jacky C
  • James Evans
  • James O'Beirne
  • Jan Čapek
  • Jan Sarenik
  • Jeff Frontz
  • Jeff Rade
  • Jeremiah Buddenhagen
  • Jeremy Rubin
  • JeremyRand
  • Jesse Cohen
  • Jim Posen
  • jjz
  • João Barbosa
  • Joe Harvell
  • joemphilips
  • Johannes Kanig
  • John Bampton
  • John Newbery
  • johnlow95
  • Johnson Lau
  • Jon Layton
  • Jonas Nick
  • Jonas Schnelli
  • Jorge Timón
  • Josh Hartshorn
  • Julian Fleischer
  • kallewoof
  • Karel Bilek
  • Karel Bílek
  • Karl-Johan Alm
  • Kaz Wesley
  • Ken Lee
  • Kevin Pan
  • klemens
  • Kosta Zertsekel
  • Kristaps Kaupe
  • Kvaciral
  • Kyuntae Ethan Kim
  • laudaa
  • Lawrence Nahum
  • Linrono
  • lmanners
  • Loganaden Velvindron
  • Lowell Manners
  • Lucas Betschart
  • Luke Dashjr
  • Luke Mlsna
  • lutangar
  • Marcin Jachymiak
  • marcoagner
  • MarcoFalke
  • Mark Erhardt
  • Mark Friedenbach
  • Marko Bencun
  • Martin Ankerl
  • Mason Simon
  • Matt Corallo
  • Matteo Sumberaz
  • Max Kaplan
  • MeshCollider
  • Michał Zabielski
  • Mitchell Cash
  • mruddy
  • mryandao
  • Murch
  • murrayn
  • Nick Vercammen
  • Nicolas Dorier
  • NicolasDorier
  • Nikolay Mitev
  • okayplanet
  • Pablo Fernandez
  • Paul Berg
  • Pedro Branco
  • Pierre Rochard
  • Pieter Wuille
  • practicalswift
  • Qasim Javed
  • Randolf Richardson
  • Richard Kiss
  • Roman Zeyde
  • Russell Yanofsky
  • Samuel B. Atwood
  • Samuel Dobson
  • Sean Erle Johnson
  • Sebastian Kung
  • Shooter
  • Sjors Provoost
  • Steve Lee
  • steverusso
  • Suhas Daftuar
  • Tamas Blummer
  • TheCharlatan
  • Thomas Kerin
  • Thomas Snider
  • Thoragh
  • Tim Ruffing
  • Tim Shimmin
  • Tomas van der Wansem
  • Utsav Gupta
  • Varunram
  • Varunram Ganesh
  • Vasil Dimov
  • Vivek Ganesan
  • Walter
  • Werner Lemberg
  • Will Ayd
  • William Casarin
  • William Robinson
  • Willy Ko
  • winder
  • Wladimir J. van der Laan
  • wodry

And to those that reported security issues:

  • awemany (for CVE-2018-17144)
  • Braydon Fuller
  • Himanshu Mehta